Interne Dokumentation für Entwickler der WvdS FPC RAD Suite
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.
sources/| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Dokument | Inhalt |
|---|---|
| Core API | Shared Services, Toolchain-Zugriff |
| Meta API | Komponenten-Registry, IntelliSense-Provider |
| VSCode Wrapper | WvdS.VSCode.* Units |
| 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 |
| 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) |
# Repository klonen git clone https://github.com/ArmandoFilho/WvdS.FPC.git cd WvdS.FPC # VS Code öffnen code .
Erforderlich:
Optional:
cd sources/extensions/wvds.vscode.core pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
F5 in VS Code zum Starten des Extension Development HostWVDS: Hello zum TestenWvdS.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
Diese Regeln sind nicht verhandelbar und werden von wvds-lint geprüft:
ERLAUBT: sources/common/WvdS.System.pas VERBOTEN: sources/extensions/wvds.vscode.core/WvdS.System.pas (Duplikat!)
ERLAUBT: *.pas -> pas2js -> *.js VERBOTEN: *.ts, handgeschriebenes *.js
ERLAUBT: sources/common/web/vscode/VSCode.API.pas VERBOTEN: sources/extensions/wvds.vscode.build/VSCode.API.pas
dist/extension_main.js muss alle benötigten Units enthalten