All around TPL add on für visual studio code mit dem man angenehm und einfach in TPL Programmieren kann
Go to file
kuro bda2c0a069 README.md geupdated, hat nun auch englische übersetzung 2026-10-15 20:02:59 +00:00
.vscode Initial commit 2026-10-07 23:34:05 +02:00
src test erweiterungen 2026-10-12 22:23:29 +02:00
syntaxes Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02:00
.gitignore Erweiterung die feste log regel fällt raus, dafür sind jetzt alle möglichen BMC TPL erweiterungen als auto complete drin 2026-10-09 00:36:29 +02:00
.vscode-test.mjs Initial commit 2026-10-07 23:34:05 +02:00
.vscodeignore Initial commit 2026-10-07 23:34:05 +02:00
LICENSE.md git ignore erweitert, unnötige dateien gelöscht, package.json angepasst und license file namen angepasst 2026-10-08 23:15:20 +02:00
README.md README.md geupdated, hat nun auch englische übersetzung 2026-10-15 20:02:59 +00:00
build_release.sh Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02:00
esbuild.js Initial commit 2026-10-07 23:34:05 +02:00
eslint.config.mjs Initial commit 2026-10-07 23:34:05 +02:00
icon.png git ignore erweitert, unnötige dateien gelöscht, package.json angepasst und license file namen angepasst 2026-10-08 23:15:20 +02:00
language-configuration.json Initial commit 2026-10-07 23:34:05 +02:00
package-lock.json Initial commit 2026-10-07 23:34:05 +02:00
package.json erkennung für fehlende end blocks, mehrzeilige if/for/while usw erkennung um keine semikolon fehler zu melden, besseres auslesen import defines, infos werden jetzt auch im Problems fenster gezeigt, bessere autovervollständigung, automatische fehlersuche über das projekt 2026-10-12 21:43:46 +02:00
tsconfig.json Erweiterung die feste log regel fällt raus, dafür sind jetzt alle möglichen BMC TPL erweiterungen als auto complete drin 2026-10-09 00:36:29 +02:00

README.md

BMC Discovery TPL - VS Code Extension

🌍 *🇺🇸 English * | 🇩🇪 Deutsch 🌍

🇺🇸 English

Transform your BMC Discovery TPL development from reactive scripting into proactive software engineering.

Writing Topology Pattern Language (TPL) for BMC Discovery used to mean writing code blindly, uploading it, and hoping the appliance wouldn't throw a cryptic error upon activation. This extension changes everything. It acts as a full-fledged Language Server tailored specifically for TPL, catching syntax errors and logic flaws before your code ever touches the server.

✨ Key Features

🧠 Context-Aware IntelliSense

The extension understands the logical structure of your TPL patterns.

  • Zone Strictness: You will only get code suggestions that are valid in your current block. No if statements in metadata, no metadata fields in the body.

  • Smart Completion: Completing a local method (e.g., my_tools.doWork) automatically inserts parentheses and a semicolon, placing your cursor perfectly for parameters ($0).

  • Namespace Support: Local definitions blocks are parsed as clean namespaces.

🌍 Workspace Indexing (Cross-File Support)

Break the boundaries of single-file editing. The extension asynchronously indexes your entire workspace.

  • Cross-File Imports: Resolves from Module import Definition on the fly. External methods are immediately available in your autocomplete list.

  • Intelligent Hover: Hovering over imported methods fetches and displays the DocString ("""...""") from the external file.

🛡️ Unforgiving Custom Linter

A highly robust linter built to understand TPL's unique quirks and edge cases.

  • Execution Zone Enforcement: Instantly warns if executable code or assignments are placed outside valid zones (body, triggers, constants, definitions).

  • Multi-Line Conditions: Fully supports complex if ... or ... then constructs without throwing false semicolon errors.

  • Stack-Tracking: Monitors your control structures. Missing or mismatched end if;, end for;, or end while; tags are flagged immediately.

  • URL/String Immunity: Slashes (//) or semicolons inside strings and URLs will not break the comment or syntax parser.

✅ Developer Ergonomics & Workflow

  • Workspace Scanning: Run the TPL: Scan Workspace command to lint your entire project at once. All issues appear in VS Code's native "Problems" tab.

  • Native TODO Tracking: Comments containing TODO: are automatically indexed as blue "Information" hints in the Problems tab for easy navigation.

  • Quick Fixes: Missing mandatory metadata (like author, tree_path)? Click the lightbulb icon to generate the missing fields perfectly inside the block.

🚀 Roadmap

  • 1-Click Test Deployment: Integration of the BMC Helix REST API to push and activate patterns directly to a test appliance via VS Code.

  • CI/CD Pipeline Integration: A headless CLI version of the linter to block bad code in Git Merge Requests, enabling fully automated production deployments.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🇩🇪 Deutsch

Verwandle deine BMC Discovery TPL-Entwicklung von reaktivem Scripting in proaktives Software Engineering.

Bisher glich das Schreiben von Topology Pattern Language (TPL) oft einem Blindflug: Code tippen, manuell hochladen und hoffen, dass die Appliance bei der Aktivierung keinen kryptischen Fehler wirft. Diese Extension ändert alles. Sie verhält sich wie ein maßgeschneiderter Language Server für TPL, der Syntax- und Logikfehler abfängt, bevor der Code den Server überhaupt berührt.

✨ Hauptfunktionen

🧠 Kontextsensitive IntelliSense

Die Extension liest nicht nur Text, sie versteht die logische Struktur deiner TPL-Patterns.

  • Strikte Zonen: Vorschläge gibt es nur dort, wo sie erlaubt sind. Keine if-Schleifen im metadata-Block, keine Metadaten-Felder im body.

  • Smart Completion: Bei der Autovervollständigung von Methoden (z.B. my_tools.doWork) werden Klammern und Semikolon automatisch generiert und der Cursor optimal platziert ($0).

  • Namespace Support: Lokale definitions-Blöcke werden als saubere Namespaces verstanden und projektweit vorgeschlagen.

🌍 Workspace Indexing (Cross-File Support)

Die Extension durchbricht die Grenzen einzelner Dateien und scannt asynchron das gesamte Projekt.

  • Cross-File Imports: Versteht from Modul import Definition. Methoden aus anderen Dateien stehen sofort in der Autovervollständigung bereit.

  • Intelligentes Hovering: Fährt man mit der Maus über importierte Methoden, wird der zugehörige DocString ("""...""") direkt aus der externen Datei als Tooltip geladen.

🛡️ Unbestechlicher Custom Linter

Ein hochgradig robuster Linter, der die Besonderheiten und Edge-Cases von TPL perfekt beherrscht.

  • Strikte Ausführungszonen: Warnt sofort, wenn ausführbarer Code außerhalb gültiger Zonen (body, triggers, constants, definitions) platziert wird.

  • Multi-Line Conditions: Vollständige Unterstützung für mehrzeilige if ... or ... then Konstrukte, ohne fehlerhafte Semikolon-Warnungen auszulösen.

  • Stack-Tracking: Überwacht hierarchisch alle Kontrollstrukturen. Fehlende oder falsche end if;, end for; oder end while; Anweisungen leuchten sofort rot auf.

  • URL/String Immunität: Komplexere Strings (inklusive URLs mit // oder Semikolons) bringen den Parser nicht mehr aus dem Tritt.

✅ Entwickler-Ergonomie & Workflow

  • Workspace Scanning: Mit dem Befehl TPL: Gesamten Workspace prüfen lässt sich das komplette Projekt auf einen Schlag durchleuchten. Alle Fehler landen übersichtlich im VS Code "Probleme"-Tab.

  • Natives TODO-Tracking: Kommentare mit TODO: werden automatisch erfasst und als blaue Info-Links im Probleme-Tab indiziert.

  • Quick Fixes: Fehlen Pflicht-Metadaten (wie author, tree_path), lassen sich diese per Klick auf das Glühbirnen-Symbol (Code Action) automatisch an der richtigen Stelle generieren.

🚀 Roadmap

  • 1-Klick Test Deployment: Integration der BMC Helix REST API, um Patterns direkt aus VS Code auf eine Test-Appliance zu pushen.

  • CI/CD Pipeline Integration: Eine "Headless"-Version des Linters für GitLab/GitHub, um fehlerhaften Code in Merge Requests zu blockieren und vollautomatisierte Deployments für die Produktion zu ermöglichen.

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – weitere Details finden sich in der LICENSE-Datei.

© Thomas Wehnert (Kuro)