diff --git a/Snippets-%26-Quick-Fixes.md b/Snippets-%26-Quick-Fixes.md new file mode 100644 index 0000000..857d322 --- /dev/null +++ b/Snippets-%26-Quick-Fixes.md @@ -0,0 +1,55 @@ +# 🚀 Snippets & Quick Fixes + +Die **BMC TPL Code All around** Extension nimmt dir massiv Tipparbeit ab. Durch intelligente Code-Vorlagen (Snippets) und automatische Fehlerbehebungen (Quick Fixes) schreibst du TPL-Code nicht nur schneller, sondern auch fehlerfrei. + +--- + +## 📝 Smart Snippets (Code-Vorlagen) + +Snippets sind kleine Kürzel, die sich beim Tippen (oder durch Drücken von `Ctrl + Space`) in komplette Code-Blöcke verwandeln. +*Tipp:* Nach dem Einfügen eines Snippets kannst du mit der `Tab`-Taste bequem durch die Platzhalter (wie Variablen-Namen oder Bedingungen) springen! + +### Das God-Snippet +| Keyword | Beschreibung | +| :--- | :--- | +| `tpl_skeleton` | Generiert eine komplett frische `.tpl` Datei inklusive Modul-Definition, Pflicht-Metadaten, Pattern, Triggern und Log-Statements[cite: 4]. **Besonderheit:** Zieht sich automatisch deinen Namen, den Publisher und die TPL-Version aus deinen VS Code Settings! | + +### Kontrollstrukturen (Neu!) +Schluss mit vergessenen `then`, `do` oder `end` Blöcken. Tippe einfach das Keyword und drücke `Tab`: + +| Keyword | Generierter Code | +| :--- | :--- | +| `if` | Baut `if then ... end if;` und setzt den Cursor in die Bedingung. | +| `elif` | Baut `elif then ...` für nahtlose If-Ketten. | +| `else` | Baut den `else ...` Block. | +| `for` | Baut `for in do ... end for;`. | +| `while` | Baut `while do ... end while;`. | + +### TPL-Strukturen & Blöcke +| Keyword | Beschreibung | +| :--- | :--- | +| `pattern` | Baut einen leeren Pattern-Block inklusive DocString (`"""`) und `end pattern;`[cite: 4]. | +| `syncmapping` | Baut einen leeren Syncmapping-Block inklusive DocString[cite: 4]. | +| `define` | Generiert eine Methodendefinition (`define name(params) ... end define;`)[cite: 4]. | +| `table` | Erstellt eine Tabelle inklusive des obligatorischen `default -> "unknown";` Fallbacks[cite: 4]. | +| `metadata`, `body`, ... | Baut den jeweiligen TPL-Block (`metadata ... end metadata;`) auf und platziert den Cursor in der Mitte[cite: 4]. | + +--- + +## ⚡ Quick Fixes (Code Actions) + +Wenn der Linter einen Fehler oder eine Warnung findet, erscheint oft eine kleine **Glühbirne** am Zeilenanfang. Du kannst auch einfach in die markierte Zeile klicken und `Ctrl + .` (Windows/Linux) oder `Cmd + .` (Mac) drücken, um das Problem automatisch beheben zu lassen. + +Aktuell unterstützt die Extension folgende automatische Reparaturen: + +### 1. "Fehlende Modul-Metadaten einfügen" +* **Auslöser:** Du hast einen `metadata`-Block, aber es fehlen Pflichtfelder (wie `origin`, `author`, `products`, `publishers` oder `tree_path`)[cite: 4]. +* **Aktion:** Das Plugin generiert die fehlenden Zeilen sofort mit Dummy-Werten in den Block[cite: 4], sodass der Code wieder valide ist. + +### 2. "Log-Statement einfügen" +* **Auslöser:** Im `body` eines Patterns fehlt das initial geforderte `log.debug`-Statement mit dem Pattern-Namen[cite: 4]. +* **Aktion:** Baut das fehlende `log.debug("Start pattern ");` direkt als erste Zeile in den `body`-Block ein[cite: 4]. + +### 3. "Tabs zu Spaces" +* **Auslöser:** Der Linter findet Tabulator-Zeichen (`\t`) im Code. (In BMC TPL sind Spaces Best Practice)[cite: 4]. +* **Aktion:** Ersetzt sofort alle illegalen Tabs in der beanstandeten Zeile durch jeweils 4 korrekte Leerzeichen[cite: 4]. \ No newline at end of file