- Offizieller Beitrag
Da in den entsprechenden Threads einige Anhänge verloren gegangen sind, werde ich hier nochmals in SciTE nutzbare Bibliotheken für Lua posten.
- Alien Eine Art Schweizer Taschenmesser, man kann sich z.B. die WinAPI damit zugänglich machen
- Shell Datei-, Kommandozeilenoperationen, MsgBox in Lua
-
LPEG Reguläre Ausdrücke
(das Wiki ist russisch, bei Bedarf einfach vom Browser übersetzen lassen) war der falsche LInk - RE LPEG ist schon etwas speziell, für einfacheres Handling hier die re.lua, die auf LPEG basiert
- LFS LuaFileSystem --- Scheinbar hatte ich doch nicht mehr die SciTE-Variante dieser Dll. Diese hier ist leider nicht in SciTE ladbar.
- GUI in SciTE, siehe gui.html im Ordner doc
- VCL Umfangreiche Bibliothek für GUI in Lua
- HiResTimer Ein hochpräziser Timer, erfordert Alien
Einbinden der Bibliotheken
- Einen Ordner für eigene Luaskripte und Bibliotheken anlegen
- In der SciTEUser.properties dafür eine Property festlegen, z.B. Lua.User.Scripts.Path=Lw:\DEIN\PFAD
- In der SciTEStartup.lua muss jetzt dieser Pfad für Lua- und Dll-Dateien registriert werden.
local sUserLua = props["Lua.User.Scripts.Path"]
LUA_USER_PATH = sUserLua .. "\\?.dll;" .. sUserLua .. "\\?\\?.dll;"
package.cpath = LUA_USER_PATH .. package.cpath
LUA_USER_LUA = sUserLua .. "\\?.lua;" .. sUserLua .. "\\?\\?.lua;"
package.path = LUA_USER_LUA .. package.path
Die Art der Registrierung ermöglicht, dass die Dateien direkt im benannten Pfad gespeichert sind oder in einem Unterordner, der denselben Namen wie die Datei trägt (ist übersichtlicher, wenn jede Bibliothek in einem eigenen Ordner liegt, mit evtl. weiteren zugehörigen Dateien, Doc, Bsp., etc.).
Die angehängten Bibliotheken sind nach dem Entpacken jeweils in einem eigenen Ordner. Diese Ordner in den Lua.User.Scripts.Path kopieren.
Nach einem Neustart stehen die Bibliotheken zur Verfügung.
In ein Skript werden Bibliotheken mit variable = require("Bibliothek") eingebunden. "Bibliothek" ist der Dateiname ohne Endung.
"Normalerweise" kann der Name der Variablen, der die Bibliothek zugewiesen wird, beliebig sein. Wenn die Bibliothek ihre Funktionen aber nicht sauber exportiert (bei "gui" war das mal der Fall) ist es unbedingt erforderlich den Bibliotheksnamen auch als Variablennamen zu verwenden (gui = require("gui").
Um sich mal schnell einen Überblick über die Funktionen einer Bibliothek zu verschaffen, könnt ihr diesen Code verwenden (Funktionen in alphabetischer Reihenfolge).