AURA für VS Code
![]()
Syntax-Highlighting, Formatter, Code-Vervollständigung und Live-Vorschau für .aura-Dateien (siehe docs/aura.md). Reines JavaScript, ohne npm-Abhängigkeiten und ohne Build-Schritt.
Inline-Skripte
Ereignisse können einen Skriptblock enthalten: onTap: { state.count += 1; }.
Ohne Angabe gilt JavaScript. scriptLanguage: "lua" am Dateianfang wählt Lua.
Der Formatter lässt Skriptinhalte unverändert; die Vorschau führt dieselben Handler
wie das Programm aus. state enthält die Properties der jeweiligen Wurzel;
event.value enthält den Wert eines Widget-Ereignisses. Mit emit("name", wert)
können deklarierte Signale ausgelöst werden.
Funktionen
- Highlighting: Schlüsselwörter,
Dialog/Screen, eingebaute Elementtypen und Komponenten, IDs (Text { id: title }), Property-Typen, Signale mit Parametern, Properties (bekannte ausschema.hhervorgehoben),place-Direktiven mit Zielelement,on<Signal>-Handler,align/fill/corners-Werte, Farben (#rrggbb,#aarrggbb), Zahlen, Strings mit Escapes, Kommentare, Operatoren, Funktionen,theme./screen./props.und die reservierten IDs. - Formatter („Format Document“, Shift+Alt+F, auch für eine Auswahl):
- Einrückung 4 Leerzeichen pro
{-Ebene (bzw.editor.tabSize/insertSpaces), Fortsetzungszeilen in offenen()/[]und mehrzeilige? :eine Ebene tiefer, name: wert,,in Listen, Leerzeichen um binäre Operatoren,Typ { id: elementName },component Name : Basis,- keine Leerzeichen am Zeilenende, höchstens eine Leerzeile am Stück, genau ein Zeilenende am Dateiende.
- Zeilenumbrüche, Strings, Kommentare und Farben bleiben unverändert. In
place:,loop:,enter:undexit:bleibt-so stehen, wie es geschrieben ist (centerY -20ist ein Vorzeichen, kein Minus). - Jede formatierte Zeile wird erneut tokenisiert und verglichen; weicht sie ab, wird sie nur eingerückt.
- Einrückung 4 Leerzeichen pro
- Vervollständigung (Ctrl+Space, automatisch nach
., und nach:/,/Leerzeichen dort, wo feste Namen folgen):- am Anfang einer Anweisung: die Properties des Elementtyps (gemeinsame + eigene; bei Komponenten deren
propertys undon<Signal>), ohne die schon gesetzten; Elementtypen (eingebaute und alle Komponenten der.aura-Dateien im selben UI-Baum: dem Ordner der Datei bzw. dem übergeordneten Ordner, solange der noch weitere.aura-Dateien enthält, mit Unterordnern) als Snippet;property,signal,repeat,if,else. Inrepeat/ifnur Elemente. place:die Direktiven, nachbelow/above/rightOf/… die IDs davor (undparent),theme.(die Namen meldet die laufende Vorschau; die Erweiterung merkt sie sich je Workspace),screen.,props.,id./root./parent.die Element-Werte,onTap:/on<Signal>:die Signale des Dialogs bzw. der Komponente (ignorebeionTap),- Werte von
align,corners,fill(Image),true/falsebei bool-Properties, - in Ausdrücken Funktionen mit Parametern, IDs, Dialog-Argumente, Schleifenvariablen; Typen nach
propertyund insignal name(.
- am Anfang einer Anweisung: die Properties des Elementtyps (gemeinsame + eigene; bei Komponenten deren
- Folding: Blöcke, mehrzeilige Kommentare, Kommentarblöcke,
// region…// endregion. - Fehlerprüfung: Beim Tippen prüft
aurac --checkden UI-Baum der Datei mit den ungespeicherten Inhalten (Schattenkopie) und zeigt den ersten Fehler als Diagnose. Läuft die Vorschau für den Baum, meldet sie die Fehler selbst (auch fehlende Theme-Werte). Einstellungaura.check.compiler(Standardbuild/dev/tools/aurac/aurac). - Live-Vorschau: „AURA: Vorschau öffnen“,
Ctrl+K V, Vorschau-Icon oder Statusleiste startettools/aura-view. Die Vorschau folgt dem Cursor, zeigt ungespeicherte Änderungen und Diagnosen, unterstützt Klicks, Signale, Play/Pause für Animationen, Komponenten,preview-Blöcke, Zustände,bool-Properties und Zoom. Der native Viewer verwendetBasicHost; Geräte-, Sprach- und Barrierefreiheitsoptionen benötigen einen eigenen Host. Voraussetzung:cmake --build build/dev --target aura-view. Die direkte Konfiguration steht unter Vorschau. - Farben: Farbfeld und Farbwähler für
#rrggbb/#aarrggbb, Farbfeld und Hover mit dem Wert fürtheme.<Farbe>(aus der laufenden Vorschau). - Gehe zu Definition und Umbenennen: Komponenten, Datensätze, Dialoge, Screens, IDs, Properties, Zustände und Signale (Details in
docs/aura-view.md). - Icons: AURA-Logo als Icon der Erweiterung, als Datei-Icon für
.aura(eigene Fassung für dunkle Themes, sichtbar, wenn das Datei-Icon-Theme Sprach-Icons zulässt) und im Reiter der Vorschau. Quellen:docs/images/aura-icon.svg(Icon) unddocs/images/aura-logo.svg(Logo mit Schriftzug);media/aura-file-dark.svgist das Icon mit hellem innerem Dreieck.
Installieren
tools/aura-vscode/scripts/install.sh
Packt die Erweiterung als VSIX (ohne vsce) und installiert sie mit code --install-extension. Danach in VS Code „Developer: Reload Window“ ausführen.
Formatieren beim Speichern (settings.json):
"[aura]": {
"editor.defaultFormatter": "hertz.aura-language",
"editor.formatOnSave": true
}
Entwickeln
Tests und generate.js verwenden derzeit externe Anwendungs-Fixtures. AURA_APP=<fixture-root> wählt einen Baum mit app/ui und app/ui/aura-elements.json; alternativ wird das übergeordnete Verzeichnis des AURA-Checkouts durchsucht. Einige Tests erwarten konkrete Dateien und Teststellen: Ein beliebiger UI-Baum reicht nicht aus, eigene Fixtures benötigen passende Testfälle. AURAC=<compiler> überschreibt den Compilerpfad.
- Tests:
node tools/aura-vscode/test/completion-test.jsprüft die Vervollständigung an ausgewählten Stellen von Kopien der Repo-Dateien (mit nachgebautemvscode-Modul).node tools/aura-vscode/test/format-test.jsformatiert Kopien der.aura-Dateien vonapp/ui(in einem Temp-Verzeichnis) und prüft: idempotent, Repo-Dateien unverändert, verwürfelte Kopien werden wiederhergestellt,auracerzeugt denselben C++-Code.node tools/aura-vscode/test/navigation-test.jsprüft Gehe zu Definition und Umbenennen.node tools/aura-vscode/test/check-test.jsprüft die Fehlerprüfung (ungespeicherter Fehler, Korrektur, Übergabe an die Vorschau). Den Compiler suchen beide unterbuild/dev/tools/aurac/aurac(sonstAURAC=...). - Grammatik und Daten:
syntaxes/aura.tmLanguage.jsonunddata/aura-data.json(Vervollständigung) werden auslibs/aura-lang/include/aura/lang/schema.hund deraura-elements.jsondes Programms erzeugt:node tools/aura-vscode/scripts/generate.js. Nach Änderungen am Schema neu erzeugen und neu installieren. Die Theme-Werte kommen nicht von dort, sondern von der laufenden Vorschau.
tools/aura-vscode/README.md · Markdown herunterladen