KK TT CompilerSwitchFold
IDE-Unterstützung für Pre-Compiler Switches wie //#IFDEF, //#ELSE, //#ELSIF, //#ENDIF – inkl. der „wrapped" Variante //{{[[>> ....
Speziell entwickelt für KEBA TeachTalk Programmiersprache, aber auch für andere Sprachen mit ähnlichen Pre-Compiler-Direktiven verwendbar.
✨ Features
🔽 Code Folding
- Standard-Folding: IFDEF → ENDIF als faltbarer Block
- Getrennte Folds (optional): Separate Folds für IF- und ELSE-Branch
- ENDIF sichtbar lassen (optional): Fold endet eine Zeile vor ENDIF
🏷️ Matching Labels (Block-Kennzeichnung)
Eindeutige Labels (A, B, C ... AA, AB ...) im Gutter helfen bei verschachtelten Blöcken die Übersicht zu behalten.
Die Darstellung wird automatisch optimiert: Einstellige Labels erscheinen fett, mehrstellige Labels etwas kleiner, um in den Randbereich zu passen.
| Symbol |
Bedeutung |
| A̅ (Linie oben) |
#IFDEF - Block-Start |
| [A] (Klammern) |
#ELSE / #ELSIF - Block-Mitte |
| A̲ (Linie unten) |
#ENDIF - Block-Ende |
🚀 Navigation (Sprung-Funktion)
Schnelles Navigieren zwischen zusammengehörigen Direktiven:
- Hover über die Direktive (
//#IFDEF, //#ELSE, //#ENDIF)
- Klick auf den Sprung-Link im Tooltip
Der Tooltip zeigt alle Positionen des Blocks und bietet klickbare Links:
- Von
#IFDEF: Springe zu #ELSE und/oder #ENDIF
- Von
#ELSE: Springe zu #IFDEF oder #ENDIF
- Von
#ENDIF: Springe zu #IFDEF oder #ELSE
⚠️ Diagnostics (Fehlerprüfung)
Probleme werden im Problems Panel angezeigt:
- ❌ Orphaned
#ELSE / #ELSIF (ohne passendes #IFDEF)
- ❌ Orphaned
#ENDIF (ohne passendes #IFDEF)
- ❌ Missing
#ENDIF am Dateiende
🎨 Syntax Highlighting
- Farbige Hervorhebung der Keywords (
//#IFDEF, //#ELSE, //#ENDIF)
- Konfigurierbare Farben
📦 Installation
Aus VSIX-Datei
- Öffne VS Code
Ctrl+Shift+P → "Extensions: Install from VSIX..."
- Wähle die
.vsix Datei
Aus Marketplace (falls veröffentlicht)
- Öffne VS Code Extensions (
Ctrl+Shift+X)
- Suche nach "KK TT CompilerSwitchFold"
- Klick auf "Install"
⚙️ Konfiguration
Öffne VS Code Settings (Ctrl+,) und suche nach CompilerSwitchFold.
Wichtige Einstellungen
| Einstellung |
Typ |
Default |
Beschreibung |
supportedLanguages |
array |
["teachtalk", "plaintext", ...] |
Sprachen, für die die Extension aktiv ist |
enableFolding |
boolean |
true |
Folding aktivieren |
foldElseBranches |
boolean |
true |
Getrennte Folds für IF/ELSE |
keepEndMarkerVisible |
boolean |
true |
ENDIF beim Falten sichtbar lassen |
gutterIconMode |
string |
"matchingLabels" |
none, icon, oder matchingLabels |
gutterLabelColor |
string |
"#FFD700" |
Farbe der Gutter-Labels |
switchKeywordColor |
string |
"#FFD700" |
Farbe der Keywords |
enableDiagnostics |
boolean |
true |
Fehlerprüfung aktivieren |
debounceMs |
number |
120 |
Parse-Verzögerung in ms |
📝 Unterstützte Direktiven
Die Extension erkennt folgende Direktiven (case-insensitive):
//#IFDEF FeatureName
//#ELSE
//#ELSIF AnotherCondition
//#ENDIF
Auch das Legacy-Format mit Prefix wird unterstützt:
//{{[[>>//#IFDEF FeatureName
//{{[[>>//#ELSE
//{{[[>>//#ENDIF
Oder mit Leerzeichen:
//{{[[>> //#IFDEF FeatureName
Oder auf zwei Zeilen:
//{{[[>>
//#IFDEF FeatureName
🔧 Troubleshooting
Folding funktioniert nicht
- Prüfe ob
editor.foldingStrategy auf auto steht
- Prüfe ob die Sprache in
supportedLanguages enthalten ist (unten rechts in VS Code die Language ID prüfen)
Konflikte mit anderen Extensions
Falls Sie KeStudio Code TT verwenden: Diese Extension enthält einen Workaround für bekannte Folding-Konflikte mit Pascal-Kommentarblöcken.
Language ID herausfinden
Die Language ID wird unten rechts in der VS Code Statusbar angezeigt. Klicken Sie darauf, um sie zu ändern oder zu sehen.
🤝 Kompatibilität
- VS Code: 1.85.0 oder höher
- Getestet mit: TeachTalk (.ttp, .tts, .ttd), Plaintext
- Kompatibel mit: KeStudio Code TT Extension
📄 Lizenz
MIT License
🐛 Bugs & Feature Requests
Bitte melden Sie Probleme oder Verbesserungsvorschläge über das Issue-Tracking-System.
� Changelog
Eine detaillierte Auflistung aller Änderungen finden Sie in der Datei CHANGELOG.md im Erweiterungs-Verzeichnis.
Entwickelt für ENGEL AUSTRIA GmbH