The attribute plugin is not available, 2fa disabled
Inhaltsverzeichnis
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
| Dokument | Inhalt |
|---|---|
| Extension-Entwicklung | Neue Extension erstellen, Best Practices |
| Control-Entwicklung | 7-Schritte-Workflow für UI-Controls |
| Code-Konventionen | Naming, Struktur, Dokumentation |
| Sicherheitsrichtlinien | OWASP, KRITIS, Audit |
| Internationalisierung | Resourcestrings, Übersetzungen |
| Debugging | Debug-Logging, Fehleranalyse |
Build und Release
| Dokument | Inhalt |
|---|---|
| Build-Pipeline | pas2js-Kompilierung, Toolchain CLI, Artefakte |
| Pack-Struktur | Drittanbieter-Packs, Manifeste, Verteilung |
| Testing | Unit-Tests, Integration-Tests |
| Release-Prozess | Versionierung, VSIX-Erstellung, Publishing |
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
| Dokument | Inhalt |
|---|---|
| Core API | Shared Services, Toolchain-Zugriff |
| Meta API | Komponenten-Registry, IntelliSense-Provider |
| VSCode Wrapper | WvdS.VSCode.* Units |
Control-Bibliothek
| Dokument | Inhalt |
|---|---|
| Control-Katalog | Alle 108 Controls mit DevExpress-Mapping |
| Control-Architektur | Properties/ViewInfo/Control Pattern |
| VSIX erstellen | Control Extension manuell erstellen |
| Control-Generierung | Batch-Generierung mit PowerShell |
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
Erforderlich:
- Free Pascal Compiler 3.2.2+
- pas2js 2.2.0+
- Node.js 18+ (für vsce)
- VS Code 1.85.0+
Optional:
- lazbuild (für LCL-Projekte)
- Inno Setup (für Windows-Installer)
3. Erste Kompilierung
cd sources/extensions/wvds.vscode.core pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
4. Extension testen
F5in VS Code zum Starten des Extension Development Host- Neues VS Code-Fenster öffnet sich mit geladenen Extensions
- Befehlspalette:
WVDS: Hellozum 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
- Repository: github.com/ArmandoFilho/WvdS.FPC
- Issues: Bug Reports und Feature Requests
- Code Review: Pull Requests via GitHub
Nächste Schritte
Zuletzt geändert: den 02.03.2026 um 13:42