WvdS FPC RAD Studio - Developer Documentation
Internal documentation for developers of the WvdS FPC RAD Suite
This documentation is for
internal developers of the suite, not for end users. For user documentation see
Public Documentation.
Overview
WvdS FPC RAD Studio is an extension suite for Visual Studio Code, written entirely in Pascal and transpiled to JavaScript using pas2js.
Core Principles
No TypeScript - All extensions are Pascal-based
SSOT - Single Source of Truth in sources/
Separation of Concerns - Strict layered architecture
KRITIS/NIS2 compliant - Security as a fundamental requirement
Documentation Index
Architecture
Development
Build and Release
TUI Development
| Document | Content |
| TUI Overview | Architecture, quality requirements, when to use TUI |
| TUI Engine | CellBuffer, DiffEngine, flicker-free rendering |
| TUI Controls | Model+Renderer Pattern, states, input, focus |
| TUI Layout | Anchoring, responsive, breakpoints, containers |
Quality Assurance
| Document | Content |
| QA Overview | Workflow, profile matrix, audit processes |
| Core Checklist | Production-ready, error handling, logging |
| Security Checklist | KRITIS/NIS2, OWASP, Crypto |
| Code Quality Checklist | Naming, functions, DRY, SSOT |
| Documentation Standards | PasDoc, doc comments, review |
| VSCode Checklist | Extension-specific, pas2js |
API Reference
Control Library
Control API Reference
| Document | Content |
| 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) |
Quick Start for New Developers
1. Set Up Development Environment
# Clone repository
git clone https://github.com/ArmandoFilho/WvdS.FPC.git
cd WvdS.FPC
# Open VS Code
code .
3. First Compilation
cd sources/extensions/wvds.vscode.core
pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
4. Test Extension
Press F5 in VS Code to start the Extension Development Host
A new VS Code window opens with loaded extensions
Command Palette: WVDS: Hello to test
Repository Structure
WvdS.FPC/
├── sources/ # SSOT - Version controlled
│ ├── common/ # Shared Units
│ │ ├── core/ # Base 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 applications
│ ├── tools/ # CLI tools (wvds-build, etc.)
│ └── packages/ # IDE Packages
│
├── binaries/ # Build output (not version controlled)
│ ├── out/ # Compiled artifacts
│ ├── cache/ # Compiler cache
│ ├── dist/ # Release packages
│ └── logs/ # Build logs
│
└── .claude/ # Claude configuration
└── CLAUDE.md # Repository rules
Policy Rules
These rules are non-negotiable and are checked by wvds-lint:
P0: Single Source of Truth
ALLOWED: sources/common/WvdS.System.pas
FORBIDDEN: sources/extensions/wvds.vscode.core/WvdS.System.pas (duplicate!)
P1: No TypeScript
ALLOWED: *.pas -> pas2js -> *.js
FORBIDDEN: *.ts, handwritten *.js
P2: Wrappers Only in common
ALLOWED: sources/common/web/vscode/VSCode.API.pas
FORBIDDEN: sources/extensions/wvds.vscode.build/VSCode.API.pas
P3: Self-contained Output
dist/extension_main.js must contain all required units
Next Steps