WvdS FPC RAD Studio - Entwicklerdokumentation
Interne Dokumentation für Entwickler der WvdS FPC RAD Suite
Diese Dokumentation ist für
interne Entwickler der Suite, nicht für Anwender. Für Anwenderdokumentation siehe
Public Documentation.
Überblick
WvdS FPC RAD Studio ist eine Extension-Suite für Visual Studio Code, die vollständig in Pascal geschrieben und mit pas2js nach JavaScript transpiliert wird.
Kernprinzipien
Kein TypeScript - Alle Extensions sind Pascal-basiert
SSOT - Single Source of Truth in sources/
Separation of Concerns - Strikte Schichtenarchitektur
KRITIS/NIS2-konform - Sicherheit als Grundanforderung
Dokumentationsindex
Architektur
| Dokument | Inhalt |
| Architektur-Übersicht | Monorepo-Struktur, Schichten, Abhängigkeiten |
| Entwicklungsumgebung | Projektstruktur, Pfade, SSOT-Regeln |
| PXAML-Pipeline | Markup zu IR zu Renderer |
| Extension-Architektur | Entry Points, Activation, Services |
| pasls — Eigene Patches | Hover, References, DocumentHighlight — Änderungen am pascal-language-server |
| Build-Targets | GUI, TUI, Web - Unterschiede und Gemeinsamkeiten |
Entwicklung
Build und Release
TUI-Entwicklung
| Dokument | Inhalt |
| TUI-Übersicht | Architektur, Qualitätsanforderungen, Wann TUI verwenden |
| TUI Engine | CellBuffer, DiffEngine, Flicker-free Rendering |
| TUI Controls | Model+Renderer Pattern, States, Input, Focus |
| TUI Layout | Anchoring, Responsive, Breakpoints, Container |
Qualitätssicherung
| Dokument | Inhalt |
| QA-Übersicht | Workflow, Profil-Matrix, Audit-Prozesse |
| Core-Checkliste | Production-Ready, Error Handling, Logging |
| Sicherheits-Checkliste | KRITIS/NIS2, OWASP, Crypto |
| Codequalität-Checkliste | Naming, Functions, DRY, SSOT |
| Kommentierungsstandards | PasDoc, Doc-Comments, Review |
| VSCode-Checkliste | Extension-spezifisch, pas2js |
API-Referenz
Control-Bibliothek
Control API-Referenz
| Dokument | Inhalt |
| Basic Controls | Label, Button, CheckBox, etc. (12) |
| Editor Controls | TextEdit, SpinEdit, DateEdit, etc. (18) |
| Navigation | TabControl, Wizard, NavBar, etc. (7) |
| Data Controls | DataGrid, TreeList, PivotGrid, etc. (10) |
| Charts | LineSeries, PieSeries, Sparkline, etc. (16) |
| Gauges | CircularGauge, LED, Thermometer, etc. (10) |
| Layout | LayoutControl, DockingManager, etc. (10) |
| Bars/Ribbon | RibbonControl, StatusBar, etc. (10) |
| Specialized | Scheduler, Spreadsheet, Map, etc. (15) |
Schnellstart für neue Entwickler
1. Entwicklungsumgebung einrichten
# Repository klonen
git clone https://github.com/ArmandoFilho/WvdS.FPC.git
cd WvdS.FPC
# VS Code öffnen
code .
2. Werkzeuge installieren
3. Erste Kompilierung
cd sources/extensions/wvds.vscode.core
pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
4. Extension testen
F5 in VS Code zum Starten des Extension Development Host
Neues VS Code-Fenster öffnet sich mit geladenen Extensions
Befehlspalette: WVDS: Hello zum Testen
Repository-Struktur
WvdS.FPC/
├── sources/ # SSOT - Versioniert
│ ├── common/ # Shared Units
│ │ ├── core/ # Basis-Units
│ │ ├── ui/ # UI Framework
│ │ └── web/ # Host Bridges (Node, VSCode)
│ ├── extensions/ # VSIX Extensions
│ │ ├── wvds.vscode.core/
│ │ ├── wvds.vscode.build/
│ │ ├── wvds.vscode.projects/
│ │ ├── wvds.vscode.packaging/
│ │ ├── wvds.vscode.ui.designer/
│ │ ├── wvds.vscode.ui.meta/
│ │ └── wvds.vscode.ui.preview/
│ ├── applications/ # Standalone-Anwendungen
│ ├── tools/ # CLI-Tools (wvds-build, etc.)
│ └── packages/ # IDE-Packages
│
├── binaries/ # Build-Output (nicht versioniert)
│ ├── out/ # Kompilierte Artefakte
│ ├── cache/ # Compiler-Cache
│ ├── dist/ # Release-Pakete
│ └── logs/ # Build-Logs
│
└── .claude/ # Claude-Konfiguration
└── CLAUDE.md # Repo-Regeln
Policy-Regeln
Diese Regeln sind nicht verhandelbar und werden von wvds-lint geprüft:
P0: Single Source of Truth
ERLAUBT: sources/common/WvdS.System.pas
VERBOTEN: sources/extensions/wvds.vscode.core/WvdS.System.pas (Duplikat!)
P1: Kein TypeScript
ERLAUBT: *.pas -> pas2js -> *.js
VERBOTEN: *.ts, handgeschriebenes *.js
P2: Wrapper nur in common
ERLAUBT: sources/common/web/vscode/VSCode.API.pas
VERBOTEN: sources/extensions/wvds.vscode.build/VSCode.API.pas
P3: Self-contained Output
dist/extension_main.js muss alle benötigten Units enthalten
Kontakte
Nächste Schritte