Mit der soeben erschienenen Developer Preview (dp1) von LiveCode 8.2 zieht ein neues großes Feature in den Skripteditor von LiveCode ein. Seit Jahren erhofft und von Vielen herbeigesehnt gibt es nun endlich eine umfassende Code-Vervollständigung (Code Completion) samt editierbaren Snippets, die Programmierern das Leben erheblich vereinfachen kann, die Effizienz des Workflows nochmals erhöht und den LiveCode-Editor nun vollwertig in eine Reihe mit anderen bedeutenden Programmiereditoren stellt. Und damit nicht genug: Im Zuge der Implementierung dieser neuen Möglichkeiten ergab sich gleichzeitig, dass nun auch eine kontextbasierte Liveprüfung des Codes während der Eingabe erfolgen kann - genannt "Live Errors".  Das ist ein großer Entwicklungsschritt - für den Alltag des Programmierens bedeutender als viele andere Features, die in letzter Zeit in LiveCode integriert wurden.

Ich habe mir die erste Fassung einmal genauer angeschaut. Es ist der dp1 - also eine Vorschauversion, die nicht als Haupt-Entwicklungssystem genutzt werden sollte, da hier noch so einige Bugs enthalten sind. Dennoch: Wer wissen möchte, wohin die Reise geht, sollte die Version unbedingt herunterladen und diese Features ausprobieren!

Wie funktioniert die Auto-Vervollständigung nun in LiveCode?

Komplettierung:

Während Du Zeichen in den Editor eingibst, erscheinen sofort sämtliche mögliche Vervollständigungen des Befehls in einer Liste unter der Eingabezeile. Je mehr Zeichen Du eingibst, desto präziser wird die Liste. Anstatt weiterzutippen, kannst Du jetzt sofort mit den Pfeiltasten das gewünschte Kommando auswählen und erhältst dabei gleichzeitig auch noch eine Kurzbeschreibung davon, was das jeweilige Kommando oder Schlüsselwort in LiveCode bewirkt.

Hier wird bei "set the it" sofort vorgeschlagen "set the itemDelimiter to ..."

Ausgewählt und eingefügt wird der angezeigte Vorschlag mit der Tabulatortaste. Und dabei wird nicht nur das angefangene Wort vervollständigt, sondern in der Regel wird ein komplettes Code-Snippet mit aktiven Elementen eingefügt, das dann ganz einfach und clever angepasst werden kann.

Wenn ich zum Beispiel das Wörtchen "if" eingebe, erscheint sofort dies hier:

Es werden die zwei möglichen Varianten der Verwendung von "if" als snippet vorgeschlagen. Nehmen wir an, ich möchte eine komplette if / else-Struktur einfügen, dann drücke ich einfach die Tabulatortaste, und das Code-Snippet steht im Editor.

Dabei ist das Wörtchen "condition" ein Platzhalter für die Bedingung, die ich in meiner if-Struktur abfragen will. Wenn ich jetzt ohne weitere Tasten zu betätigen einfach die Bedingung eingebe, wird diese in alle drei grau unterlegte Bereiche hineingeschrieben.

Die Bedingung "punktzahl = 100" steht jetzt automatisch sowohl als Bedingung nach dem "if" als auch als Kommentar hinter dem "else" und dem "end if". Man muss keinem Programmierer erklären, weshalb das ungeheuer praktisch ist. In komplexen Skripten mit zahlreichen verschachtelten Strukturen wird das Verständnis des Codes erheblich erleichtert, wenn man auf einen Blick sieht, worauf sich das else oder das end if bezieht, das da irgendwo in Zeile 325 steht! Und dieses selbst zu kommentieren - seien wir ehrlich - ist einem im Eifer des Gefechts oft zu mühsam. Wie gut, dass es nun automatisch geschieht!

Mit der Tabulatortaste kann man nun von Platzhalter zu Platzhalter springen und den jeweiligen Code eintragen. So lassen sich immer wiederkehrende Codemuster schneller, einfacher und sicherer erzeugen, denn in fertigen Codesnippets sind eben auch keine Tippfehler enthalten, die einem oft das Leben schwermachen können.

Ereignisbehandlungen lassen sich übrigens jetzt auch direkt per Klick einfügen, denn alle üblichen Ereignisabfragen für das jeweilige Objekt befinden sich im Skripteditor jetzt in der linken Spalte und können direkt mit einem Mausklick an das SKript angehängt werden.

DIe Liste in der linken Spalte ist noch umfangreicher und kann gescrollt werden. Klicke ich hier zum Beispiel auf "mouseDoubleDown" wird sofort das folgende Snippet hinten an den Code angefügt:

Das spart eben nicht nur Tipparbeit, sondern es kann insbesondere Anfängern enorm helfen, indem alle verfügbaren Ereignisse für das Objekt, auf das sich das Skript bezieht, in der Liste gefunden werden können und direkt eingefügt werden können. Gleichzeitig erfährt man ohne Nachschlagen wie denn nun dieser oder jener Befehl richtig verwendet wird.

Zu allen möglichen Programmstrukturen gibt es bereits vordefinierte clevere und teils interaktive Snippets - und damit nicht genug: Wer möchte, kann eigene Snippets definieren und seinem Editor hinzufügen. Damit kann also jeder seinen individuellen Programmiergewohnheiten entsprechend den perfekten Workflow für das Coden erstellen. Der Editor hatte noch ein paar Bugs in der Preview-Version - aber das wird sicherlich in Kürze behoben. Die Möglichkeiten sind jedenfalls großartig!

Die Auto-Vervollständigung ist nicht nur ein Feature, das Tipparbeit erspart, sondern es stellt das Schreiben von Code auf eine ganz neue Basis - Tippfehler werden ausgeschlossen, Strukturen sind auf Anhieb korrekt und eine Art Hilfe und Anleitung für das Programmieren in LiveCode ist bereits mit eingebaut! Für Anfänger eine riesige Hilfe, für Profis äußerst praktisch und zeitsparend.

Live-Error:

Der Nebeneffekt der Auto-Vervollständigung ist auch nicht zu unterschätzen. Von nun an wird der Code beim Eintippen bereits ununterbrochen vorkompiliert und geprüft - was zur Folge hat, dass nicht nur Syntax-Fehler (also falsch geschriebene Befehle usw.) als falsch markiert werden, sondern auch Fehler, die mit dem Kontext zusammenhängen. Wenn ich zum Beispiel eine Variable doppelt deklariere oder eine Funktion mit dem falschen Namen beende oder etwas anderes eingebe, was zwar als einzelne Zeile syntaktisch richtig ist, im Zusammenhang aber einen Fehler ergibt, dann zeigt mir der Editor dies jetzt sofort als Fehler an, ohne dass ich zuvor das Skript "scharfschalten" also kompilieren muss.

Dieser Fehler wird mir "live" angezeigt. Dadurch spare ich viel Zeit, denn ich sehe sofort beim Tippen, dass etwas nicht stimmt, bevor ich weiterschreibe und kann so viele Fehler, die mir später vielleicht Kopfzerbrechen bereiten würden, sofort eliminieren.

Fazit: Die neuen Editor-Funktionen in LiveCode sind weit mehr als nur eine kleine Eingabehilfe. Sie verändern die Art und Weise, wie wir mit LiveCode programmieren, sparen Zeit und viel Nachschlagen, sichern unseren Code ab und helfen, zahlreiche Fehler im Vorfeld schon zu vermeiden. Ich freue mich auf die erste stabile Version mit diesen Features!

Hinweis: LiveCode 8.2.0 kann hier heruntergeladen werden:
http://downloads.livecode.com/livecode/