SciTE-AddOn UDF-Funktionsbeschreibung aus Include anzeigen

    • Offizieller Beitrag

    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
    #44 Show Func Description
    command.name.44.*=Show Func Description
    command.44.*=dofile "C:\PFAD\ZUR\ShowFuncDescript.lua"
    command.mode.44.*=subsystem:lua
    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
    # function description as calltip 0/1 No/Yes (default "0" = console output)
    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.

    • Offizieller Beitrag

    OK, ist mir nicht aufgefallen, da ich nur mit BOM speichere. Mal sehen, wie ich das korrigiere.

    bei mir funktioniert Show Func Description nicht mit Ctrl+Alt+F... obwohl es im Extras-Menü angezeigt wird

    Kopiere mal exakt deinen Eintrag und poste ihn. Manchmal ist es ein Syntaxfehler (ALT statt Alt o.ä.)

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

    Ausgabe:

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

    SciteUser.properties

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

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