Inhaltsverzeichnis

WvdS FPC RAD Studio - Documentazione per sviluppatori

Documentazione interna per gli sviluppatori della WvdS FPC RAD Suite

Questa documentazione è destinata agli sviluppatori interni della suite, non agli utenti finali. Per la documentazione utente vedere Public Documentation.

Panoramica

WvdS FPC RAD Studio è una suite di estensioni per Visual Studio Code, scritta interamente in Pascal e transpilata in JavaScript tramite pas2js.

Principi fondamentali

Indice della documentazione

Architettura

Documento Contenuto
Panoramica architettura Struttura monorepo, strati, dipendenze
Ambiente di sviluppo Struttura progetto, percorsi, regole SSOT
Pipeline PXAML Da markup a IR a renderer
Architettura estensioni Entry point, attivazione, servizi
Target di build GUI, TUI, Web - Differenze e punti in comune

Sviluppo

Documento Contenuto
Sviluppo estensioni Creare nuove estensioni, best practice
Sviluppo controlli Workflow in 7 passaggi per i controlli UI
Convenzioni del codice Naming, struttura, documentazione
Linee guida sulla sicurezza OWASP, KRITIS, audit
Internazionalizzazione Resourcestrings, traduzioni
Debugging Debug logging, analisi errori

Build e release

Documento Contenuto
Pipeline di build Compilazione pas2js, CLI toolchain, artefatti
Struttura pack Pack di terze parti, manifesti, distribuzione
Testing Unit test, test di integrazione
Processo di release Versionamento, creazione VSIX, pubblicazione

Sviluppo TUI

Documento Contenuto
Panoramica TUI Architettura, requisiti di qualità, quando usare TUI
TUI Engine CellBuffer, DiffEngine, rendering flicker-free
Controlli TUI Pattern Model+Renderer, stati, input, focus
Layout TUI Anchoring, responsive, breakpoint, container

Assicurazione qualità

Documento Contenuto
Panoramica QA Workflow, matrice profili, processi di audit
Checklist core Production-ready, gestione errori, logging
Checklist sicurezza KRITIS/NIS2, OWASP, crittografia
Checklist qualità codice Naming, funzioni, DRY, SSOT
Standard di commento PasDoc, doc-comments, review
Checklist VSCode Specifico per estensioni, pas2js

Riferimento API

Documento Contenuto
Core API Servizi condivisi, accesso toolchain
Meta API Registry componenti, provider IntelliSense
VSCode Wrapper Unit WvdS.VSCode.*

Libreria controlli

Documento Contenuto
Catalogo controlli Tutti i 108 controlli con mapping DevExpress
Architettura controlli Pattern Properties/ViewInfo/Control
Creare VSIX Creare manualmente estensione controllo
Generazione controlli Generazione batch con PowerShell

Riferimento API controlli

Documento Contenuto
Controlli base Label, Button, CheckBox, ecc. (12)
Controlli editor TextEdit, SpinEdit, DateEdit, ecc. (18)
Navigazione TabControl, Wizard, NavBar, ecc. (7)
Controlli dati DataGrid, TreeList, PivotGrid, ecc. (10)
Grafici LineSeries, PieSeries, Sparkline, ecc. (16)
Indicatori CircularGauge, LED, Thermometer, ecc. (10)
Layout LayoutControl, DockingManager, ecc. (10)
Barre/Ribbon RibbonControl, StatusBar, ecc. (10)
Specializzati Scheduler, Spreadsheet, Map, ecc. (15)

Guida rapida per nuovi sviluppatori

1. Configurare l'ambiente di sviluppo

# Clonare il repository
git clone https://github.com/ArmandoFilho/WvdS.FPC.git
cd WvdS.FPC
 
# Aprire VS Code
code .

2. Installare gli strumenti

Richiesti:

Opzionali:

3. Prima compilazione

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

4. Testare l'estensione

  1. F5 in VS Code per avviare l'Extension Development Host
  2. Si apre una nuova finestra VS Code con le estensioni caricate
  3. Palette comandi: WVDS: Hello per testare

Struttura del repository

WvdS.FPC/
├── sources/                    # SSOT - Versionato
│   ├── common/                 # Unit condivise
│   │   ├── core/               # Unit base
│   │   ├── ui/                 # UI Framework
│   │   └── web/                # Host Bridges (Node, VSCode)
│   ├── extensions/             # Estensioni VSIX
│   │   ├── 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/           # Applicazioni standalone
│   ├── tools/                  # Strumenti CLI (wvds-build, ecc.)
│   └── packages/               # Pacchetti IDE
│
├── binaries/                   # Output build (non versionato)
│   ├── out/                    # Artefatti compilati
│   ├── cache/                  # Cache compilatore
│   ├── dist/                   # Pacchetti release
│   └── logs/                   # Log di build
│
└── .claude/                    # Configurazione Claude
    └── CLAUDE.md               # Regole repository

Regole di policy

Queste regole sono non negoziabili e vengono verificate da wvds-lint:

P0: Single Source of Truth

CONSENTITO:   sources/common/WvdS.System.pas
VIETATO:  sources/extensions/wvds.vscode.core/WvdS.System.pas (duplicato!)

P1: Niente TypeScript

CONSENTITO:   *.pas -> pas2js -> *.js
VIETATO:  *.ts, *.js scritto a mano

P2: Wrapper solo in common

CONSENTITO:   sources/common/web/vscode/VSCode.API.pas
VIETATO:  sources/extensions/wvds.vscode.build/VSCode.API.pas

P3: Output autocontenuto

dist/extension_main.js deve contenere tutte le unit necessarie

Contatti

Prossimi passi