Ambiente di sviluppo

Panoramica della struttura del progetto e dei percorsi importanti per WvdS FPC RAD Studio.

Tilde (~) indica la root del repository (es. %WORKSPACE%/WvdS.FPC). Tutti i percorsi usano forward-slash.

Struttura del progetto

~/
├── sources/                    # SSOT - versionato (SVN)
│   ├── common/                 # Unit/Lib condivise (FPC + pas2js)
│   │   ├── core/               # Unit base (no UI)
│   │   ├── ui/                 # UI Framework
│   │   │   ├── controls/       # Controlli base
│   │   │   ├── components/     # Componenti compositi
│   │   │   ├── runtime/        # Runtime PXAML
│   │   │   └── targets/        # Renderer (tui/gui/web)
│   │   └── web/                # Host Bridges (solo pas2js)
│   │       ├── nodejs/         # API Node.js
│   │       └── vscode/         # API estensioni VSCode
│   ├── extensions/             # Pacchetti VSIX
│   ├── applications/           # Prodotti/Demo
│   ├── tools/                  # wvds-build, pxamlc
│   └── packages/               # Pacchetti IDE
│
├── binaries/                   # Output build - NON versionato
│   ├── out/                    # Output build
│   ├── cache/                  # Cache compilatore
│   ├── dist/                   # Artefatti release (.vsix)
│   └── logs/                   # Report build, log debug
│
└── assets/                     # Asset statici

Percorsi del progetto

Variabile Percorso Descrizione
~ Root repository %WORKSPACE%/WvdS.FPC
~/sources Sorgenti Single Source of Truth
~/sources/common Codice condiviso Compatibile FPC + pas2js
~/sources/extensions Estensioni VSIX Pacchetti VSCode
~/sources/applications Applicazioni RAD Suite, Demo
~/binaries Output build Eliminabile, rigenerabile
~/binaries/dist Release .vsix, installer
~/binaries/logs Log Report build, log debug
~/assets Asset Icone, template

Variabili d'ambiente

Queste variabili sono segnaposto e devono essere adattate all'ambiente di sviluppo locale. I percorsi assoluti dovrebbero essere evitati nei file di configurazione.
Variabile Valore predefinito Descrizione
%LAZARUS% Installazione Lazarus es. C:\Lazarus o /opt/lazarus
%PROGRAMFILES% Program Files Windows: C:\Program Files
%USERPROFILE% Directory utente Windows: C:\Users\{name}, Linux: ~
%WORKSPACE% Directory di lavoro Definita dall'utente, es. E:\Workspace

Compilatore e toolchain

Variabile Percorso relativo Descrizione
FPC %LAZARUS%/fpc/3.3.1/bin Free Pascal Compiler
FPC-SRC %LAZARUS%/fpc/3.3.1/source Sorgenti FPC
PAS2JS %LAZARUS%/fpc/3.3.1/bin/pas2js.exe Pascal to JavaScript
P2J-RTL %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/rtl RTL pas2js
P2J-NODE %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/nodejs Binding Node.js
P2J-VSCODE %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/vscode Binding VSCode

Riferimenti esterni

Questi percorsi sono opzionali e rilevanti solo per sviluppatori che vogliono studiare implementazioni di riferimento.
Variabile Percorso relativo Descrizione
DXVCL %WORKSPACE%/3rd/DevExpress/VCL DevExpress VCL (Delphi)
DXNET %PROGRAMFILES%/DevExpress 25.1/Components/Sources DevExpress .NET
NODEJS-SRC %WORKSPACE%/3rd/node-main Sorgenti Node.js
VSCODE-SRC %WORKSPACE%/3rd/vscode-main Sorgenti VSCode

Documentazione

Variabile Percorso relativo Descrizione
DOKUWIKI %DOKUWIKI_DATA%/pages/de/int/vsce/fpc Pagine DokuWiki
SKILLS %WORKSPACE%/WvdS.Rihtlinien Definizioni skill

Regole SSOT

Single Source of Truth - Queste regole sono vincolanti!
  1. ~/sources/ e l'unica fonte per il codice versionato
  2. ~/binaries/ e completamente eliminabile e rigenerabile
  3. Mai duplicare codice runtime in ~/sources/extensions/
  4. Mai committare file generati in ~/sources/

Struttura output build

~/binaries/out/{app}/{target}/{mode}/
├── gen/              # Codice generato (ui.generated.pas)
├── bin/              # File eseguibili / Bundle JS
├── assets/           # PXAML, immagini, temi
├── build-plan.json   # Configurazione build
└── build-report.md   # Protocollo build
Target Compilatore Output
tui FPC Console nativa (Windows/Linux)
gui FPC Desktop nativo (LCL/WinAPI)
web pas2js Bundle JavaScript
Mode Descrizione
debug Simboli debug, nessuna ottimizzazione
release Ottimizzato, simboli rimossi
profile Release + profiling

Struttura estensione

~/sources/extensions/wvds.vscode.{name}/
├── pas/
│   ├── extension_main.pas     # Entry Point (OBBLIGATORIO)
│   ├── {Feature}.Models.pas   # Strutture dati
│   ├── {Feature}.Service.pas  # Logica di business
│   └── {Feature}.Dialog.pas   # UI (opzionale)
│
├── dist/
│   ├── extension_main.js      # JS compilato
│   └── extension_main.js.map  # Source Map
│
├── templates/                  # Template WebView
├── images/                     # Icone
├── package.json               # Manifesto VSCode
├── build.cfg                  # Configurazione build
└── README.md                  # Documentazione

Vedi anche

Zuletzt geändert: il 29/01/2026 alle 22:28