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

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:

Optional:

3. Erste Kompilierung

cd sources/extensions/wvds.vscode.core
pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas

4. Extension testen

  1. F5 in VS Code zum Starten des Extension Development Host
  2. Neues VS Code-Fenster öffnet sich mit geladenen Extensions
  3. 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