• beta_5 eba674218e

    kuro released this 2026-10-12 19:40:10 +00:00 | 19 commits to master since this release

    🚀 TPL VS Code Extension – Architecture & Feature Update
    This update brings profound improvements to auto-completion, workspace-wide indexing, and introduces a vastly enhanced, fault-tolerant linter.

    ✨ Highlights & New Features
    Workspace Scanning & Global Error Detection: Upon startup (or manually via the TPL: Scan Workspace command), the extension now scans all .tpl files within the project. Errors from all files are aggregated centrally in the VS Code "Problems" tab.

    Cross-File Imports (Workspace Indexing): Full support for from X import Y. When a method from another file is called, the extension reads the target file asynchronously in the background. Auto-completion and hover documentation now work seamlessly across the entire project.

    Integrated TODO Tracking: Comments containing TODO: are now automatically captured and listed as blue info items in the VS Code "Problems" tab. A single click jumps directly to the respective line.

    🧠 Smart IntelliSense & Auto-Completion
    Strict Context-Awareness: The auto-completion engine now knows exactly which block your cursor is currently in. Outside the body, executable snippets (like if or log) are no longer suggested, and metadata will no longer appear inside the body.

    Namespace Parsing: Local definitions blocks are now correctly understood as namespaces. Local functions are exposed and suggested as BlockName.FunctionName.

    Auto-Semicolon (QoL): When auto-completing methods (e.g., test.testDefine), the semicolon is now automatically appended, and the cursor jumps directly behind it ($0), ensuring an uninterrupted coding flow.

    Robust Hover Tooltips: Hover popups now reliably extract DocStrings (""" or '''), are highly resilient against formatting deviations, and explicitly show the origin module of imported functions.

    🛡️ Linter & Syntax Validation
    String & URL Resistance: The linter now internally "neutralizes" strings before checking the syntax. URLs (like https://...) or semicolons embedded inside strings will no longer trigger false positives for missing semicolons or broken comments.

    Multi-Line Conditions: Full support for multi-line if conditions. The linter correctly identifies that lines ending with then or do do not require a semicolon, even if they span across multiple lines (e.g., using or, and, in).

    Strict Block Control (Stack Tracking): Control structures (if, for, while) are now monitored via a stack. The linter issues an immediate warning for missing or incorrectly nested end if;, end for;, or end while; statements.

    Expanded Execution Zones: Variable assignments and code execution are now permitted in all valid zones, including constants, overview, mapping, metadata (both at module and pattern levels), and global definitions. Outside of these zones, the linter enforces strict error checking.

    🐛 Bugfixes
    Metadata Quick Fix: The Code Action to auto-generate missing mandatory metadata fields now correctly inserts the new lines inside the metadata block (line + 1), rather than placing them unstructurally above it.

    ⚙️ Under the Hood
    Unit & Integration Tests: Introduction of a Mocha-based testing environment (npm run test). The linter and formatting foundation is now automatically and in isolation tested (Indentation, SyntaxRules, Completions, Actions) to prevent future regressions during refactoring.


    German Text Version:

    🚀 TPL VS Code Extension – Architektur- & Feature-Update
    Dieses Update bringt tiefgreifende Verbesserungen für die Autovervollständigung, Workspace-weites Indexing und einen stark verbesserten, fehlerresistenten Linter.

    ✨ Highlights & Neue Features
    Workspace-Scanning & Globale Fehlererkennung: Die Extension durchsucht nun beim Start (oder manuell über den Befehl TPL: Gesamten Workspace prüfen) alle .tpl-Dateien im Projekt. Fehler aus allen Dateien werden zentral im "Probleme"-Tab von VS Code gesammelt.

    Cross-File Imports (Workspace Indexing): Vollständige Unterstützung für from X import Y. Wird eine Methode aus einer anderen Datei aufgerufen, liest die Extension die Zieldatei asynchron im Hintergrund. Autovervollständigung und Hover-Dokumentationen funktionieren nun projektübergreifend.

    Integriertes TODO-Tracking: Kommentare, die TODO: enthalten, werden ab sofort automatisch erfasst und als blauer Info-Hinweis im VS Code "Probleme"-Tab aufgelistet. Ein Klick springt direkt zur entsprechenden Zeile.

    🧠 Smarte IntelliSense & Autovervollständigung
    Strict Context-Awareness: Die Autovervollständigung weiß jetzt exakt, in welchem Block sich der Cursor befindet. Außerhalb des Bodys werden keine ausführbaren Snippets (wie if oder log) mehr vorgeschlagen, und metadata erscheint nicht mehr im body.

    Namespace-Parsing: Lokale definitions-Blöcke werden korrekt als Namespaces verstanden. Lokale Funktionen werden als BlockName.FunktionsName zur Verfügung gestellt.

    Auto-Semikolon (QoL): Bei der Autovervollständigung von Methoden (z. B. test.testDefine) wird das Semikolon nun direkt mitgeneriert und der Cursor springt automatisch hinter das Semikolon ($0), um den Schreibfluss nicht zu unterbrechen.

    Robuste Hover-Tooltips: Hover-Informationen extrahieren DocStrings (""" oder ''') nun zuverlässig, sind resistent gegen Formatierungsabweichungen und zeigen den Ursprung importierter Funktionen an.

    🛡️ Linter & Syntax-Validierung
    String- & URL-Resistenz: Der Linter "neutralisiert" nun Strings intern, bevor er die Syntax prüft. URLs (wie https://...) oder Semikolons innerhalb von Strings verursachen keine falschen Fehler für fehlende Semikolons oder ungeschlossene Kommentare mehr.

    Multi-Line Conditions: Mehrzeilige if-Bedingungen werden vollständig unterstützt. Der Linter erkennt nun korrekt, dass Zeilen, die auf then oder do enden, kein Semikolon benötigen, selbst wenn sie über mehrere Zeilen umgebrochen wurden (z. B. mit or, and, in).

    Strikte Block-Kontrolle (Stack Tracking): Kontrollstrukturen (if, for, while) werden nun per Stack überwacht. Der Linter warnt sofort bei fehlenden oder falsch verschachtelten end if;, end for; oder end while; Anweisungen.

    Erweiterte Ausführungszonen: Variablenzuweisungen und Code-Ausführungen sind nun in allen validen Zonen erlaubt, einschließlich constants, overview, mapping, metadata (sowohl Modul- als auch Pattern-Ebene) und globalen definitions. Außerhalb dieser Zonen wirft der Linter strikte Fehler.

    🐛 Bugfixes
    Metadata Quick Fix: Die Code Action zum automatischen Generieren von fehlenden Pflicht-Metadaten fügt die neuen Zeilen nun korrekt innerhalb des metadata-Blocks ein (Zeile + 1), statt sie unstrukturiert darüber zu platzieren.

    ⚙️ Under the Hood
    Unit- & Integration-Tests: Einführung einer Mocha-basierten Testumgebung (npm run test). Das Linter- und Formatierungs-Fundament wird nun automatisiert isoliert getestet (Indentation, SyntaxRules, Completions, Actions), um künftige Regressionen beim Refactoring auszuschließen.

    Downloads