Documentazione interna per gli sviluppatori della WvdS FPC RAD Suite
WvdS FPC RAD Studio è una suite di estensioni per Visual Studio Code, scritta interamente in Pascal e transpilata in JavaScript tramite pas2js.
sources/| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Documento | Contenuto |
|---|---|
| Core API | Servizi condivisi, accesso toolchain |
| Meta API | Registry componenti, provider IntelliSense |
| VSCode Wrapper | Unit WvdS.VSCode.* |
| 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 |
| 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) |
# Clonare il repository git clone https://github.com/ArmandoFilho/WvdS.FPC.git cd WvdS.FPC # Aprire VS Code code .
Richiesti:
Opzionali:
cd sources/extensions/wvds.vscode.core pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
F5 in VS Code per avviare l'Extension Development HostWVDS: Hello per testareWvdS.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
Queste regole sono non negoziabili e vengono verificate da wvds-lint:
CONSENTITO: sources/common/WvdS.System.pas VIETATO: sources/extensions/wvds.vscode.core/WvdS.System.pas (duplicato!)
CONSENTITO: *.pas -> pas2js -> *.js VIETATO: *.ts, *.js scritto a mano
CONSENTITO: sources/common/web/vscode/VSCode.API.pas VIETATO: sources/extensions/wvds.vscode.build/VSCode.API.pas
dist/extension_main.js deve contenere tutte le unit necessarie