Dienstag, 10. April 2012

Lua in externen Editor bearbeiten

Lua in externen Editor bearbeiten

Dies ist die deutsche Version des Tutorials. Es ist ebenso auf englisch verfügbar.
This is the german version of the tutorial. It is also available in english

Voraussetzung: "Einstieg in Lua“

Wer einmal komplexere WIG-Projekte mit lua programmiert hat, wird recht schnell feststellen, dass das Syntaxhighlighting von Urwigo zwar recht nett, aber beileibe nicht ausreichend ist. Es fehlen Editorfunktionen wie Ersetzen von Befehlen, automatisches Schließen von Schachtelelementen, eine Übersicht der Variablen und Funktionen mit Möglichkeit direkt zur richtigen Zeile im Code springen zu können.
So wurde die Implementierung von Cachopoly bei über tausend Zeilen lua Code schnell zur nervigen Scrollpartie um beim Debuggen und Testen die richtigen Codestellen zu finden.

Nach längerer Diskusion und Austausch mit den Urwigo Entwicklern haben diese nun Abhilfe geschaffen und die Möglichkeit geboten den lua Code in eigene Dateien auszulagern, die man dann in einem externen Editor bearbeiten kann.
Ich habe mir dabei für den IntellijIDEA Editor entschieden, dem man mit sylvanaar ein brauchbares Plugin verpassen kann um lua Code zu implementieren.
Abbildung 1 zeigt den Editor mit einem "HelloWorld" Beispiel.
Abbildung 1: Lua in Intellij Idea bearbeiten

Im linken oberen Teil ist der Speicherort der lua Datei festgelegt. Der Übersichtlichkeit habe ich im Urwigo Ordner 'Test' einen Unterordner 'lua' angelegt, in den ich meine lua Dateien ablege. Soweit es sich dabei nur um eine einzige Datei handelt, könnte man sich den Aufwand des Unterordners auch sparen.
Im rechten Teil ist der lua Code zu sehen, den man mit vielen netten Feature wie Syntaxhighlighting, Befehl- und Variablenvervollständigung, Fehler- und Warnanzeigen recht komfortabel editieren kann.
Unten links ist die Funktionsübersicht zu sehen. Hier ist die vermisste Jumpfunktion realisiert, die sehr hilfreich ist, wenn man in über tausend Zeilen Code schnell zur Methode 'helloWithName' springen möchte.

Es muss übrigens nicht zwingend IntellijIDEA sein. Welchen Editor ihr verwendet ist euch überlassen. Viele brauchbare Alternativen gibt es aber nicht. Ich wäre für Feedback an dieser Stelle trotzdem sehr dankbar.
Abbildung 2: Einbinden aller lua Dateien im Unterordner 'lua'
Wie binde ich nun diesen Code in meinem Urwigo Projekt ein ? Dies scheint ein wenig tricky, ist aber sehr einfach, wenn man es einmal gesehen hat und besteht nur aus zwei kleinen Schritten:
Als erstes wählen wir auf der Hauptseite des Urwigo Projektes die Checkbox "Inline Lua 'require'" und setzten den Pfad in dem unsere lua Dateien liegen. Der Pfad 'lua\?.lua' erfasst alle Dateien die im Unterordner 'lua' liegen und die auf '.lua' enden. Zu beachten ist, dass das Jokerzeichen hier das Fragezeichen '?' und nicht wie gewöhnlich der Stern '*' ist.
Abbildung 3: Im directive Fenster müssen die lua Datein eingebunden werden
Der zweite Schritt ist noch einfacher und besteht lediglich aus einem require im 'lua user directives' oder 'lua user functions' Bereich des Projektes. Das dadurch eingebundene Modul muss den gleichen Namen tragen wie unsere lua Datei.
require "hello" muss mit hello.lua übereinstimmen.
Abbildung 4: Der Funktionsaufruf funktioniert wie gewohnt
Der Funktionsaufruf im Urwigo Projekt funktioniert genauso wie beim lokal (in 'lua user directives' bzw in 'lua user functions') definierten Code.

3 Kommentare:

  1. Vielen Dank, das externe Editieren ist wirklich eine tolle Sache. Nur so war der hier machbar: http://coord.info/GC68BJ0

    Grüße
    tower27

    AntwortenLöschen
  2. Vielen Dank, das externe Editieren ist wirklich eine tolle Sache. Nur so war der hier machbar: http://coord.info/GC68BJ0

    Grüße
    tower27

    AntwortenLöschen