The attribute plugin is not available, 2fa disabled
Inhaltsverzeichnis
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
| Document | Content |
|---|---|
| Architecture Overview | Monorepo structure, layers, dependencies |
| Development Environment | Project structure, paths, SSOT rules |
| PXAML Pipeline | Markup to IR to Renderer |
| Extension Architecture | Entry Points, Activation, Services |
| Build Targets | GUI, TUI, Web - Differences and commonalities |
Development
| Document | Content |
|---|---|
| Extension Development | Creating new extensions, Best Practices |
| Control Development | 7-Step workflow for UI controls |
| Code Conventions | Naming, structure, documentation |
| Security Guidelines | OWASP, KRITIS, Audit |
| Internationalization | Resourcestrings, translations |
| Debugging | Debug logging, error analysis |
Build and Release
| Document | Content |
|---|---|
| Build Pipeline | pas2js compilation, Toolchain CLI, artifacts |
| Pack Structure | Third-party packs, manifests, distribution |
| Testing | Unit tests, integration tests |
| Release Process | Versioning, VSIX creation, publishing |
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
| Document | Content |
|---|---|
| Core API | Shared services, toolchain access |
| Meta API | Component registry, IntelliSense provider |
| VSCode Wrapper | WvdS.VSCode.* Units |
Control Library
| Document | Content |
|---|---|
| Control Catalog | All 108 controls with DevExpress mapping |
| Control Architecture | Properties/ViewInfo/Control Pattern |
| Creating VSIX | Manually creating control extension |
| Control Generation | Batch generation with PowerShell |
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 .
2. Install Tools
Required:
- Free Pascal Compiler 3.2.2+
- pas2js 2.2.0+
- Node.js 18+ (for vsce)
- VS Code 1.85.0+
Optional:
- lazbuild (for LCL projects)
- Inno Setup (for Windows installers)
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
F5in VS Code to start the Extension Development Host - A new VS Code window opens with loaded extensions
- Command Palette:
WVDS: Helloto 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
Contacts
- Repository: github.com/ArmandoFilho/WvdS.FPC
- Issues: Bug Reports and Feature Requests
- Code Review: Pull Requests via GitHub
Next Steps
Zuletzt geändert: on 2026/01/29 at 10:24 PM