Da ich den Beitrag schon erstellt und die Forensoftware hat ihn gelöscht hatte, versuche ich nun aus dem Gedächtnis zu rekonstruieren.
Im Thread FAQ - SciTE Editor ging es darum "Wie kann man in SciTE4AutoIt3 eine weitere Hilfedatei einbinden, z.B. für Lua?". Im Posting #48 hat BugFix eine Antwort geschrieben und nützliche Dateien angehängt.
Lua.User.Scripts.Path ist eine Property, die vorher definiert werden muss, z.B. Lua.User.Scripts.Path=C:\Code\Lua
Leider kriege ich es nicht hin, dass Lua den Pfad zu meinen eigenen Scripts findet. Ich habe die Ordnerstruktur auf meiner Festplatte genau so eingerichtet, wie du sie bei dir hast. "C:\Code\Lua\..." Den Code habe ich genauso wie in deinem Beitrag beschrieben von der Forenwebseite in meine Dateien kopiert. Leider erscheint beim Drücken von F1 eine Fehlermeldung:
Das verwirrt mich total, weil der Pfad von der MsgBox in meinen Scripts nirgends vorkommt.
Das gleiche Problem gibt es generell, wenn Lua eine Datei aus "C:\Code\Lua\..." benutzen soll. Beispiel: In einem Script "MeinModul.lua" habe ich eine Funktion "foo":
In der "SciTEStartup.lua" rufe ich die Funktion auf mit:
Wenn ich nun MeinModul.lua im gleichen Ordner habe wie die SciTEStartup.lua und die die SciTEStartup.lua öffne, wird die MeinModul.lua natürlich gefunden und schreibt "Hello World" in die SciTE Console. Wenn ich aber irgendeine andere Datei mit SciTE öffne, gibts folgende Fehlermeldungen:
Fehlermeldungen
...ers\User1\AppData\Local\AutoIt v3\SciTE\SciTEStartup.lua:112: module 'MeinModul' not found:
no field package.preload['MeinModul']
no file '\MeinModul.lua'
no file '\MeinModul\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\lua\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\lua\MeinModul\init.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\MeinModul\init.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\..\share\lua\5.3\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\..\share\lua\5.3\MeinModul\init.lua'
no file '.\MeinModul.lua'
no file '.\MeinModul\init.lua'
no file '\MeinModul.dll'
no file '\MeinModul\MeinModul.dll'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\MeinModul.dll'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\..\lib\lua\5.3\MeinModul.dll'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\loadall.dll'
no file '.\MeinModul.dll'
>Lua: error occurred while running startup script
Das gleiche Spiel, wenn ich die MeinModul.lua in den Ordner "C:\Code\Lua\..." verschiebe, nur dass sie dann auch von der SciTEStartup.lua nicht mehr gefunden wird. Auch einen kompletten Pfad habe ich probiert:
Spoiler anzeigen
...ers\User1\AppData\Local\AutoIt v3\SciTE\SciTEStartup.lua:113: module 'C:\Code\Lua\MeinModul' not found:
no field package.preload['C:\Code\Lua\MeinModul']
no file '\C:\Code\Lua\MeinModul.lua'
no file '\C:\Code\Lua\MeinModul\C:\Code\Lua\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\lua\C:\Code\Lua\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\lua\C:\Code\Lua\MeinModul\init.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\C:\Code\Lua\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\C:\Code\Lua\MeinModul\init.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\..\share\lua\5.3\C:\Code\Lua\MeinModul.lua'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\..\share\lua\5.3\C:\Code\Lua\MeinModul\init.lua'
no file '.\C:\Code\Lua\MeinModul.lua'
no file '.\C:\Code\Lua\MeinModul\init.lua'
no file '\C:\Code\Lua\MeinModul.dll'
no file '\C:\Code\Lua\MeinModul\C:\Code\Lua\MeinModul.dll'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\C:\Code\Lua\MeinModul.dll'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\..\lib\lua\5.3\C:\Code\Lua\MeinModul.dll'
no file 'C:\Program Files (x86)\AutoIt3\SciTE\loadall.dll'
no file '.\C:\Code\Lua\MeinModul.dll'
>Lua: error occurred while running startup script
Scheinbar muss Lua mitgeteilt werden, dass es in "C:\Code\Lua\" suchen soll. Wie macht man das?