jEdit für AutoIt

  • Betonung liegt auf jEdit:
    Java. Also müsste da irgendwo eine .Jar oder .class-datei sein... :thumbup:

    Leider sind weder *.jar noch *.claas zu finden :(

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Okay, sry, hatte von nix Ahnung.

    Folgendes stimmt jetzt hoffentlich:
    Das ist nur ein Au3-PlugIn für den Editor jEdit, den du also zuerst runterladen musst.. :P

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • "Plugin" ist etwas übertrieben, das Ganze ist eine Sammlung an Macros, Zusatzdateien für andere Plugins und natürlich der Edit-Mode.

    Also:
    erstmal jEditinstallieren
    und dann einfach die Verzeichnisse aus dem jEdit4AutoIt Archiv kopieren wie es auf der Homepage steht.

    Dabei wird allerdings nichts konfiguriert die Eintellungen und Shortcuts sind noch selbst zu machen.
    Gibt auch ein Video dazu:
    http://jedit4autoit.thorsten-willert.de/downloads/jEdi…_Hello_World.7z

    Grüße
    Stilgar


    [EDIT]
    Der Präprozessor hinterläßt nun keine "Kommentare" mehr:

    aus dem:

    Spoiler anzeigen
    [autoit]

    ; File ............: __NAME__
    ; AutoItVersion ...: __AUTOIT_VERSION__
    ; Time ............: __TIME__
    ; Date ............: __DATE_AND_TIME__

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #define Text "bla blubber"
    #define Var1 $ok
    #define Var2 $test
    #define Test
    #define Beta

    [/autoit] [autoit][/autoit] [autoit]

    #ifdef Beta
    #include <test_beta.au3>
    #else
    #include <test.au3>
    #endif

    [/autoit] [autoit][/autoit] [autoit]

    Var1 = ( 1 > $a ? "ok" : Text )

    [/autoit] [autoit][/autoit] [autoit]

    #undef Var2

    [/autoit] [autoit][/autoit] [autoit]

    #ifdef Var3
    MsgBox(64,"","1")
    #elif Var2
    MsgBox(64,"",Var2)
    #elif Test
    MsgBox(64,"",Text)
    #else
    MsgBox(64,"","3")
    #endif

    [/autoit]

    wird das:

    Spoiler anzeigen
    [autoit]

    ; File ............: pp_test.au3
    ; AutoItVersion ...: v3.3.0.0
    ; Time ............: 12:18:11
    ; Date ............: Sat Apr 18 12:18:11 CEST 2009

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <test_beta.au3>

    [/autoit] [autoit][/autoit] [autoit]

    If 1 > $a Then
    $ok = "ok"
    Else
    $ok = "bla blubber"
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    MsgBox(64,"","bla blubber")

    [/autoit]

    PP.bsh

    4 Mal editiert, zuletzt von Stilgar (18. April 2009 um 12:19)

  • Hallo,

    also erstmal Respekt für dieses Projekt! Auf diese Weise ist JEdit eigentlich komfortabler zu nutzen als SCite.
    ... Das war sicher ein riesen Haufen Arbeit!

    Ich habe mal versucht, JEdit entsprechend zu konfigurieren und habe mir dazu auch das Video angeguckt.
    Einige Probleme gibt es bei mir noch:

    • ich kann leider das Kontext Menü nicht konfigurieren. Wenn ich wie im Video auf Context Menu -> Menus in den Plugin Options gehe und als Mode autoitscript auswähle, ist bei mir das Pluszeichen in der unteren linken Ecke nicht aktiviert, sodass ich keine Kontextmenüeinträge hinzufügen kann. Wähle ich einen anderen Mode wie z. B. ada95, dann ist das Pluszeichen aktiviert. Warum wohl ausgerechnet bei Autoit nicht?
    • wenn ich im Skript z. B. einen Unterstrich eintippe, öffnet sich das Kontextmenü mit einer Liste der UDFs. Wenn ich einfach nur ein "m" eingebe, hätte ich erwartet, dass sich auch ein Kontextmenü öffnet, in dem z. B. msgbox definiert ist. Sind derzeit nur UDFs vorhanden oder die eingebauten Funktionen auch?
    • die ErrorList will bei mir leider auch noch nicht so richtig. Wenn ich ein Skript überprüfe (über die Console) und Fehler enthalten sind, passiert mit der ErrorList gar nichts. Sie bleibt einfach leer. Aus dem Video habe ich mir den RegEx-String "([^\(]*)[\(](\d+)[)].:.([^:]*):\s*(.*)" abgeguckt. In der Testarea habe ich eine AutoIt-Fehlermeldung geladen und dann Test/Commit gedrückt und dabei die Meldung erhalten, dass nichts erkannt wurde. Was mache ich da womöglich falsch?


    Würde mich freuen, wenn mir jemand ein paar Tipps dazu geben könnte.

    Gruß BlackMail.

  • Hallo,

    erstmal dankeschön! :)

    Es ging so. Hat sich so nebenbei beim Arbeiten damit ergeben. Die meiste Arbeit war die Vorlage für XInsert zu schaffen und die Funktionsnamen in den Edit-Mode reinzubringen.
    Die Funktionen der UDFs kann man nun ja überall automatisch aktualisieren, also macht das mittlerweile gar keine Arbeit mehr.

    * Das mit dem Kontextmenü ist mir auch ein Rätsel.
    Ein Name steht drin? Was passiert nach einem Neustart von jEdit?

    * Die Vervollständigung reagiert auf Groß-und Kleinschreibung also bei z.B. "M" sollte die MsgBox schon auftauchen.

    * - Hast du vor dem Testen auch "Apply" betätigt? Steht "AutoItScript" direkt und "Generic"? Hast du die restlichen Felder auch ausgefüllt? (die Daten habe ich mal auf der Homepage noch nachgetragen)
    - Die ErrorList zeigt momentan nur Laufzeitfehler an, keine Fehler die Au3Check ausgibt (mal schauen wie sich das ändern läßt)

    Grüße
    Stilgar

  • Hallo,

    danke für die Antworten. Das hat mich schon weiter gebracht.

    Zitat

    * Die Vervollständigung reagiert auf Groß-und Kleinschreibung also bei z.B. "M" sollte die MsgBox schon auftauchen.

    • stimmt :) (manchmal ist man einfach nur zu doof ...)
    Zitat

    * Das mit dem Kontextmenü ist mir auch ein Rätsel.
    Ein Name steht drin? Was passiert nach einem Neustart von jEdit?

    • das scheint ein Bug zu sein: Ich habe mal den AutoItScript - Edit Mode-Eintrag aus der Catalog-Datei rausgenommen (stand an 1. Stelle) und dann an anderer Stelle (alphabetisch einsortiert) wieder eingefügt. Jetzt geht's (verstehe das wer will...)
    Zitat

    * - Hast du vor dem Testen auch "Apply" betätigt? Steht "AutoItScript" direkt und "Generic"? Hast du die restlichen Felder auch ausgefüllt? (die Daten habe ich mal auf der Homepage noch nachgetragen)
    - Die ErrorList zeigt momentan nur Laufzeitfehler an, keine Fehler die Au3Check ausgibt (mal schauen wie sich das ändern läßt)

    • ah ja, geht auch. Ich dachte es ginge auch für Au3Check. Vielleicht versuche ich mich selbst mal an einem RegEx dafür.


    Also besten Dank für die Hilfe!

    Gruß BlackMail.

  • Für den Au3Check einfach einen neuen Eintrag erstellen und folgendes eintragen:

    Error Regexp:

    Code
    ([^\(]*)[\(](\d+),\d+[)].:.ERROR:\s*(.*)

    Warning:

    Code
    ([^\(]*)[\(](\d+),\d+[)].:.WARNING:\s*(.*)

    Filename: $1
    Line number: $2
    Error Message: $3

  • Saugeil! Das ging ja schnell. Und funktioniert hervorragend! :thumbup:
    Hätte bei mir definitiv um Einiges länger gedauert. So fit bin ich da nicht.

    Besten Dank! Wüsste im Moment nicht, was jetzt noch fehlt ...

    Viele Grüße BlackMail

  • Fehler bei den Bit-Operationen im Preprozessor behoben:

    aus dem:

    Spoiler anzeigen

    wird nun das was es sein soll :D

    Spoiler anzeigen
    [autoit]

    BitShift($var1, $var2)
    BitShift($var2, 2)
    BitShift(3, $var4)
    BitShift(4, 1)

    [/autoit] [autoit][/autoit] [autoit]

    BitShift($var1, -$var_2)
    BitShift($var_2, -2)
    BitShift(3, -$var4)
    BitShift(4, -1)

    [/autoit] [autoit][/autoit] [autoit]

    BitNot($var1)
    BitNot(120)

    [/autoit]

    einige andere Optimierungen vorgenommen und neu als Macro:
    __DATE__ = aktuelles Datum

    PP.bsh

    Grüße
    Stilgar

  • Hallo,

    anhand von Stilgars Vorlagen habe ich auch mal ein Makro geschrieben, um Zeilenkommentare im Stil von SCITE zu setzen bzw. zu entfernen.
    Entweder Cursor in die entsprechende Zeile setzen oder kompletten Block markieren.
    Die Standardfunktion unter Edit -> Source -> Line Comment hat mir nicht gefallen, weil man da nur Zeilen als Kommentar setzen aber nicht wieder entfernen kann (oder ich bin nur zu dumm dazu).

    Spoiler anzeigen

    Vielleicht hat ja jemand noch Verbesserungsvorschläge dazu ...

    Stilgar: wenn Du willst, kannst Du das ja auch in Dein Makroverzeichnis mit aufnehmen.

    Gruß BlackMail.

  • Ja gute Idee.

    Sowas ähnliches hatte ich noch herumliegen:
    Toggle_Comment
    ist auch unabhängig vom Edit-Mode.

    Hatte das nur nie dazugelegt, weil das Plugin-"Text-Tools" das auch kann, inkl. range Comments.
    Das Plugin ist ingesamt sehr empfehlenswert, es kann auch Zeilen sortieren, doppelte Zeilen entfernen ...

    [EDIT]
    Habe auf die Homepage noch Werte zur Anzeige von Tidy Fehlern, in der Error-List, eingetragen.
    Und noch ein Makro, das die Tiddy-Fehlermeldungen wieder aus dem Quelltext entfernt:
    Tidy_Remove_Error_Messages.bsh

    Frage:
    Gibt es eigentlich einen Parameter, der verhindert, daß diese Meldungen im Quelltext landen?

    Grüße
    Stilgar

    3 Mal editiert, zuletzt von Stilgar (20. April 2009 um 13:59)

  • Zitat

    weil das Plugin-"Text-Tools" das auch kann

    Oh, dann hätte ich mir das eigentlich sparen können.
    Aber so habe ich mal gesehen, wie Makros in JEdit eingebunden sind. Außerdem wusste ich vorher noch gar nicht, dass die BeanShell ein Java-Interpreter ist.
    Echt cool, wie einfach man JEdit so erweitern kann. Ein paar Java-Kenntnisse sind dabei aber schon von Vorteil.

    Gruß BlackMail

  • Stimmt da kann man einiges machen.

    Für Schreibfaule habe ich den Preprozessor noch etwas erweitert :D

    Aus dem hier:

    Spoiler anzeigen
    [autoit]

    ; Modulo
    $m = 3%4
    $m = $a % $b
    $m=$a%4
    $m=4 % $b
    $m = foo % $b

    [/autoit] [autoit][/autoit] [autoit]

    ; Not
    If !$bla Then
    Until !Test()
    If ! $bla Then
    "Ein Satz!"
    "!nochmal einer"

    [/autoit] [autoit][/autoit] [autoit]

    ; 0 To UBound(Array)-1
    For $i : $aArray
    For $i:$aArray
    For $i: 3
    For 1 : $Array

    [/autoit]


    wird das:

    Spoiler anzeigen
    [autoit]

    ; Modulo
    $m = Mod(3, 4)
    $m = Mod($a, $b)
    $m = Mod($a, 4)
    $m = Mod(4, $b)
    $m = foo % $b

    [/autoit] [autoit][/autoit] [autoit]

    ; Not
    If Not $bla Then
    Until Not Test()
    If ! $bla Then
    "Ein Satz!"
    "!nochmal einer"

    [/autoit] [autoit][/autoit] [autoit]

    ; 0 To UBound(Array)-1
    For $i = 0 To UBound($aArray)-1
    For $i = 0 To UBound($aArray)-1
    For $i: 3
    For 1 : $Array

    [/autoit]


    da wo es nicht "übersetzt" wurde, soll es auch so sein, sonst wäre es falsch ...

    PP.bsh

    Viel Spaß damit!

    Stilgar

    • Offizieller Beitrag

    Wäre es evtl. sinnvoll sicherheitshalber das ! durch Not(x) zu ersetzen, weil das Not in AutoIt ja sehr stark bindet, stärker als in C soweit ich mich erinnere...?
    Das __DATE__ im Präprozessor ist sehr angenehm für das Einbinden der Kompilierzeit neben der Version :).

    peethebee

  • Das Problem ist dabei herauszufinden wo denn die Klammer hin soll, wenn z.B ein Ausdruck wie:

    Code
    !$b And $c And $d Or $e ...


    vorkommt.

    Was ich machen kann ist das ! zusätzlich vor ein Klammer zu berücksichtigen, das aus "!(" eben "Not (" wird.

    Grüße
    Stilgar

    [EDIT]
    Mini Update:
    Nun geht auch folgendes:

    [autoit]

    If !($a And $b) Or $c

    [/autoit]


    =>

    [autoit]

    If Not ($a And $b) Or $c

    [/autoit]

    Einmal editiert, zuletzt von Stilgar (20. April 2009 um 20:32)

  • Ein Update mit allen Änderungen der letzten Zeit gibts auf der Homepage - Änderungen siehe auch dort.
    Achtung! Ich habe den Commando-Dateien der Console einheitliche Namen verpaßt, also evtl. Shortcuts anpaßen!

    Die Commando-Dateien suchen sich nun ihre exe selbst entweder in AutoIt/Extras oder in AutoIt/SciTe/Name/ -
    komische Installation zig Sachen doppelt vorhanden ?(

    Die Einstellungen von Tidy scheinen etwas seltsam zu sein. Die Parameter zum Enfernen, oder Aktualisieren der Kommentare bei #Endregion und EndFunc scheinen nur wirksam zu sein, wenn man es zuläßt Kommentar-Blöcke auch zu formatieren.
    D.h. wenn man also einen Kommentar hinter EndFunc möchte - zerhaut es einem wieder alle Kommentar-Blöcke :( - Sch...ade.

    [OT]
    Wie kann man es eigentlich verhindern, daß SciTe einem das ganze Benutzerverzeichnis mit unzähligen (Config)Dateien zumüllt?

    Grüße
    Stilgar

  • Hallo,

    muss mich leider nochmal mit einem Problem melden. Auf einem von drei Rechnern auf denen ich JEdit mit AutoIt installiert habe, läuft das CTAGS nicht richtig. Das Parsen liefert kein Ergebnis.
    Der Filemonitor sagt:

    "22:32:29 javaw.exe:3992 OPEN C:\programme\ctags\ctags.exe.Manifest NOT FOUND Options: Open Access: 001200A9
    22:32:29 javaw.exe:3992 QUERY INFORMATION C:\programme\ctags\ctags.exe BUFFER OVERFLOW FileNameInformation"

    Keine Ahnung was das heißt und ob das der entscheidende Hinweis ist. Wüsste aber nicht, wo ich sonst gucken sollte :huh:

    Irgendwelche Ideen?

    Gruß BlackMail.