Inhaltsverzeichnis
Kontrolna lista za VSCode Extension
Specifične provjere za VSCode Extension s pas2js.
Ova kontrolna lista dopunjuje Osnovnu kontrolnu listu za VSCode-ekstenzije.
Obvezne provjere
Activation Events
[ ] Activation Events su minimalni i ispravni [ ] Bez "activate on *" osim ako je obrazloženo [ ] Eventi odgovaraju stvarnoj funkcionalnosti
Primjer package.json:
{ "activationEvents": [ "onCommand:wvds.build.run", "onLanguage:pascal", "workspaceContains:**/*.lpr" ] }
Performanse
[ ] Bez dugotrajnih operacija na Extension Host niti [ ] Async-rad je prekidljiv (Cancellation Token) [ ] Progress-Reporting za duge operacije
Primjer: Prekidljiva operacija:
procedure LongOperation(AToken: TCancellationToken); begin while not Finished do begin if AToken.IsCancellationRequested then begin Logger.Info(rsOperationCancelled); Exit; end; ProcessNextItem; end; end;
Commands
[ ] Commands imaju konzistentne ID-ove [ ] Svi Commands imaju naslov i kategoriju [ ] Grupiranje Commands je logično
Naming Convention:
wvds.<domain>.<action> └── wvds.build.run └── wvds.build.clean └── wvds.projects.create
Settings
[ ] Sve Settings u contributes.configuration [ ] Settings su dokumentirane (description) [ ] Settings imaju sigurne zadane vrijednosti [ ] Settings se validiraju
Primjer:
{ "contributes": { "configuration": { "title": "WvdS Toolchain", "properties": { "wvds.toolchain.fpcPath": { "type": "string", "default": "", "description": "Path to fpc.exe. Leave empty for auto-detection." } } } } }
Sigurnost
[ ] Pozivi vanjskih alata validirani/sanitizirani [ ] Workspace-putanje tretirane kao untrusted [ ] Command Injection nije moguć [ ] shell: false kod Spawn-poziva
Primjer: Siguran poziv alata:
(* ZABRANJENO - Command Injection moguć *) Exec('fpc ' + UserInput); (* ISPRAVNO - Sigurna alternativa *) var Options: TSpawnOptions; begin Options.shell := False; Options.cwd := ValidatedPath; Spawn('fpc', ['-O2', ValidatedInput], Options); end;
Cross-Platform
[ ] Putanje su cross-platform safe [ ] Encodingi uzeti u obzir (UTF-8) [ ] Line Endings uzeti u obzir [ ] Path-Separatori ispravni (koristi PathJoin)
package.json Metadata
[ ] publisher postavljen [ ] name ispravan (mala slova, crtice) [ ] version prati SemVer [ ] license naveden [ ] repository linkovan [ ] engines.vscode na minimalnu verziju postavljen
Marketplace Assets
[ ] README.md prisutan i ažuran [ ] CHANGELOG.md s poviješću verzija [ ] Ikona prisutna (128x128 PNG) [ ] Screenshotovi za kompleksne značajke
pas2js-specifične provjere
Kompilacija
[ ] Kompilira bez grešaka s pas2js [ ] Bez pas2js-nekompatibilnih značajki [ ] Bez class var (koristi Unit-Level Variable) [ ] Bez Int64 (koristi Integer) [ ] Bez // komentara u asm-blokovima
Entry Point Pattern
[ ] extension_main.pas prisutan [ ] Activate/Deactivate exportirani [ ] Initialization-blok poziva 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 (* Inicijalizacija *) end; procedure Deactivate; begin (* Cleanup *) end; initialization ExportActivateDeactivate(@Activate, @Deactivate); end.
SSOT za VSCode API-je
[ ] VSCode API-ji preko ~/sources/common/web/vscode/
[ ] Bez direktnog require('vscode') u ekstenzijama
[ ] WvdS.VSCode.* wrapperi korišteni
Preporučene provjere
[ ] Progress Reporting za operacije > 1s [ ] Cancellation Tokens implementirani [ ] Debouncing kod File Watching [ ] Veličina ekstenzije minimizirana [ ] Bez nepotrebnih binarnih datoteka/asseta
Opcionalne provjere
[ ] Smoke Tests (Activation + Command) [ ] Offline-način ako se koriste Remote-servisi [ ] Telemetrija dokumentirana (ili nema)
VSIX-izrada
Build-proces
# 1. Kompiliraj Pascal u JavaScript pas2js @../../common/wvds_common.pas2js.cfg @build.cfg pas/extension_main.pas # 2. Zapakiraj VSIX vsce package --no-dependencies # 3. Validiraj vsce ls
Prije VSIX-izrade provjeriti
[ ] dist/extension_main.js prisutan [ ] package.json version povećan [ ] CHANGELOG.md ažuriran [ ] README.md ažuran [ ] Bez debug-artefakata [ ] .vscodeignore ispravno konfiguriran
Brza kontrolna lista za kopiranje
Kontrolna lista pregleda (VSCode Extension): Obvezno: - [ ] Minimalni Activation Events - [ ] Bez blokirajućih operacija - [ ] Commands s ID-ovima, naslovima, kategorijama - [ ] Settings dokumentirane i validirane - [ ] Pozivi alata sanitizirani (shell: false) - [ ] Cross-Platform safe (putanje, encodingi) - [ ] package.json Metadata potpuni pas2js: - [ ] Kompilira bez grešaka - [ ] Bez pas2js-nekompatibilnih značajki - [ ] Entry Point Pattern poštovan - [ ] SSOT za VSCode API-je Assets: - [ ] README.md prisutan - [ ] CHANGELOG.md ažuran - [ ] Ikona prisutna
Vidi također
Zuletzt geändert: 29.01.2026. u 22:29