Inhaltsverzeichnis
Checklist Extension VSCode
Verifiche specifiche per Extension VSCode con pas2js.
Questa checklist integra la Checklist Core per Extension VSCode.
Verifiche Obbligatorie
Activation Events
[ ] Gli Activation Events sono minimali e corretti [ ] Nessun "activate on *" tranne se giustificato [ ] Gli Events corrispondono alla funzionalità effettiva
Esempio package.json:
{ "activationEvents": [ "onCommand:wvds.build.run", "onLanguage:pascal", "workspaceContains:**/*.lpr" ] }
Performance
[ ] Nessuna operazione lunga sul thread Extension Host [ ] Il lavoro async è cancellabile (Cancellation Token) [ ] Progress-Reporting per operazioni lunghe
Esempio: Operazione Cancellabile:
procedure LongOperation(AToken: TCancellationToken); begin while not Finished do begin if AToken.IsCancellationRequested then begin Logger.Info(rsOperationCancelled); Exit; end; ProcessNextItem; end; end;
Commands
[ ] I Commands hanno ID coerenti [ ] Tutti i Commands hanno titolo e categoria [ ] Il raggruppamento dei Command è logico
Convenzione Naming:
wvds.<dominio>.<azione> +-- wvds.build.run +-- wvds.build.clean +-- wvds.projects.create
Settings
[ ] Tutte le Settings in contributes.configuration [ ] Le Settings sono documentate (description) [ ] Le Settings hanno default sicuri [ ] Le Settings vengono validate
Esempio:
{ "contributes": { "configuration": { "title": "WvdS Toolchain", "properties": { "wvds.toolchain.fpcPath": { "type": "string", "default": "", "description": "Path to fpc.exe. Leave empty for auto-detection." } } } } }
Sicurezza
[ ] Chiamate tool esterni validate/sanificate [ ] Percorsi workspace trattati come untrusted [ ] Nessuna Command Injection possibile [ ] shell: false nelle chiamate Spawn
Esempio: Chiamata Tool Sicura:
(* VIETATO - Command Injection possibile *) Exec('fpc ' + UserInput); (* CORRETTO - Alternativa sicura *) var Options: TSpawnOptions; begin Options.shell := False; Options.cwd := ValidatedPath; Spawn('fpc', ['-O2', ValidatedInput], Options); end;
Cross-Platform
[ ] I percorsi sono cross-platform safe [ ] Encoding considerato (UTF-8) [ ] Line Endings considerati [ ] Separatori percorso corretti (usare PathJoin)
Metadata package.json
[ ] publisher impostato [ ] name corretto (minuscole, trattini) [ ] version segue SemVer [ ] license indicata [ ] repository linkato [ ] engines.vscode impostato sulla versione minima
Asset Marketplace
[ ] README.md presente e aggiornato [ ] CHANGELOG.md con cronologia versioni [ ] Icona presente (128x128 PNG) [ ] Screenshot per funzionalità complesse
Verifiche Specifiche pas2js
Compilazione
[ ] Compila senza errori con pas2js [ ] Nessuna funzionalità pas2js-incompatibile usata [ ] Nessun class var (usare variabile a livello Unit) [ ] Nessun Int64 (usare Integer) [ ] Nessun commento // in blocchi asm
Pattern Entry Point
[ ] extension_main.pas presente [ ] Activate/Deactivate esportati [ ] Blocco Initialization chiama ExportActivateDeactivate
Template:
unit extension_main; {$mode objfpc}{$H+} interface uses JS, VSCode.API, WvdS.VSCode.ExtensionExports; procedure Activate(AContext: TExtensionContext); procedure Deactivate; implementation procedure Activate(AContext: TExtensionContext); begin (* Inizializzazione *) end; procedure Deactivate; begin (* Cleanup *) end; initialization ExportActivateDeactivate(@Activate, @Deactivate); end.
SSOT per API VSCode
[ ] API VSCode via ~/sources/common/web/vscode/
[ ] Nessun require('vscode') diretto nelle Extension
[ ] Wrapper WvdS.VSCode.* usati
Verifiche Raccomandate
[ ] Progress Reporting per operazioni > 1s [ ] Cancellation Tokens implementati [ ] Debouncing nel File Watching [ ] Dimensione Extension minimizzata [ ] Nessun binary/asset non necessario
Verifiche Opzionali
[ ] Smoke Tests (Activation + Command) [ ] Modalità offline se servizi remoti usati [ ] Telemetria documentata (o nessuna)
Creazione VSIX
Processo Build
# 1. Compilare Pascal in JavaScript pas2js @../../common/wvds_common.pas2js.cfg @build.cfg pas/extension_main.pas # 2. Pacchettizzare VSIX vsce package --no-dependencies # 3. Validare vsce ls
Verifiche Prima di Creazione VSIX
[ ] dist/extension_main.js presente [ ] package.json versione incrementata [ ] CHANGELOG.md aggiornato [ ] README.md aggiornato [ ] Nessun artefatto debug incluso [ ] .vscodeignore configurato correttamente
Checklist Rapida da Copiare
Checklist Review (Extension VSCode): Obbligatorio: - [ ] Activation Events minimali - [ ] Nessuna operazione bloccante - [ ] Commands con ID, titoli, categorie - [ ] Settings documentate e validate - [ ] Chiamate tool sanificate (shell: false) - [ ] Cross-Platform safe (percorsi, encoding) - [ ] Metadata package.json completi pas2js: - [ ] Compila senza errori - [ ] Nessuna funzionalità pas2js-incompatibile - [ ] Pattern Entry Point rispettato - [ ] SSOT per API VSCode Asset: - [ ] README.md presente - [ ] CHANGELOG.md aggiornato - [ ] Icona presente
Vedi anche
Zuletzt geändert: il 30/01/2026 alle 01:40