Kannst Du so machen.
Skript für "erweiterte" Hilfe in SciTE
-
water -
23. November 2021 um 21:31 -
Erledigt
-
-
Erledigt
ThemaAdvanced.Help / Erweiterte.Hilfe für AutoIt und UDFs
Mit der F1-Taste wird in SciTE die Dokumentation für das Wort, auf dem sich der Cursor befindet, angezeigt. Bislang gab es dies nur für AutoIt.
Das war einmal
Mit dem von MrCreatoR erstellten und mir angepassten "Simple Library Docs Generator" können beliebige CHM-Hilfedateien (Compressed HTML Help) erstellt werden (später dazu in einem eigenen Thema/Thread mehr).
Die Hilfe für die Active Directory, Outlook und TaskScheduler UDF ist bereits umgestellt.
Die Einbindung dieser Hilfe-Dateien in SciTE…water28. November 2021 um 19:20 -
Wurden die Funktionen einer UDF mit dem selben Präfix auf mehrere Dateien aufgeteilt, so müssen diesese durch
Hier noch einer...
-
Ist im offizillen Download Thread bereits gefixt:
ThemaAdvanced.Help / Erweiterte.Hilfe für AutoIt und UDFs
Mit der F1-Taste wird in SciTE die Dokumentation für das Wort, auf dem sich der Cursor befindet, angezeigt. Bislang gab es dies nur für AutoIt.
Das war einmal
Mit dem von MrCreatoR erstellten und mir angepassten "Simple Library Docs Generator" können beliebige CHM-Hilfedateien (Compressed HTML Help) erstellt werden (später dazu in einem eigenen Thema/Thread mehr).
Die Hilfe für die Active Directory, Outlook und TaskScheduler UDF ist bereits umgestellt.
Die Einbindung dieser Hilfe-Dateien in SciTE…water28. November 2021 um 19:20 -
Hallo BugFix!
Wenn ich Deine Originaldoku richtig verstehe, dann darf "chm.path.<Kennung>=" keine Leerzeichen enthalten . Dies gilt aber nicht für "udf.path.<Kennung>="
Sehe ich das richtig?
Code==> #~ IMPORTANT! The path to the help file must never contain a space!! #~ Active Directory #~ If "chm.mainfolder" is used, you can apply it like this: chm.path._AD_=$(chm.mainfolder)\AD.chm #~ otherwise use the full path: #~ chm.path._AD_=C:\CODE\AutoIt\helpfiles\AD.chm ==> udf.path._AD_=C:\CODE\AutoIt\FREMD_CODE\AD 1.6.0.0\AD.au3
-
Sehe ich das richtig?
Richtig. Das ist nur relevant für den Pfad der chm-Datei. Im Parameter mk ist es nicht möglich Leerzeichen zu maskieren (zumindest habe ich keine Möglichkeit gefunden).
mk:@MSITStore:'..path..'::/funcs/'.._item..'.htm'
EDIT:
Mir ist gerade was anderes aufgefallen. Ich hatte die Befehlszeile ja von dir übernommen. Aber laut Aufrufbeschreibung fehlt da ein :.
Erstaunlich, dass der Aufruf trotzdem funktioniert.
IE ab Vers. 4.0 Syntax: HH.EXE ms-its::Pfad/name.chm::/Pfad/name.htm -
Danke!
Andere Frage.
Ich denke ich habe einen kleinen Bug in call.advanced.help.au3 gefunden:
@AutoItExe - The full path and filename of the AutoIt executable currently running. For compiled scripts it is the path of the compiled script; for .a3x and .au3 files it is the path of the interpreter running the file.
D.h. die Zeile
funktioniert im kompilierten Skript nicht.
-
Ich denke ich habe einen kleinen Bug in call.advanced.help.au3 gefunden:
OK, das kann gut sein.
Ersetze die ersten Skriptzeilen hiermit:
-
Danke für die schnelle Antwort!
Ist eingebaut und getestet - passt
-
In meiner au3abbrev.properties (und auch nur da) ist folgende Property deklariert:
# Directories
autoit3dir=C:\\Program Files (x86)\\AutoIt3\\|
In advanced.help.lua wird autoit3dir in der Funktion tAU3Help.CallHelp benutzt, um den Pfad zur Autoit3Help.exe zu bilden.
cmd = '"'..props['autoit3dir']..'\\Autoit3Help.exe" "'.._item..'"'
Der fertige Pfad sieht bei mir so aus und kann natürlich nicht funktionieren:
C:\\Program Files (x86)\\AutoIt3\\|\Autoit3Help.exe
-
Ein Pfad in Properties Dateien darf NIEMALS auf Backslash enden!
Ordnerangaben enden normal nicht auf Backslash, das machen wir gerne beim Skripten um einer Pfadvariablen verschiedene Dateien mit einfachem '&' zuzuweisen. Korrekt ist es aber nicht.
-
Ein Pfad in Properties Dateien darf NIEMALS auf Backslash enden!
Das ist in der au3abbrev.properties bereits so vorgegeben... ich habe lediglich das " (x86)" hinzugefügt. Und nun, was mache ich, damit es fuktioniert?
-
Das ist in der au3abbrev.properties bereits so vorgegeben
Seltsam, war bei mir nicht der Fall und ist auch definitiv falsch. Aber ich werde eine Codezeile hinzufügen, die das prüft und korrigiert.
Das ist in der au3abbrev.properties bereits so vorgegeben... ich habe lediglich das " (x86)" hinzugefügt. Und nun, was mache ich, damit es fuktioniert?
Bevor ich eine Änderung poste:
Das was du schreibst, ist nicht möglich. Ein Backslash am Zeilenende einer Properties Datei bedeutet: weiter in der nächsten Zeile. Die Pipe wird bei Aufzählungen verwendet, also mehrere Werte für eine Variable.
"autoit3dir" hat nur einen einzigen Wert, weder Zeilenfortschreibung noch Trenner ist erforderlich.
Dein Eintrag ist also falsch.
Änderungen, nur für dich -- aber einfacher: \| am Pfadende einfach löschen
AutoIt: In der Au3-DateiIf Not $CmdLine[0] Then $sAu3 = SendSciTE_Command("askproperty:autoit3dir", 1) $sAu3 = StringRegExpReplace($sAu3, '\\\|$', '') ShellExecute($sAu3 & '\Autoit3Help.exe') Else
Code: In der Lua-Datei
Alles anzeigentAU3Help.CallHelp = function(self, _prefix, _item) local path, cmd = props['chm.path.'.._prefix:upper()] if _prefix == 'AU3' then local au3dir = props['autoit3dir'] au3dir = au3dir:gsub('\\|$', '') cmd = '"'..au3dir..'\\Autoit3Help.exe" "'.._item..'"' else cmd = 'mk:@MSITStore:'..path..'::/funcs/'.._item..'.htm' end props['extender.result'] = cmd -- Runtime property, is queried by the calling Au3 script. end
-
Hier die aktuelle SciTE4AutoIt3-Version:
https://www.autoitscript.com/cgi-bin/getfile.pl?../autoit3/scite/download/SciTE4AutoIt3_Portable.zip
Da guckst du dann in die Datei au3abbrev.properties bei # Directories:
# Directories
autoit3dir=C:\\Program Files\\AutoIt3\\|
aut2exedir=C:\\Program Files\\AutoIt3\\Aut2Exe\\|
icondir=C:\\Program Files\\AutoIt3\\Aut2Exe\\Icons\\|
includedir=C:\\Program Files\\AutoIt3\\Include\\|
scitedir=C:\\Program Files\\Autoit3\\SciTe\\|
Vergleiche das mal mit deiner au3abbrev.properties...
autoit3dir wird sonst nirgendwo bei mir deklariert... kann es sein, dass die au3abbrev.properties in der portablen Version anders sind, als die in dem Installer?
-
# Directories
autoit3dir=C:\\Program Files\\AutoIt3\\|
aut2exedir=C:\\Program Files\\AutoIt3\\Aut2Exe\\|
icondir=C:\\Program Files\\AutoIt3\\Aut2Exe\\Icons\\|
includedir=C:\\Program Files\\AutoIt3\\Include\\|
scitedir=C:\\Program Files\\Autoit3\\SciTe\\|
Das ergibt keinen Sinn und ist in der Installer Version nicht so.
Wenn man diese Property ausliest (autoit3dir) kommt bei dir folgendes raus:
C:\\Program Files\\AutoIt3\\|aut2exedir=C:\\Program Files\\AutoIt3\\Aut2Exe\\|icondir=C:\\Program Files\\AutoIt3\\Aut2Exe\\Icons\\|includedir=C:\\Program Files\\AutoIt3\\Include\\|scitedir=C:\\Program Files\\Autoit3\\SciTe\\|
Und das ist nur gequirlte Kacke. Jede dieser Zeilen muss alleine stehen und darf nicht fortgeschrieben werden.
Wie soll man hier z.B. das includedir abfragen?? - Es ist als Bestandteil des autoit3dir gespeichert.
Vergleiche das mal mit deiner au3abbrev.properties...
Gibt es in der Installerversion gar nicht.
Die Property "autoit3dir" befindet sich in der "au3.properties".
EDIT
Da die portable Version wohl anders mit den properties umgeht, werde ich morgen mal eine Ergänzung dafür schreiben.
-
Die Portable überschreibt tatsächlich das autoit3dir in au3.properties, mit dem autoit3dir in au3abbrev.properties. Ja, so geht es auch...
Habe jetzt das autoit3dir in au3abbrev.properties in au3dir umbenannt, und siehe da, so funktioniert es... denn jetzt greift das autoit3dir in au3.properties.
autoit3dir=$(SciteDefaultHome)\..
-
Wenn man diese Property ausliest (autoit3dir) kommt bei dir folgendes raus:
C:\\Program Files\\AutoIt3\\|aut2exedir=C:\\Program Files\\AutoIt3\\Aut2Exe\\|icondir=C:\\Program Files\\AutoIt3\\Aut2Exe\\Icons\\|includedir=C:\\Program Files\\AutoIt3\\Include\\|scitedir=C:\\Program Files\\Autoit3\\SciTe\\|
Das stimmt allerdings nicht!
-
Das stimmt allerdings nicht!
Da hast du recht. Habe mich vertan - hatte es nicht getestet.
Aber mir ist unverständlich, was die Pipe am Ende soll. Ich kann mir keinen Reim darauf machen, wofür das gut sein soll. Als Teil des Pfades ist es jedenfalls nicht zu gebrauchen.
-
Aber mir ist unverständlich, was die Pipe am Ende soll.
Die Pipe kennzeichnet die Stelle, an der das Caret nach Einfügen des Textes anstelle der Abbreviation gesetzt wird.
Bsp.:
Abbrev eintippen, | ist die Stelle, an der das Caret steht:
autoit3dir|
Leerzeichentaste drücken:
C:\\Program Files (x86)\\AutoIt3\\|
-
Die Pipe kennzeichnet die Stelle, an der das Caret nach Einfügen des Textes anstelle der Abbreviation gesetzt wird.
Achso, das sind ja deine Angaben aus der Abbrev-Datei. Da ist das ja sinnvoll.
-