• beta_7 1c160c3e1b

    The next new things Pre-Release

    kuro released this 2026-10-28 21:06:22 +00:00 | 5 commits to master since this release

    🚀 Release: Go to Definition, Dynamic Taxonomy & Unbreakable Lexer
    This update brings massive Quality of Life (QoL) improvements to the developer experience. We've introduced seamless code navigation, dynamic taxonomy autocompletion, and completely overhauled the parsing engine to make the Linter and Auto-Formatter virtually unbreakable against complex TPL syntax.

    ✨ Highlights & New Features

    "Go to Definition" (Ctrl+Click): Navigate your codebase instantly! Ctrl+Click (or F12) on any function call to jump directly to its declaration. The new TplDefinitionProvider searches locally first and seamlessly falls back to the RAM-based WorkspaceIndex for cross-file jumps.

    Dynamic Taxonomy Autocompletion: The extension now natively understands dynamic BMC scopes. Typing model. suggests a generic constructor, while model.rel. and model.uniquerel. offer a dynamic constructor complete with RelationshipName(SourceRole := x, DestinationRole := y) snippets.

    🐛 Bugfixes

    Unbreakable Lexer for Linter & Formatter: Fixed major desync issues where commas, brackets, or keywords inside strings and triple-quotes (""") would break parameter counting and indentation rules. The new state-machine character scanner elegantly handles standard strings, multi-line docstrings, and comments just like the native BMC TPL compiler.

    Case-Insensitive Built-in Lookup: Resolved an issue where valid TKU function calls (e.g., rdbms_functions.xyz) were flagged as errors due to case-sensitivity mismatches. The new centralized TplLookup manager handles all Core and TKU methods case-insensitively, restoring full Hover and Autocomplete support.

    ⚙️ Under the Hood & DX (Developer Experience)

    Uncompromising Auto-Formatter: The IndentationRules engine now uses the robust lexer to strip out all messy, non-standard indentation (2, 3, or 6 spaces) via trimStart() and enforces clean, mathematically correct 4-space blocks.

    Automated TKU Parser Script: Upgraded the parse_tpl.py Python generator. It now recursively scans directories via os.walk, reliably splits parameters with default values (e.g., :=), and alphabetically sorts the generated TypeScript output to prevent massive, noisy Git diffs.

    🇩🇪 Deutsche Version

    🚀 Release: Go to Definition, dynamische Taxonomie & robuster Lexer
    Dieses Update bringt massive Quality of Life (QoL) Verbesserungen für die Entwicklererfahrung. Wir haben nahtlose Code-Navigation und dynamische Taxonomie-Autovervollständigung eingeführt sowie die Parsing-Engine komplett überarbeitet, um den Linter und Auto-Formatter nahezu unzerstörbar gegenüber komplexer TPL-Syntax zu machen.

    ✨ Highlights & Neue Features

    "Go to Definition" (Strg+Klick): Navigiere sofort durch deine Codebase! Ein Strg+Linksklick (oder F12) auf einen Funktionsaufruf springt direkt zur Deklaration. Der neue TplDefinitionProvider sucht erst lokal und weicht für dateiübergreifende Aufrufe blitzschnell auf den RAM-basierten WorkspaceIndex aus.

    Dynamische Taxonomie-Autovervollständigung: Die Extension versteht nun dynamische BMC-Scopes. Das Tippen von model. schlägt einen generischen -Konstruktor vor, während model.rel. und model.uniquerel. einen dynamischen -Konstruktor inklusive fertigem Snippet (RelationshipName(SourceRole := x, DestinationRole := y)) anbieten.

    🐛 Bugfixes

    Kugelsicherer Lexer für Linter & Formatter: Ein massives Desync-Problem wurde behoben, bei dem Kommas, Klammern oder Keywords innerhalb von Strings und Triple-Quotes (""") das Parameter-Zählen und die Einrückung zerschossen haben. Der neue State-Machine-Scanner verarbeitet normale Strings, mehrzeilige DocStrings und Kommentare nun exakt wie der native TPL-Compiler.

    Case-Insensitive Built-in Lookup: Ein Problem wurde behoben, bei dem valide TKU-Funktionsaufrufe (z. B. rdbms_functions.xyz) wegen strikter Case-Sensitivity als Fehler markiert wurden. Der neue zentrale TplLookup-Manager verarbeitet alle Core- und TKU-Methoden case-insensitive, sodass Hover und Autocomplete wieder tadellos funktionieren.

    ⚙️ Under the Hood & DX (Developer Experience)

    Kompromissloser Auto-Formatter: Die IndentationRules-Engine nutzt nun den robusten Lexer, um unsaubere Einrückungen (2, 3 oder 6 Leerzeichen) per trimStart() radikal zu rasieren und durch saubere, exakt berechnete 4-Space-Blöcke zu ersetzen.

    Automatisiertes TKU Parser Skript: Der Python-Generator parse_tpl.py wurde stark aufgewertet. Er scannt Ordner nun rekursiv (os.walk), trennt Parameter mit Default-Werten (z. B. :=) sauber ab und sortiert den generierten TypeScript-Output streng alphabetisch, um gigantische, unnötige Git-Diffs zu vermeiden.

    Downloads
  • beta_6 d6e97bea98

    kuro released this 2026-10-18 01:39:25 +00:00 | 9 commits to master since this release

    🚀 Release: Dynamic Configuration, Smart Context & Linter Enhancements
    This update transforms the extension from a rigid internal tool into a highly customizable, open-source-ready IDE solution. We've introduced deep configuration options for metadata compliance, massive improvements to snippet context-awareness, and resolved several edge-case bugs from the previous architecture update.

    ✨ Highlights & New Features
    Fully Customizable Metadata Compliance: You can now define exact compliance rules for your company via VS Code settings. Configure which metadata fields are mandatory (origin, author, products, etc.) and set strict rules for the tree_path (e.g., minimum depth and forced static base nodes like ['MyCompany', 'IT']).

    Dynamic Snippet Generation: The tpl_skeleton and metadata snippets now read your compliance settings live. They automatically generate the exact structure and placeholders required by your specific workspace rules.

    Context-Aware metadata Snippet: The extension now knows exactly where your cursor is. Typing metadata outside a pattern generates a full module-level block. Typing it inside a pattern generates a compact pattern-level block.

    New Indentation Linter Rule: A new background check instantly highlights messy indentation (any space count that is not a clean multiple of 4) with a warning, reminding you to use the Auto-Formatter (Shift+Alt+F).

    🐛 Bugfixes
    BMC Built-in Autocomplete Restored: Fixed a regex bug introduced during the cross-file scanning update where typing characters after a dot (e.g., discovery.ru...) would break the native BMC auto-completion.

    Dynamic Hover Tooltips: Hover documentation for native BMC namespaces now reads dynamically directly from the data source, restoring missing tooltips for built-in functions.

    ⚙️ Under the Hood & DX (Developer Experience)
    Linter Architecture Refactoring: Cleaned up BlockRule by extracting all metadata validation logic into a dedicated, highly testable MetadataRule.

    TypeScript & ESLint Clean-up: Resolved various strict TypeScript compiler errors related to async Promises and interface inheritance (checkEnd).

    Linting Fix Script: Added a dedicated script file containing the ESLint --fix command to easily resolve curly bracket style warnings across the entire codebase.

    🇩🇪 Deutsche Version
    🚀 Release: Dynamische Konfiguration, smarter Kontext & Linter-Upgrades
    Dieses Update verwandelt die Extension von einem starren internen Werkzeug in eine hochgradig anpassbare, Open-Source-bereite IDE-Lösung. Wir haben tiefe Konfigurationsmöglichkeiten für Metadaten-Compliance, massive Verbesserungen bei der Kontext-Intelligenz von Snippets und wichtige Bugfixes aus dem letzten Architektur-Update integriert.

    ✨ Highlights & Neue Features
    Voll konfigurierbare Metadaten-Compliance: Über die VS Code Settings lassen sich nun exakte Compliance-Regeln für die eigene Firma definieren. Lege fest, welche Metadaten-Felder Pflicht sind (origin, author, products etc.) und definiere strikte Regeln für den tree_path (z. B. Mindest-Ebenen und feste Basis-Nodes wie ['MeineFirma', 'IT']).

    Dynamische Snippet-Generierung: Das tpl_skeleton und das metadata Snippet lesen die neuen Compliance-Settings live aus und bauen exakt die Struktur und Platzhalter zusammen, die in deinem Workspace gefordert werden.

    Kontext-sensitives metadata Snippet: Die Extension weiß nun genau, wo sich der Cursor befindet. Tippst du metadata außerhalb eines Patterns, wird ein Modul-Block generiert. Tippst du es innerhalb, entsteht ein kompakter Pattern-Block.

    Neue Einrückungs-Regel (Indentation Linter): Ein neuer Check im Hintergrund markiert unsaubere Einrückungen (alles, was kein sauberes Vielfaches von 4 Leerzeichen ist) sofort mit einer Warnung, um an den Auto-Formatter (Shift+Alt+F) zu erinnern.

    🐛 Bugfixes
    BMC Built-in Autocomplete repariert: Ein Regex-Fehler aus dem letzten Update wurde behoben. Das Tippen von Zeichen nach einem Punkt (z. B. discovery.ru...) bricht die native BMC-Autovervollständigung nun nicht mehr ab.

    Dynamische Hover-Tooltips: Die Hover-Dokumentationen für native BMC-Namespaces werden nun dynamisch aus der Datenquelle gelesen, wodurch fehlende Tooltips für Built-ins wiederhergestellt wurden.

    ⚙️ Under the Hood & DX (Developer Experience)
    Linter Architektur Refactoring: Die BlockRule wurde aufgeräumt und die gesamte Metadaten-Validierung in eine eigene, testbare MetadataRule ausgelagert.

    TypeScript & ESLint Clean-up: Diverse strikte TypeScript-Compiler-Fehler rund um asynchrone Promises und Interface-Vererbung (checkEnd) wurden behoben.

    Linting Fix Skript: Es wurde eine eigene Skript-Datei für den ESLint --fix Befehl hinzugefügt, um Stil-Warnungen (wie fehlende curly Brackets bei einzeiligen if-Abfragen) im gesamten Code bequem automatisch aufzulösen.

    Downloads
  • 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
  • beta_4 eeed4e684b

    Hotfix Pre-Release

    kuro released this 2026-10-09 21:54:26 +00:00 | 22 commits to master since this release

    Linter-Fixes:

    Bedingungs-Logik korrigiert: Ein Bug wurde behoben, bei dem der Linter in einzeiligen if ... then Statements das legitime einfache Istgleich (=) fälschlicherweise als Warnung markiert hat.

    Striktere Zuweisungsprüfung: Das Verwenden von = anstelle von := für Zuweisungen außerhalb von Vergleichen ist nun (korrekterweise) ein harter Fehler (Error) und keine bloße Warnung mehr.

    Neue Features (Quality of Life):

    Smart Snippets für Kontrollstrukturen: Wenn du ab sofort if, elif, else, for oder while tippst, baut das Plugin auf Knopfdruck den kompletten Block inklusive then bzw. do und dem passenden end-Tag. Der Cursor springt automatisch so, dass du die Bedingung direkt ausfüllen und sofort im Body weiterschreiben kannst.

    Downloads
  • beta_3 f9f44e0312

    kuro released this 2026-10-09 21:17:30 +00:00 | 23 commits to master since this release

    Mit diesem großen Update macht die Erweiterung den finalen Schritt von einem simplen Syntax-Highlighter zu einer vollwertigen, intelligenten Entwicklungsumgebung für BMC Helix TPL. Der Linter ist nun signifikant smarter, die offizielle BMC-Dokumentation ist komplett integriert und das Plugin lässt sich perfekt an die eigenen Bedürfnisse anpassen.

    ✨ Neue Features
    Vollständige BMC TPL-Dokumentation: Alle offiziellen Built-In Namespaces (z. B. discovery, model, text, time) und globalen Funktionen sind nativ integriert. Die originalen, mehrzeiligen Beschreibungen von BMC stehen nun direkt im Hover-Fenster zur Verfügung – kein Nachschlagen in der Doku mehr nötig!

    Smarte Parameter-Überladungen (IntelliSense): Die Autovervollständigung unterstützt jetzt Methoden mit variablen Parametern. Nach der Auswahl einer Funktion (z.B. number.toText) werden die passenden Code-Snippets eingefügt und man kann bequem mit Tab durch die Argumente springen.

    Erweiterungs-Einstellungen (Settings UI): TPL-Module können jetzt über die regulären VS Code-Einstellungen (Settings) personalisiert werden. Konfigurierbare Standardwerte umfassen: Author, Publisher, Origin, Tree Path Base und die standardmäßige TPL Version.

    Dynamisches TPL-Skeleton: Das Autovervollständigungs-Snippet tpl_skeleton liest nun die konfigurierten Settings aus und generiert automatisch ein maßgeschneidertes, sofort einsatzbereites Modul-Grundgerüst.

    🧠 Linter-Upgrades & Fehlerbehebungen
    Zustandsgesteuerte Analyse (Stateful Linter): Der Linter verfolgt nun den Kontext über Zeilenumbrüche hinweg. Er versteht offene Klammern ((, [) und offene Bedingungsblöcke.

    Intelligente Operator-Erkennung (= vs. :=): Das einfache Istgleich (=) wird nun in Vergleichen (innerhalb von if, elif oder where Blöcken) fehlerfrei toleriert. Echte Zuweisungsfehler werden weiterhin zuverlässig gemeldet.

    Semikolon-Toleranz: Keine "False Positives" mehr bei fehlenden Semikolons in umgebrochenen Code-Zeilen, offenen Bedingungen oder bei logischen Fortsetzungs-Operatoren (and, or, ,, etc.).

    Versions-Prüfung: Das Plugin gleicht die im Code deklarierte TPL-Version mit der in den Settings hinterlegten Zielversion ab und gibt eine Warnung aus, falls alte Module bearbeitet werden.

    Gnaden-Modus für Unbekanntes: Unbekannte Funktionen führen nicht länger zu harten Linter-Fehlern, um zukünftige oder undokumentierte BMC-Erweiterungen nicht zu blockieren.

    Live-Reload: Änderungen an den TPL-Einstellungen in VS Code werden sofort auf alle geöffneten Dokumente angewendet, ganz ohne Neustart.

    Downloads
  • beta_2 a5cd6a74ca

    kuro released this 2026-10-08 22:49:54 +00:00 | 24 commits to master since this release

    Changelog - BMC TPL Code All-Around

    Release 2 (v0.0.2)

    ✨ Hinzugefügt (Added)

    BMC Built-in Support: Vollständige Integration aller Standard-TPL-Methoden (model, text, regex, discovery, log, time, json, xpath, hash, math, net sowie globale Funktionen).

    Smart IntelliSense: Autovervollständigung schlägt nun automatisch BMC Standard-Methoden vor und zeigt deren Dokumentation direkt beim Tippen an.

    Smart Hover: Hover-Tooltips zeigen ab sofort offizielle Beschreibungen für alle eingebauten BMC-Befehle (z.B. text.split oder size()).

    Neue Struktur-Blöcke: Linter und Formatter verstehen und verarbeiten nun syncmapping, enumeration und configuration.

    God-Snippet (tpl_skeleton): Ein neues Master-Snippet generiert mit einem Tastendruck eine komplett standardkonforme Datei inklusive Modul-Kopf, Pflicht-Metadaten und initialem Pattern.

    Weitere Snippets: Schnelle Vorlagen für syncmapping, table, if, for und mehr hinzugefügt.

    Marketplace Ready: package.json mit allen wichtigen Metadaten (Keywords, Kategorien, Repository-URL und Icon) ausgestattet.

    Dokumentation: Ausführliche README.md (Features, Snippets, Installation) und vsc-extension-quickstart.md (Entwickler-Guide) hinzugefügt.

    🐛 Behoben (Fixed)

    Hover-Fenster Bug: Ein Fehler wurde behoben, bei dem Hover-Tooltips für Methodenaufrufe leer blieben (Regex-Optimierung von \s zu [ \t]).

    Metadaten-Zwang: Der Linter erzwingt den metadata-Block nun korrekterweise nur noch auf der obersten Modul-Ebene. Innerhalb von Patterns und Syncmappings sind Metadaten ab sofort komplett optional.

    Enumeration Syntax: Der Linter wirft keine falschen Semikolon-Fehler mehr in enumeration-Blöcken, da hier standardmäßig Kommas verwendet werden.

    Build-Artefakte: Anleitung zur Anpassung der tsconfig.json geliefert, um zu verhindern, dass kompilierte .js-Dateien das src/-Verzeichnis verschmutzen.

    🔧 Geändert (Changed)

    Strikter Built-in Linter: Der Scanner prüft nun aktiv, ob Methoden innerhalb der BMC-Namespaces existieren und wirft einen Fehler bei Tippfehlern (z.B. bei text.slpit).

    Formatter-Update: Das "Klammer-Gedächtnis" und die Einrückungs-Logik wurden auf die neuen Block-Typen (syncmapping, etc.) ausgeweitet.

    Downloads
  • first_release_beta 5b150ce550

    kuro released this 2026-10-07 22:06:39 +00:00 | 27 commits to master since this release

    First release

    Downloads