- Offizieller Beitrag
Hallo,
ich bin gerade dabei NPP für AutoIt frisch zu machen.
Die vielen PlugIns dafür machen es wesentlich komfortabler als SciTE.
Ich werde das dann (wie meine Zeit es zuläßt) Step by Step erweitern, mit ausführlicher Anleitung, welche PlugIns benötigt werden und wie sie konfiguriert werden müssen.
HINWEIS:
Es sind nun mehr als 5 Dateien zum Anhängen, sodass ich diese in eine ZIP-Datei packe
Ein Syntaxhighlighter ist bereits standardmäßig dabei, damit kann man für den Anfang leben - werde ich vllt. später mal 1:1 an die SciTE-Variante anpassen.
(Folgendes ist geändert, s. Edits)
Im Moment habe ich erstmal die Aufrufe für "Run Script" und "Compile Script" erstellt.
Dazu werden einfach die Shortcuts in der "shortcuts.xml" erweitert. Für "Compile" muß man aber eine eigene EXE erstellen, die von dort aufgerufen wird.
In XP ist die "shortcut.xml" unter: "..User\Anwendungsdaten\Notepad++\", in Win7: "..User\AppData\Roaming\Notepad++\".
Folgende Zeilen anfügen:
<Command name="AutoIt Run" Ctrl="no" Alt="no" Shift="yes" Key="116">"%ProgramFiles%\AutoIt3\AutoIt3.exe" "$(FULL_CURRENT_PATH)"</Command>
<Command name="AutoIt Compile" Ctrl="yes" Alt="no" Shift="no" Key="118">"DIE_SKRIPT2EXE.EXE" "$(FULL_CURRENT_PATH)"</Command>
Ich habe hier für "Run Skript" STRG+F5 verwendet, da F5 im Mainmenü verwendet wird und auch eine Umstellung auf anderen Shortcut nach Neustart zurückgesetzt wurde.
Für "Compile" gilt auch hier STRG+F7.
Hier das Skript, das für den Compile-Aufruf verwendet wird. Das Problem mit der Quotierung der Pfade hat sich bei mir dann doch noch erledigt. Nach einem Neustart, verhält sich auch mein Laptop 'normal'.
[s. Anhang: NppAut2Exe_au3.au3]
Ich habe eine Selektion nach x86/x64 integriert, sodass per Standard die Datei auch mit der richtigen Aut2exe kompiliert wird.
Hier wäre es schön, wenn mal jemand mit x64 testet ob das klappt. Auch 32Bit unter x64 erstellen und umgekehrt. (Erfolg kann ich mangels Hardware nicht selbst überprüfen)
Danke vorab.
Edit 22.02.2011
Ich habe jetzt etwas umgestellt und für die Aufrufe von "Syntaxcheck", "Run Script", "Tidy" und "Compile Script" das sehr mächtige plugIn "NppExec" genutzt. Somit werden die Ergebnisse auch in die Console geschrieben.
Dazu das PlugIn in <Erweiterungen><PluginManager> aktivieren.
Da ich für die verwendeten Programmaufrufe auf die Standard-AutoIt Installation zugreife muß also SciTE installiert sein. Oder die Pfade müssen angepaßt werden.
Damit ihr die Makros nicht selbst basteln müßt hier die kpl. Datei ( ..\User\AppData\Roaming\Notepad++\plugins\Config\npes_saved.txt ), in XP dafür: \Anwendungsdaten
05.03.2011 Änderung für Tidy: hinfällig
13.03.2011 Aufrufskripte mit Dateiprüfung:
Was mir bisher noch mißfallen hat, war die fehlende Prüfung ob auch eine au3-Datei für den Aufruf verwendet wird. Deshalb habe ich jetzt für die Funktionen (Check, Tidy, Run, Compile) Skripte erstellt, die diese Überprüfung vornehmen und bei Erfolg die entsprechende Funktion aufrufen. Dadurch wird die gewünschte Funktion in einem anderen Prozeß aufgerufen und ich reiche die StdOut und StdErr dieser Funktionen an die NPP-Konsole weiter.
Ich habe die Struktur bei mir jetzt so gestaltet (damit auch Ordnung herrscht )
..\[InstallDir Notepad++]\plugins\AutoIt
In diesen Ordner habe ich die aufrufenden Funktionen gepackt:
- NppCheck_au3.exe >> Aufruf AU3-Check (STRG+F5)
- NppTidy_au3.exe >> Aufruf Tidy (STRG+T)
- NppRun_au3.exe >> Aufruf Skript Run (F5) [15.3.11 - geändert, Syntaxcheck integriert]
- NppAut2Exe_au3.exe >> Aufruf Skript Kompilieren (STRG+F7)
- NppDebugToConsole.exe ersetzt mit:
- NppDebugVar.exe >> wahlweise Debug in Konsole oder MsgBox, s. "npes_saved.txt" >> ( Alt+D / Strg+Shift+D ) NEU 15.03.11
Es empfiehlt sich, den Font der Konsole auf "Courier New" oder einen anderen Nicht-TT-Font umzustellen. Sonst paßt die Ausgabe (speziell beim Check) nicht. (<Erweiterungen><NppExec><Change Console Font...>)
Edit 15.03.2011
NEU: Debug To Console (SciTE: Alt+D und Cursor auf Variable)
Im Gegensatz zur SciTE-Variante werden auch Array-Variablen erkannt. Der Cursor muß sich aber auf dem Variablennamen befinden, nicht im Indexbereich.
Bsp.:
$a_TeSt[UBound($b_111) +1][$k-5]
; eingefügt wird:
ConsoleWrite('@@ DEBUG_Line: ' & @ScriptLineNumber & ', Var: $a_TeSt[UBound($b_111)+1][$k-5] >> ' & $a_TeSt[UBound($b_111)+1][$k-5] & ' ; @error: ' & @error & ', @extended: ' & @extended & @LF) ; Debug To Console
Noch einen Bug gefixt und Debug To MsgBox ergänzt
Und noch einen Bug entdeckt (@TAB zur Positions-Auswertung in Leerzeichen wandeln)
Hier meine aktuelle
npes_saved.txt - aktualisiert
::AutoIt Run
NPP_SAVE
"$(NPP_DIRECTORY)\plugins\AutoIt\NppRun_au3.exe" "$(FULL_CURRENT_PATH)"
::AutoIt Compile
NPP_SAVE
"$(NPP_DIRECTORY)\plugins\AutoIt\NppAut2Exe_au3.exe" "$(FULL_CURRENT_PATH)"
::AutoIt Tidy
NPP_SAVE
"$(NPP_DIRECTORY)\plugins\AutoIt\NppTidy_au3.exe" "$(FULL_CURRENT_PATH)" "$(NPP_DIRECTORY)"
NPP_OPEN "$(FULL_CURRENT_PATH)"
::AutoIt Check
NPP_SAVE
"$(NPP_DIRECTORY)\plugins\AutoIt\NppCheck_au3.exe" "$(FULL_CURRENT_PATH)"
::AutoIt Hilfe
"$(SYS.ProgramFiles)\AutoIt3\AutoIt3.chm" "/$(CURRENT_WORD)"
::Debug To Console
NPP_SAVE
"$(NPP_DIRECTORY)\plugins\AutoIt\NPPDebugToConsole.exe" "$(FULL_CURRENT_PATH)" "$(CURRENT_LINE)" "$(CURRENT_COLUMN)" "$(CURRENT_WORD)" "C"
NPP_OPEN "$(FULL_CURRENT_PATH)"
::Debug To MsgBox
NPP_SAVE
"$(NPP_DIRECTORY)\plugins\AutoIt\NPPDebugToConsole.exe" "$(FULL_CURRENT_PATH)" "$(CURRENT_LINE)" "$(CURRENT_COLUMN)" "$(CURRENT_WORD)" "M"
NPP_OPEN "$(FULL_CURRENT_PATH)"
Alles anzeigen
Änderung Quota-Darstellung ( Str+Q ). War viel einfacher als erwartet.
In der Datei "..\AppData\Roaming\Notepad++\langs.xml"
Statt ";~" könnt ihr auch andere Zeichen hinter dem ";" verwenden.
Um die Makros im Makro-Menü einzubinden ruft ihr auf: <Erweiterungen><NppExec><Advanced Options ...> und setzt den Haken bei "Place to the Macros submenu". Dann könnt ihr die Makroskripte bei "Associated script:" auswählen und hinzufügen (bei Bedarf den Itemnamen ändern).
Unter <Ausführen><Shortcut ändern/Befehl löschen..><Plugin Commands> findet ihr die neuen Menüeinträge und könnt Shortcuts eurer Wahl zuweisen.
Weitere empfohlene PlugIns:
- Explorer (ein minimalistischer, aber völlig ausreichender Explorer)
- MultiClipboard (erklärt sich selbst ;))
- XBrackets Lite (Autovervollständigung von paarigen Zeichen: ' " ( { [ )
- nicht zu vergessen: Language Help ==> hier könnt ihr den Pfad zur AutoIt-Hilfe hinterlegen, im Shortcut-Menü (Main - Befehl: Info) F1 rausschmeißen und bei: Plugin Commands - Befehl Help (Pos 21) F1 zuweisen
Dann läßt sich mit Cursor auf Befehl, wie gewohnt die Hilfe dazu aufrufen.
Für das Syntaxhighlighting verwende ich jetzt folgende Einstellungen in der "stylers.xml"
Spoiler anzeigen
<LexerType name="autoit" desc="autoIt" ext="">
<WordsStyle name="DEFAULT" styleID="0" fgColor="004080" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" />
<WordsStyle name="COMMENT LINE" styleID="1" fgColor="008000" bgColor="F0F4F9" fontName="" fontStyle="2" fontSize="" />
<WordsStyle name="COMMENT" styleID="2" fgColor="008000" bgColor="F0F4F9" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="NUMBER" styleID="3" fgColor="9F009F" bgColor="F0F4F9" fontName="" fontStyle="3" fontSize="10" />
<WordsStyle name="FUNCTION" styleID="4" fgColor="000090" bgColor="F0F4F9" fontName="" fontStyle="3" fontSize="" keywordClass="instre2" />
<WordsStyle name="INSTRUCTION WORD" styleID="5" fgColor="0000FF" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" />
<WordsStyle name="MACRO" styleID="6" fgColor="FF00FF" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" keywordClass="type1" />
<WordsStyle name="STRING" styleID="7" fgColor="9999DF" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="9" />
<WordsStyle name="OPERATOR" styleID="8" fgColor="FF0000" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" />
<WordsStyle name="VARIABLE" styleID="9" fgColor="AA0000" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" />
<WordsStyle name="SENT" styleID="10" fgColor="FF8800" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" keywordClass="type2" />
<WordsStyle name="PREPROCESSOR" styleID="11" fgColor="F000FF" bgColor="F0F4F9" fontName="" fontStyle="2" fontSize="" keywordClass="type3" />
<WordsStyle name="SPECIAL" styleID="12" fgColor="8000FF" bgColor="F0F4F9" fontName="" fontStyle="2" fontSize="" keywordClass="type4" />
<WordsStyle name="EXPAND" styleID="13" fgColor="FF0000" bgColor="F0F4F9" fontName="" fontStyle="1" fontSize="" keywordClass="type5"></WordsStyle>
<WordsStyle name="COMOBJ" styleID="14" fgColor="0000FF" bgColor="F0F4F9" fontName="" fontStyle="3" fontSize="" />
</LexerType>
Alles anzeigen
Die UDF werden zwar wie die Standardfunktionen dargestellt, aber für den Anfang gehts erst mal.
===== To-Do-List =====
- Auto-Vervollständigung von Skriptvariablen, -Funktionen
- Abbrevs
- Debug To Console/MsgBox ( in SciTE: Alt+D/ Strg+Shift+D )
- Änderung der Quotierung ( Strg+Q: von ";" zu ";~ " )
- Verbesserung Syntax-Highlighting ( das hebe ich mir zum Schluß auf, ist ziemlich räudig :wacko: )
Wenn hier von eurer Seite noch weitere Wünsche sind, bitte meldet euch. Mal sehen, was geht.
====================