BlockEditor für SciTE

  • Durch den Beitrag von BugFix über den BlockEditor in Notepad++ bin ich auf die Idee gekommen, diesen für AutoIt nachzuskripten.
    Erstellt man in SciTE eine rechteckige Markierung, z.B. per ALT-SHIFT und den Pfeiltasten, kann man danach ALT-C drücken und hat verschiedene Optionen die Markierung zu ersetzen. Man kann übrigens auch eine Markierung der Breite 0 über mehrere Zeilen hinweg erstellen. Diese ist zwar unsichtbar, aber anschließend wird an dieser Stelle der Text / die Zahlen eingefügt, ohne etwas zu überschreiben.

    Beim Text einfügen wird in jeder Zeile die Markierung durch den Text ersetzt.
    Beim Zahlen einfügen wird in der ersten markierten Zeile die Markierung mit dem Startwert ersetzt und in jeder weiteren Zeile um den Schritt erhöht. Die Ausgabe kann in verschiedenen Zahlsystemen erfolgen.

    Edit: Erweiterter Bearbeitungsmodus, um z.B. ein Textrechteck mit einem Text aus der Zwischenablage zu ersetzen.

    Der Aufruf muss über einen Menüpunkt in SciTe erfolgen, dieser muss in die SciTEUser.properties eingetragen werden:
    Die BlockEditor.au3 befindet sich in SciteProgrammVerzechnis\BlockEditor\Blockeditor.au3 und AutoIt ist installiert:

    Code
    command.38.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\BlockEditor\BlockEditor.au3" "$(WindowID)"
    command.name.38.*=Block Editor
    command.save.before.38.*=0
    command.subsystem.38.*=1
    command.shortcut.38.*=Alt+C


    Die kompilierte BlockEditor.exe befindet sich in SciteProgrammVerzechnis\BlockEditor\Blockeditor.exe:

    Code
    command.38.*="$(SciteDefaultHome)\BlockEditor\BlockEditor.exe" "$(WindowID)"
    command.name.38.*=Block Editor
    command.save.before.38.*=0
    command.subsystem.38.*=1
    command.shortcut.38.*=Alt+C

    PS: Hier gibt es eine kuze Funktionsbeschreibung des Originals.

  • Hmm, also ich habe dein Programm ma getestet und muss dich ehrlich mal Fragen, wozu das gut sein soll?
    Funktioniert doch fast genau so wie das normale ersetzen in SciTE.
    Vllt. hab ich auch nur irgendetwas übersehen, aber es scheint mir nur meine Zeilen durch Text bzw. Zeichenfolgen zu ersetzen.
    Aber abgesehen davon, dass ich wahrscheinlich nur zu dumm bin durchzublicken, sind die Optionen trotzdem cool und mir sind die ersten 2-3 durchläufe auch keine Bugs aufgefallen. Also :thumbup: für sauberen Code.
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

    • Offizieller Beitrag

    Der Bockeditor ist spitze. :thumbup:
    Heute Nacht hab ich das gesucht und heute Abend hab ich den BlockEditor. :thumbup:

    Im Quellcode hast du aber einen Bug.
    Zeile 149:

    [autoit]

    $pMem = = _MemInit($hWnd, $iLen, $tMem)

    [/autoit]


    da ist ein = zuviel.

  • PrideRage: Das Tool wird erst mit rechteckeigen Markierungen wirklich sinnvoll, aber dann kann man schlne Sachen machen, z.B.:
    Du willst in 5 Zeilen untereinander 5 Indizes aus einem Array ansprechen:
    - Schreibe 1x $array[] =
    - Dupliziere die Zeile 4x (Strg-D)
    - gehe in die erste Zeile zwischen die klammern
    - Halte STRG-ALT und drücke dabei 4x Nach unten.
    - Jetzt ist eine unsichtbare Rechteckmarkierung in diesem Bereich.
    - Drücke ALT-C
    - Fülle Startnummer aus und Step 2, dann klicke Insert.
    - Du bekommst automatisch alle Indizes von z.B. 0 bis 4 in die Klammern.

    Wofür die Textersetzung gut sein soll, hab ich auch noch nicht rausgefunden, aber NP++ hatte die und das war nicht schwer ;)
    Der Advanced-Tab ist z.B. dafür gut, mehrzeiligen Text in eine Variable reinzupacken:
    "" & _ schreiben, entsprechend den Zeilen duplizieren, innerhalb von den Anführungszeichen Blokmarkierung und dann über Advanced den Text einfügen.

    Zitat

    Also :thumbup: für sauberen Code.


    Sauber? Unkommentiert und nicht wirklich geordnet ist der.

    Edit: Ein Beispiel wofür man den Advanced-Tab verwenden kann (zur Erstellung der Zeilen habe ich exzessiv mein Tool verwendet, das ist echt praktisch)

    Spoiler anzeigen
    Code
    Zeile1          +     "" & @CRLF & _    =     "Zeile1" & @CRLF & _
    Zeile ZWEI      +     "" & @CRLF & _    =     "Zeile ZWEI" & @CRLF & _
    Drei            +     "" & @CRLF & _    =     "Drei" & @CRLF & _
    4               +     "" & @CRLF & _    =     "4" & @CRLF & _
    fünf            +     "" & @CRLF & _    =     "fünf" & @CRLF & _
    6               +     "" & @CRLF & _    =     "6" & @CRLF & _
    7               +     "" & @CRLF & _    =     "7" & @CRLF & _

    Einmal editiert, zuletzt von progandy (5. März 2011 um 19:05)

  • @progandy: Danke fürs briefing, werd ma den nutzen suchen, denn das was du nach

    Zitat

    Du willst in 5 Zeilen untereinander 5 Indizes aus einem Array ansprechen:

    beschreibst, mach ich fast täglich, deswegen seh ich gerade ein Lich am ende des Tunnels :D

    Mit

    Zitat

    Also :thumbup: für sauberen Code.

    meine ich sauber im Sinne von Bugfrei und nicht sauber im Sinne von lesbar (ist aber nicht schwer zu lesen)

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.