SciTE-AddOn UDF-Funktionsbeschreibung aus Include anzeigen

Statement zur DSGVO im Forum

Alles zur DSGVo und zur Umsetzung im Forum hier: Statement zur DSGVO
  • Mal wieder ein kleines Tool:


    Für alle Funktionen, die per #Include eingebunden sind, lässt sich hiermit aus der Include-Datei die Funktionsbeschreibung auslesen. Erkannt werden auch Includes mit relativen Pfadangaben zum Skriptverzeichnis. Recht nützlich für eigene UDF, bei denen man mal schnell die kpl. Parameterbeschreibung braucht. Aber auch bei den AutoIt eigenen UDF ist es manchmal recht hilfreich die originale Funktionsbeschreibung zu lesen, bzw. sie in der Konsole lesen zu können, während man die Parameter für die Funktion setzen will. Erspart das switchen in das Hilfefenster.


    Wie gehts?

    Die Datei "ShowFuncDescript.lua" in euren Lua-Skriptordner packen.

    Eintrag in SciTEUser.properties

    Code
    1. #44 Show Func Description
    2. command.name.44.*=Show Func Description
    3. command.44.*=dofile "C:\PFAD\ZUR\ShowFuncDescript.lua"
    4. command.mode.44.*=subsystem:lua
    5. command.shortcut.44.*=Ctrl+Alt+F


    Statt der 44 könnt ihr auch eine andere freie Nummer verwenden.

    Den HotKey könnt ihr natürlich auch anpassen.


    In einem AU3-Skript den Cursor in den Funktionsnamen eines UDF-Aufrufes setzen und den HotKey ausführen. Ist eine Funktionsbeschreibung vorhanden (Kommentarzeilen direkt vor der Funktionsdeklaration), wird diese in die Konsole ausgegeben.


    Viel Spaß damit.


    EDIT 2018-01-20

    - gefixed: Problem bei Datei ohne BOM

    - added: Zuerst wird die Beschreibung im aktuell geöffneten Skript gesucht, erst dann in Includes.

    v0.2


    EDIT 2018-01-24

    - added: Die Funktionsbeschreibung kann auch als Calltip angezeigt werden. Dazu einen Eintrag in SciTEUser.properties

    Code
    1. # function description as calltip 0/1 No/Yes (default "0" = console output)
    2. show.description.calltip=1

    v0.3

  • Wenn in der ersten Zeile des Scripts ein TimeStamp steht und die Funktionsdeklaration mit einer Leerzeile getrennt, darunter steht, wird der TimeStamp mit ausgegeben, wenn die Datei mit UTF-8 (ohne BOM) gespeichert wurde... mit BOM nicht... und die Leerzeile zwischen TimeStamp und Funktionsdeklaration wird verschluckt.


    UTF-8 (ohne BOM)

    ;-- TIME_STAMP 2017-08-13 09:18:44


    ; #FUNCTION# ====================================================================================================================

    ; Name ..........: _GetGateway


    Ausgabe:

    ;-- TIME_STAMP 2017-08-13 09:18:44

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _GetGateway


    UTF-8 (mit BOM)

    ;-- TIME_STAMP 2017-09-03 20:35:21 v 1.0


    ; #FUNCTION# ====================================================================================================================

    ; Name ..........: _GetLocalIP


    Ausgabe:

    ; #FUNCTION# ====================================================================================================================

    ; Name ..........: _GetLocalIP

    Hm, bei mir funktioniert Show Func Description nicht mit Ctrl+Alt+F... obwohl es im Extras-Menü angezeigt wird... wenn ich die Funktion aus dem Menü auswähle, dann geht es.

  • Code
    1. #36 Show Func Description
    2. command.name.36.*=Show Func Description
    3. command.36.*=dofile f:\AutoIt\AutoIt3_LuaScripts\ShowFuncDescript.lua
    4. command.mode.36.*=subsystem:lua
    5. # Ctrl+Alt+F funktioniert nicht? - obwohl ich nirgends sehen kann, dass die Kombi belegt ist!
    6. #~ command.shortcut.36.*=Ctrl+Alt+F
    7. # Ctrl+Alt+W geht!
    8. command.shortcut.36.*=Ctrl+Alt+W
  • Warum der Hotkey nicht funktioniert, kann ich mir auch nicht erklären.
    AutoIt
    1. ConsoleWrite("HotKeySet('^!f', '_Test') ; Ctrl+Alt+f = " & (HotKeySet('^!f', '_Test') = 1) & @CRLF)
    2. ConsoleWrite("HotKeySet('^!F', '_Test') ; Ctrl+Alt+F = " & (HotKeySet('^!F', '_Test') = 1) & @CRLF)
    3. While 1
    4. Sleep(100)
    5. WEnd
    6. Func _Test()
    7. ConsoleWrite('_Test: @HotKeyPressed = ' & @HotKeyPressed & @CRLF)
    8. Exit
    9. EndFunc

    Ausgabe:

    Code
    1. HotKeySet('^!f', '_Test') ; Ctrl+Alt+f = False
    2. HotKeySet('^!F', '_Test') ; Ctrl+Alt+F = True
    3. _Test: @HotKeyPressed = ^!F

    SciteUser.properties

    Code
    1. # command.shortcut.36.*=Ctrl+Alt+F - funktioniert nicht!
    2. # command.shortcut.36.*=Ctrl+Alt+f - funktioniert nicht!
    3. # command.shortcut.36.*=Ctrl+Alt+Shift+f - funktioniert!
    4. # command.shortcut.36.*=Ctrl+Alt+Shift+F - funktioniert!


    Doch welches Mistvieh Ctrl+Alt+f belegt hat, habe ich noch nicht herausfinden können...