Lua Skripte mit SciTE laden - HowTo

    • Offizieller Beitrag

    Da es beim Installieren von fremden Lua-Skripten immer dasselbe Vorgehen ist, habe ich hier alles einmal zusammengefasst.

    Wenn SciTE4AutoIt in der Standardeinstellung installiert wurde, haben wir folgende Pfade

    SciteDefaultHome C:\Program Files (x86)\AutoIt3\SciTE

    Lua Programmstart-Skript .\lua\SciTEStartup.lua

    SciteUserHome C:\Users\U_S_E_R\AppData\Local\AutoIt v3\SciTE


    Um Lua-Skripte von AddOns beim Start mit laden zu lassen, muss der Standort der SciTEStartup.lua verlegt werden, da sie am Standardort nicht verändert werden kann.

    Als Speicherort zu empfehlen ist dafür SciteUserHome (Pfad s.o.).

    Dazu

    1. SciTEStartup.lua kopieren nach SciteUserHome

    2. In den Benutzereinstellungen SciTEUser.properties als ersten Eintrag! einfügen:

    ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua

    ***

    Erstellt diesen Eintrag vorerst mit einem Kommentarzeichen am Anfang (#), damit die folgenden Aktionen ohne Probleme in SciTE ausgeführt werden können.

    Wenn alles andere erledigt ist, das Kommentarzeichen entfernen, speichern und SciTE neu starten.

    3. Für eigene/fremde Lua-Skripte sollte ein eigener Ordner angelegt werden. Der Speicherort dieses Ordners wird über folgende Property in der SciTEUser.properties definiert

    #~ Speicherort der Lua-Skriptdateien !! ohne abschließenden Backslash !! - PFAD anpassen

    Lua.User.Scripts.Path=C:\Code\Lua

    Änderungen im Lua Startup-Skript

    Wenn alle Lua-Skripte in einem Ordner landen kann das unübersichtlich werden und auch zu Namenskollisionen führen, wenn die Skripte eigene Includes mitbringen. Deshalb muss eingestellt werden, dass Skripte sich in Ordner mit dem selben Namen des Skriptes befinden können.

    Dazu wird die LUA_USER_PATH Variable angepasst. Die Anpassung enthält auch die Möglichkeit zum Laden von Dll-Dateien (auch wenn das z.Zt. mit den aktuellen SciTE Versionen nicht möglich ist).

    Im Original gibt es den Eintrag:

    -- A table listing all loaded files.

    LoadLuaFileList = { }

    Oberhalb diese Eintrags einfügen:

    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

    Der letzte Eintrag in der Datei ist:

    -- Start up the events (Calls OnStartup()).

    EventClass:BeginEvents()

    Darunter fügen wir ein:

    --------------------------------------------------------------------------------

    -- Calls LoadLuaFile() with directory from Lua-User-Script property

    --------------------------------------------------------------------------------

    function LoadUserLuaFile(file)

    LoadLuaFile(file, props["Lua.User.Scripts.Path"] .. "\\")

    end -- LoadUserLuaFile()

    --------------------------------------------------------------------------------

    -- (Bsp.) Mit diesem Aufruf wird die Datei "Irgendeine_Lua_AddOn_Datei.lua" aus dem Speicherort

    -- der eigenen Lua-Skriptdateien beim Start geladen.

    LoadUserLuaFile("Irgendeine_Lua_AddOn_Datei.lua")

    Wenn wir jetzt also ein AddOn installieren wollen, das "mit dem Lua Programmstart-Skript geladen" werden muss, gehen wir so vor:

    1. Kopieren der AddOn Datei (oder Ordner) in den "Lua.User.Scripts.Path"

    2. Hinzufügen des Startaufrufs am Ende der "SciTEStartup.lua" mit

    LoadUserLuaFile("DATEINAME.lua")

    Nach einem Neustart steht das neue Tool zur Verfügung.