All around TPL add on für visual studio code mit dem man angenehm und einfach in TPL Programmieren kann
Go to file
kuro 684d760f4b Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02:00
.vscode Initial commit 2026-10-07 23:34:05 +02:00
src Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02:00
syntaxes Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02:00
.gitignore Initial commit 2026-10-07 23:34:05 +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
CHANGELOG.md Initial commit 2026-10-07 23:34:05 +02:00
README.md Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02: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
language-configuration.json Initial commit 2026-10-07 23:34:05 +02:00
licence added licence 2026-10-07 23:51:03 +02:00
package-lock.json Initial commit 2026-10-07 23:34:05 +02:00
package.json Komplettes update für die funktionen und beschreibungen 2026-10-08 22:02:08 +02:00
tsconfig.json Initial commit 2026-10-07 23:34:05 +02:00

README.md

BMC TPL Code All-Around

Linter, Auto-Formatter, IntelliSense und Hover-Dokumentationen für die BMC TPL (Template Language).[cite: 3]

Diese Visual Studio Code Erweiterung verwandelt deinen Editor in eine vollwertige Entwicklungsumgebung für BMC Discovery TPL-Skripte. Sie nimmt dir Tipparbeit ab, formatiert Code nach strengen Best Practices, verhindert Syntax-Fehler noch vor dem Deployment und versteht projektübergreifende Abhängigkeiten.


✨ Features

🤖 Intelligenter Linter (Syntax-Scanner)

Der Linter analysiert den Code in Echtzeit und warnt vor typischen TPL-Fehlern:

  • Strikte Hierarchie-Prüfung: Überwacht die korrekte Reihenfolge der Blöcke innerhalb von Patterns und Syncmappings (metadata -> overview -> constants -> triggers -> mapping/removal -> body).
  • Semicolon- & Zuweisungs-Check: Findet fehlende Semikolons (ignoriert sie aber intelligent in enumeration-Blöcken) und warnt, wenn = anstelle von := für Zuweisungen genutzt wird.
  • Block- & Klammer-Tracking: Erkennt nicht geschlossene Blöcke (wie fehlende end body; oder end pattern;) und findet ungeschlossene runde ( oder eckige [ Klammern.
  • Pflichtfeld-Validierung: Prüft, ob auf Modul-Ebene zwingend benötigte Metadaten (origin, author, products, publishers, tree_path) vorhanden sind und ob im body ein initiales log.debug Statement steht.
  • Toleranz-Modus: Erkennt automatisch TPL-Versionen (z.B. > 1.23) und stuft in neueren Versionen Fehler zu reinen Warnungen herab, um zukünftige Kompatibilität zu gewährleisten.

🎨 Auto-Formatter & Visual Alignment (Shift + Alt + F)

Schluss mit kaputten Einrückungen! Der Formatter bringt deinen Code in Bestform:

  • VS Code Standard: Erzwingt strikt 4 Leerzeichen pro Einrückungs-Ebene.
  • Dynamische Block-Einrückung: Erkennt automatisch startende und endende Blöcke (if, for, pattern, table etc.) und passt die Einrückungsebene an.
  • Klammer-Gedächtnis (Visual Alignment): Die Königsdisziplin! Der Formatter merkt sich die spaltengenaue Position von geöffneten Arrays [ oder Funktionsaufrufen ( und richtet alle Folgezeilen makellos an dieser Klammer aus. Schließende Klammern werden auf Wunsch perfekt darunter platziert.

💡 IntelliSense & Autovervollständigung (Cross-File)

Spart extrem viel Zeit beim Coden durch Kontext-Wissen:

  • Workspace-Scanning: Importierst du ein Modul (z.B. from company.helpers import my_helper), durchsucht das Plugin im Hintergrund dein gesamtes Projekt. Tippst du my_helper., werden dir automatisch alle verfügbaren define-Methoden aus der fremden Datei vorgeschlagen!
  • Lokale Namespaces: Erkennt definitions-Blöcke in der gleichen Datei und schlägt deren Methoden vor.
  • Variablen-Tracking: Lernt alle Variablen, die du mit := definiert hast, und schlägt sie dir später vor.
  • Log-Filter: Nach dem Tippen von log. zeigt VS Code strikt nur noch die validen Methoden (debug, info, warn, error) an.

🔍 Hover-Dokumentation (Tooltips)

Wenn du mit der Maus über einem Methodennamen, einem Pattern oder einer Tabelle stehen bleibst:

  • DocString Extraction: Das Plugin liest Multi-Line-Kommentare (""" oder '''), die direkt unter einer define oder pattern Deklaration stehen, aus und rendert sie als saubere Markdown-Tooltips.
  • Projektübergreifend: Funktioniert auch für Methoden aus importierten Dateien! Du musst die aktuelle Datei nicht mehr verlassen, um zu sehen, was eine Hilfsfunktion macht.

⚡ Quick Fixes (Code Actions / Glühbirne)

Bietet sofortige Reparaturoptionen mit einem Klick:

  • "Fehlende Modul-Metadaten einfügen": Generiert sofort alle 5 Pflichtfelder im Modul-Metadata-Block.
  • "Log-Statement einfügen": Baut das fehlende log.debug("Start pattern..."); direkt am Anfang des body-Blocks ein.
  • "Tabs zu Spaces": Ersetzt sofort alle illegalen Tabs (\t) in einer Zeile durch jeweils 4 korrekte Leerzeichen.

🚀 Snippets (Code-Vorlagen)

Einfach das Keyword tippen und Enter drücken, um komplette, perfekt eingerückte Blöcke zu generieren:

Keyword Beschreibung
tpl_skeleton God-Snippet: Generiert eine komplett frische .tpl Datei inklusive Modul-Definition, Pflicht-Metadaten, Pattern, Triggern und Log-Statements.
pattern Baut einen leeren Pattern-Block inklusive DocString und end pattern;.
syncmapping Baut einen leeren Syncmapping-Block inklusive DocString.
define Generiert eine Methodendefinition (define name(params) ... end define;).
metadata, overview, body... Baut den jeweiligen Block auf und platziert den Cursor in der Mitte.
table Erstellt eine Tabelle inklusive des default -> "unknown"; Fallbacks.
if, for Baut Standard-Schleifen und Abfragen.

🛠️ Installation & Nutzung

  1. Das Plugin aktivieren.
  2. TPL-Dateien (Endung .tpl) öffnen.
  3. Der Linter startet automatisch bei jedem Tastendruck.
  4. Formatieren: Rechtsklick -> Dokument formatieren (oder Shift + Alt + F).
  5. Autovervollständigung: Triggert automatisch beim Tippen, speziell nach einem Punkt (.) bei Modul-Aufrufen.
  6. Quick Fixes: Auf die gelbe/rote Glühbirne am Zeilenanfang klicken oder Ctrl + . (Windows/Linux) / Cmd + . (Mac) drücken.