SciTE - kontinuierlicher Kommentarmodus für AutoIt (auch für SciTE-RU)

  • Ein Tool für eine komfortablere Kommentierung im Skript.
    - Aktivierung und Deaktivierung per Hotkey, Modus ist sichtbar durch geändertes Cursor-Symbol (Hand)
    - Fortlaufend schreiben und der Kommentar bricht automatisch um und setzt hinter dem Code in der Folgezeile spaltengleich positioniert fort.
    - Bei automatischem Umbruch können für Zeilenende und -Fortsetzung optional Zeichen/-folgen festgelegt werden um optisch sofort zusammenhängende Zeilen zu erkennen
    - Umbruch automatisch an definierter Spaltenposition oder manuell durch Pfeil-ab
    - Es muß nicht fortlaufend jede Zeile beschrieben werden, sondern es können auch Zeilen übersprungen werden
    - Um wirksam zu werden ist ein Neustart von SciTE erforderlich


    Edit 14.02.2012: kleine Ergänzung, s. blaue Markierung


    Edit 15.02.2012: Falls es nicht wie gewollt klappt, werft mal einen Blick hier hin. Dort könnten schon einige Hinweise zur Lösung sein.


    Edit 16.02.2012: Wie ihr hier im Thread seht, gab es bei Pitter Probleme. Deshalb noch Folgendes:
    - Der Eintrag in der "SciTEStartup.lua" MUSS am Ende, also hinter EventClass:BeginEvents() erfolgen.
    - Sollten trotzdem die Ereignisse Pfeiltaste-Ab und Lerzeichen nicht erkannt werden, hilft i.A. einen zusätzlichen, sinnlosen Befehl im Skript zu verbauen, der die Funktion etwas 'bremst'
    Bsp.:


    Edit 17.02.2012
    - Ich habe die Positionsabfrage jetzt verändert, mit der vorigen Methode wurden auch 'halbe Tabs', also Tabs, die z.B. nach 2 Leerzeichen gesetzt wurden, voll mit 4 Leerzeichen ersetzt, was zu Verschiebungen führt.
    Nun erhalte ich direkt die Spaltenposition aus der Zeile. Version: 0.6
    - Und für die Nutzer von SciTE-RU habe ich auch die entsprechende Version erstellt.


    Edit 18.02.2012: [NEUE FUNKTIONEN]
    - Bei Auto-Umbruch wird das letzte Wort einer Zeile, wenn es die Umbruchmarkierung überschreitet, in die Folgezeile übernommen.
    - Manuell kann auch mit ENTER umgebrochen werden. Dann wird hinter der aktuellen Zeile eine Leerzeile eingefügt und genauso positioniert der Kommentar fortgeschrieben. Die Umbruchmarkierungen werden wie beim Auto-Umbruch gesetzt. Dazu ist ein weiterer Eintrag in den properties erforderlich um diese Funktion optional zu de/aktivieren (s. Installationshinweise).


    Und hier ein kleines Bild dazu:
    autoit.de/wcf/index.php?attachment/15105/



    So sieht das Skript dazu aus:


    Version für SciTE-RU

  • Gefällt mir sehr gut, kommt direkt in die Einstellungen ;)


    Aber irgendwie klappt das mit dem Zeilenumbruch nicht, ist das nach 150 Zeichen oder wenn man selber Zeilenumbuch macht? Klappt beides nicht bei mir..
    Hab auch die Einstellungen in den Prop geändert sowie das LUA Script


    Gruß

  • Aber irgendwie klappt das mit dem Zeilenumbruch nicht, ist das nach 150 Zeichen oder wenn man selber Zeilenumbuch macht? Klappt beides nicht bei mir..
    Hab auch die Einstellungen in den Prop geändert sowie das LUA Script


    In den Benutzereinstellungen wird mit: ContinuousComment.LFpos.*.au3=170 die Spalte angegeben, ab der ein automatischer Umbruch erfolgen soll.
    Da die neue Version noch nicht heruntergeladen wurde, hast du noch die alte -- da habe ich gerade einen Fehler entdeckt, den ich aber in der aktuellen Version (0.4) gefixt habe. Dort war die Positionsermittlung beim Aufruf der Funktion nicht korrekt - jetzt paßt alles.

  • Hmmm... Hatte sehr gut funktioniert, bis ich die Änderungen eingearbeitet hatte.


    Leider funktioniert jetzt Strg+Shift+K nicht mehr, in Tools ist zwar der eintrag, aber nicht die Tastenkombination.
    Ausserdem kann ich jetzt immer nur eine einige Zeile kommentieren, wenn ich in Tools auf "Kommentarmodus aktivieren" klicke.


    Hab auch die neue neue LUA(4) rüber kopiert...


    Meine .properties sieht jetzt folgendermassen aus:


    Hab ich was übersehen?


    Gruß
    Pitter

  • Ja ok... mein Fehler mit dem Editieren vor der Endmarkierung...
    Hab nur Deine Comments entfernt und ansonsten Deine Vorgaben übernommen.
    Komischerweise hat das mit der Vorversion von Gestern so weit funktioniert, wobei ich den Zeilenumbruch nciht probiert hatte.


    Jedenfalls kann ich den Kommentarmodus nicht per Shortcut ein/ausstellen.
    Der Mauszeiger wird über das manuelle Aktivieren über den Reiter Tools geändert, die gerade markierte Zeile wird auch mit dem ";" als Edit gekennzeichnet, aber mit den Pfeiltasten kann ich nciht mehr die nchste Zeile als Kommentar markieren....

  • Das ist unerklärlich, aber was ähnliches habe ich im EN-Forum. Wie es scheint ist LUA zu schnell.
    Bitte füge mal diese Funktion:

    Code
    1. local pause = function() local s = '' for i=1,100 do s = s .. ' ' end end


    in das Skript am Anfang bei den Deklarationen ein.
    Anschließend änderst du die Funktion "CommentHitKey:OnKey(_keycode)" wie folgt.



    Ist nur eine geringe Verzögerung, aber das könnte es bringen.

  • Wie schon in der Shoutbox geschrieben...
    Vorgaben:
    SCiTE-Version:
    Version 2.28


    AutoIt-Version:
    3.3.8.1


    • Änderungen in der LUA eingepflegt
    • ContinuousComments[0.4].lua entsprechend umbenannt und in den LUA-Ordner kopiert
    • SciTEStartup.lua editiert.
    • Folgende Einträge in der SciTEUser.properties vorgenommen:



    Der Mauszeiger ist aktiv (Hand), die aktive Zeile wird als Komment richtig markiert.
    Ein Wechsel der Zeile mittels Pfeil-down wird durchgeführt, aber in der Zeile wird dann kein Kommentar-Zeichen eingesetzt.
    Bei weiteren Pfeildown Events wird auch nciht ans Ende der jeweiligen Zeile gesprungen.


    Das sind meine Beobachtungen dazu.


    Wie schon geschrieben... bin gerne bereit hier noch mehr Ursachenforschung zu betreiben... ;)


    Gruß
    Pitter

  • Hallo BugFix,
    ich habe da ein Problem mit dem LUA-Script.
    Zuerst mal meine "SciteUser.properties"-Datei:


    Das Script habe ich auch an die Richtige Stelle kopiert und in der Datei steht:
    LoadLuaFile("ContinuousComments.lua")
    dies an letzter Stelle (also nach EventClass:BeginEvents()).


    In dem LUA-Script habe ich dies:


    (die Ergänzung die in deinem ersten Post steht
    eingefügt (die alten Programmzeilen habe ich vorher gelöscht).


    Nun das Problem:
    Wenn ich in einem AutoIt-Script den Kommentarmodus mit dem Hotkey einschalte, so wird ein ; gefolgt von einem Leerzeichen eingefügt und das Cursorsymbol ändert sich richtig.
    Aber es erfolgt kein automatischer Zeilenumbruch nach den vorgegebenen 170 Zeichen.
    Auch wenn ich einen manuellen Zeilenumbruch, mit der Pfeiltaste einfüge, geschieht nichts.
    Wenn ich die Eingabetaste betätige so wird zwar eine neue Zeile angefangen, aber es erscheint kein ; mehr am Zeilenanfang.
    Und der Kommentarmodus lässt sich auch nicht mit dem Hotkey beenden.
    (da sich der Modus aber damit einschalten lässt bedeutet das der Hotkey auch erkannt wird).


    Ich habe auch einmal das Zeichen für den Zeilenanfang (die Zeile ContinuousComment.Chars.*.au3=;
    ) in der SciTEUser.properties"-Datei
    geändert um festzustellen ob die Einträge überhaupt ausgewertet werden.
    Das funktionierte aber.
    Nur die anderen Einträge scheinen keine Auswirkung zu haben.


    Kann es etwa sein dass mein Rechner (Pentium III 500) zu langsam ist ?
    Achja, ich verwende die AutoIt-Version 3.3.8.1 und die SciTE-Version 2.27 (die an AutoIt angepasste Version).


    MfG:
    BigRox