SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

  • Hier ein kleines Tool, dass es ermöglicht, einen markierten Bereich (auch Blockmarkierung - z.B. in Zeilen 3-6 jeweils Spalten 10-17) mit paarigen Zeichen: ( ), { }, [ ], ' ', " " einzufassen.
    Bei Blockmarkierung wird in jeder Zeile des Blocks am Beginn und Ende der Markierung das entsprechende Zeichen gesetzt.
    Steht der Cursor nach der Markierung vor der Auswahl ist das öffnende Symbol zu wählen, steht er am Ende ist das schließende Symbol zu wählen. Dass paarige Symbol wird dann entsprechend zugeordnet.
    Also:
    - Bereich markieren
    - öffnendes oder schließendes Symbol eingeben


    Dieses Tool ersetzt auch die Funktion "AutoCloseBraces.lua". Sofern ihr diese verwendet, muß sie im Lua-Startup Skript ( SciTEStartup.lua ) deaktiviert werden.


    Kopiert die Datei EdgingSelection.lua in den Pfad: "..SciTE\LUA\"
    Öffnet die SciTEStartup.lua und ergänzt sie um den Eintrag "LoadLuaFile("EdgingSelection.lua")".
    Die Datei sollte dann etwa so aussehen:

    Falls ihr die Funktion zum Neuladen der Properties aktiviert habt - einmal ausführen, ansonsten Neustart SciTE.



    Edit 28.10.2011: Hab das Tool noch etwas verändert und auch umbenannt.
    - Im Überschreib-Modus ist das Tool jetzt deaktiviert
    - kleinen Bug behoben


    Edit 29.10.2011:
    Manchmal macht man es sich unnütz schwer. ;) Da hatte ich doch glatt übersehen, dass das OnKey-Event gleich den Status für SHIFT, CTRL, ALT mitliefert, das vereinfacht natürlich den Code.
    Weiterhin habe ich es jetzt 'internationalisiert' (auch für englisches Keyboardlayout wirksam). ;)
    Die Variablengestaltung ist nun auch übersichtlicher.
    Aktuelle Version: 1.3


    Edit 30.10.2011:
    Kleine Erweiterung: Es können einzelne Dateitypen von der Funktion ausgeschlossen werden. Dazu für jede der auszuschließenden Dateitypen einen Eintrag erstellen in "SciTEUser.properties":
    "NoPairs.ext=1" (ext = Erweiterung in Kleinbuchstaben)
    Aktuelle Version: 1.4


    Edit 05.10.2012 NEU
    Ich habe folgende Funktion hinzugefügt:
    - Deklaration von Arrays mit Wertzuweisung
    dazu:
    - in jede Zeile einen Arraywert eintragen (Strings ohne Gänsefüßchen)
    - Blockauswahl dieser Zeilen
    - für Strings: Strg+Alt+S (bzw. AltGr+S)
    - für Zahlen, Variablen: Strg+Alt+A (bzw. AltGr+A)

    - Gültigkeitsbereich wird festgelegt über die Verwendung der Buchstaben "d", "g" oder "l" ( Dim, Global oder Local )
    - für Strings: "Strg+Alt+Shift+Buchstabe"
    - für Zahlen, Variablen: "Strg+Alt+Buchstabe"
    - statt "Strg+Alt" kann natürlich auch "AltGr" genutzt werden

    Aktuelle Version: 1.6


    Bsp.:

    ; vorher:
    10
    20
    30
    40


    ; mit "Strg+Alt+d" :
    Dim $a[4] = [10,20,30,40]


    ; mit "Strg+Alt+Shift+L" :
    Local $a[4] = ["10","20","30","40"]




    Über mehrere Zeilen mit einem Rutsch Klammernpaare setzen:
    Zeilen 0 Spalten breit markieren (SHIFT+ALT+n-mal PFEIL_AB) [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_emptyblock1.JPG] Schließende Klammer eingeben [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_emptyblock2.JPG]


    Blockmarkierung, in jeder Zeile wird am Beginn und am Ende der Markierung mit Gänsefüßchen eingefaßt:
    [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_block1.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_block2.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_block3.JPG]


    Der markierte Bereich wird mit eckigen Klammern eingefaßt (z.B. um Variablen nachträglich als Arrayinhalt zu deklarieren):
    [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_braces1.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_braces2.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_braces3.JPG]


    String mit Gänsefüßchen einfassen:
    [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_string1.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_string2.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_string3.JPG]


    DL bisher: 15

  • Hallo BugFix,
    zu deinem LUA-Script habe ich eine Frage.


    Kann man dieses Tool auch so erweitern, dass auch diese paarigen Zeichen " < > " verarbeitet werden ?


    MfG:
    BigRox

  • Kann man dieses Tool auch so erweitern, dass auch diese paarigen Zeichen " < > " verarbeitet werden ?


    Das ist machbar. Aber das braucht man doch i.A. bei html als Tag-Begrenzer - dann sollte doch als schließendes Element "/>" verwendet werden, oder?


    Edit:
    Hier mal die Lösung, ersetze einfach diese Parts in deinem Skript. D.h. aber auch, dass du nicht mehr einfach "<" schreiben kannst - du erhältst automatisch das Gegenstück dazu.