====== WvdS VSCode Projects ====== La Projects Extension gestisce i progetti Pascal in VS Code. Offre template di progetto, dialoghi di configurazione e gestione delle solution. ===== Funzione e scopo ===== La Projects Extension consente: * **Template di progetto** - Creazione rapida di nuovi progetti * **Gestione progetti** - Apertura, configurazione, amministrazione * **Solution multi-progetto** - Più progetti in un unico workspace * **Impostazioni progetto** - GUI per opzioni del compilatore ===== Comandi ===== ^ Comando ^ Descrizione ^ | ''WvdS Projects: New Project (Quick)'' | Crea un progetto con impostazioni predefinite | | ''WvdS Projects: New Project from Template...'' | Mostra il dialogo di selezione template | | ''WvdS Projects: Open Project'' | Apre un progetto esistente | | ''WvdS Projects: Project Settings...'' | Apre il dialogo delle impostazioni progetto | ===== Template di progetto ===== L'estensione include template predefiniti per vari tipi di progetto: ==== Desktop Console ==== Semplice applicazione console per strumenti da riga di comando e servizi. **File generati:** MyProject/ MyProject.lpr -- Programma principale **Codice di esempio:** program MyProject; {$mode objfpc}{$H+} uses SysUtils; begin WriteLn('Hello, World!'); end. **Casi d'uso:** * Strumenti CLI e utility * Elaborazione batch * Servizi server * Script di build ==== Desktop GUI ==== Applicazione desktop nativa con LCL (Lazarus Component Library). **File generati:** MyProject/ MyProject.lpr -- Programma principale MainForm.pas -- Unit del form principale MainForm.lfm -- Design del form **Prerequisiti:** * Lazarus installato (per LCL) * lazbuild disponibile **Casi d'uso:** * Applicazioni desktop * Frontend per database * Programmi utility con GUI ==== Desktop Library ==== Shared Library (DLL/SO) per sistemi di plugin o integrazione esterna. **File generati:** MyProject/ MyProject.lpr -- Progetto libreria **Codice di esempio:** library MyProject; {$mode objfpc}{$H+} uses SysUtils; procedure HelloWorld; cdecl; begin WriteLn('Hello from library!'); end; exports HelloWorld; begin end. **Casi d'uso:** * Plugin per altre applicazioni * Codice condiviso tra progetti * Integrazione con altri linguaggi (C, Python, ecc.) ==== TUI App ==== Terminal User Interface - interfaccia utente basata su testo. **File generati:** MyProject/ MyProject.lpr -- Programma principale TuiMain.pas -- Unit TUI principale **Casi d'uso:** * Amministrazione server * Strumenti compatibili con SSH * Applicazioni a basso consumo di risorse * Cross-platform senza dipendenze GUI ==== Web PWA ==== Progressive Web App con pas2js - eseguita nel browser. **File generati:** MyProject/ MyProject.lpr -- Programma principale (diventa JS) index.html.tmpl -- Template HTML manifest.json.tmpl-- Manifest PWA sw.js -- Service Worker **Prerequisiti:** * pas2js installato **Casi d'uso:** * Applicazioni web * App cross-platform * Applicazioni offline-capable ==== VSCode Extension ==== Estensione VS Code in Pascal, transpilata con pas2js. **File generati:** MyExtension/ extension_main.pas -- Entry Point package.json.tmpl -- Manifest dell'estensione **Prerequisiti:** * pas2js installato * Node.js per vsce (Packaging) **Casi d'uso:** * Estensioni VS Code personalizzate * Strumenti IDE e automazione * Integrazione con la suite WvdS ==== Installer (Inno Setup) ==== Installer Windows per applicazioni desktop. **File generati:** MyInstaller/ MyInstaller.iss -- Script Inno Setup **Prerequisiti:** * Inno Setup installato **Casi d'uso:** * Pacchetti di installazione Windows * Aggiornamenti automatici * Deployment aziendale ===== Impostazioni progetto ===== Il dialogo ''WvdS Projects: Project Settings...'' offre un'interfaccia grafica per: ==== Impostazioni generali ==== * **Nome progetto** - Nome del progetto * **Directory di output** - Dove vengono scritti i file compilati * **Percorsi unit** - Percorsi di ricerca aggiuntivi per le unit ==== Opzioni del compilatore ==== * **Target Platform** - windows-x86, windows-x64, linux-x64, ... * **Ottimizzazioni** - Livello 0-3 * **Simboli di debug** - Attivare per il debugging * **Assertion** - Controlli a runtime ==== Dipendenze ==== * **Clausole Uses** - Unit gestite automaticamente * **Percorsi librerie** - Percorsi a librerie esterne ===== Workspace multi-progetto ===== I workspace di VS Code possono contenere più progetti: MyWorkspace.code-workspace MyApp/ -- Applicazione desktop MyLib/ -- Libreria condivisa MyTests/ -- Unit test ==== Creare un workspace ==== - ''File'' -> ''Add Folder to Workspace...'' - Aggiungete tutte le cartelle dei progetti - ''File'' -> ''Save Workspace As...'' ==== Selezionare un progetto ==== Con più progetti: - Aprite un file del progetto desiderato - Oppure: selezionate il progetto nel Project Explorer ===== Menu contestuale ===== Clic destro sui file .lpi/.lpr nell'Explorer mostra: * ''WvdS Projects: Project Settings...'' ===== Risoluzione dei problemi ===== ==== Il dialogo template non si apre ==== **Causa:** Estensione non attivata o errore. **Soluzione:** - Verificate se l'estensione è installata - Controllate la Developer Console per errori - Riavviate VS Code ==== Il progetto non viene riconosciuto ==== **Causa:** Nessun file .lpr, .dpr o .pas nella cartella. **Soluzione:** - Assicuratevi che esista un file principale - Aprite la cartella con ''File'' -> ''Open Folder...'' ==== Le impostazioni del progetto non vengono salvate ==== **Causa:** Permessi di scrittura mancanti o configurazione errata. **Soluzione:** - Controllate i permessi di scrittura nella cartella del progetto - Verificate settings.json per errori di sintassi ===== Dettagli tecnici ===== ^ Proprietà ^ Valore ^ | Extension ID | wvds.wvds-vscode-projects | | Attivazione | workspaceContains:/*.lpr, onLanguage:pascal | | Dipendenze | wvds-vscode-core | | Min. VS Code | 1.85.0 | ===== Vedere anche ===== * [[.:core|Core Extension - Configurazione toolchain]] * [[.:build|Build Extension - Compilazione]] * [[.:designer|UI Designer - Sviluppo PXAML]]