Inhaltsverzeichnis
Kontrolni seznam VSCode Extension
Specifična preverjanja za VSCode razširitve s pas2js.
Ta kontrolni seznam dopolnjuje Kontrolni seznam Core za VSCode razširitve.
Obvezna preverjanja
Activation Events
[ ] Activation Events so minimalni in pravilni [ ] Brez "activate on *" razen če je utemeljeno [ ] Dogodki ustrezajo dejanski funkcionalnosti
Primer package.json:
{ "activationEvents": [ "onCommand:wvds.build.run", "onLanguage:pascal", "workspaceContains:**/*.lpr" ] }
Zmogljivost
[ ] Brez dolgotrajnih operacij na niti Extension Host [ ] Asinhrono delo je prekinjljivo (Cancellation Token) [ ] Poročanje o napredku za dolge operacije
Primer: Prekinjljiva 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 imajo konsistentne ID-je [ ] Vsi Commands imajo naslov in kategorijo [ ] Grupiranje Commands je logično
Konvencija poimenovanja:
wvds.<domena>.<akcija> +-- wvds.build.run +-- wvds.build.clean +-- wvds.projects.create
Settings
[ ] Vse Settings v contributes.configuration [ ] Settings so dokumentirane (description) [ ] Settings imajo varne privzete vrednosti [ ] Settings so validirane
Primer:
{ "contributes": { "configuration": { "title": "WvdS Toolchain", "properties": { "wvds.toolchain.fpcPath": { "type": "string", "default": "", "description": "Path to fpc.exe. Leave empty for auto-detection." } } } } }
Varnost
[ ] Klici zunanjih orodij validirani/sanirani [ ] Poti workspace obravnavane kot nezaupanja vredne [ ] Command Injection ni mogoč [ ] shell: false pri klicih Spawn
Primer: Varen klic orodja:
(* PREPOVEDANO - Mogoč Command Injection *) Exec('fpc ' + UserInput); (* PRAVILNO - Varna alternativa *) var Options: TSpawnOptions; begin Options.shell := False; Options.cwd := ValidatedPath; Spawn('fpc', ['-O2', ValidatedInput], Options); end;
Cross-Platform
[ ] Poti so cross-platform varne [ ] Kodiranja upoštevana (UTF-8) [ ] Končnice vrstic upoštevane [ ] Ločila poti pravilna (uporaba PathJoin)
package.json Metadata
[ ] publisher nastavljeno [ ] name pravilno (male črke, vezaji) [ ] version sledi SemVer [ ] license navedena [ ] repository povezan [ ] engines.vscode na minimalno verzijo
Marketplace Assets
[ ] README.md prisoten in ažuren [ ] CHANGELOG.md z zgodovino verzij [ ] Ikona prisotna (128x128 PNG) [ ] Posnetki zaslona za kompleksne funkcije
pas2js-specifična preverjanja
Kompilacija
[ ] Kompilira brez napak s pas2js [ ] Brez pas2js-nezdružljivih funkcij [ ] Brez class var (namesto tega Unit-Level Variable) [ ] Brez Int64 (namesto tega Integer) [ ] Brez // komentarjev v asm-blokih
Entry Point Pattern
[ ] extension_main.pas prisoten [ ] Activate/Deactivate izvožena [ ] Initialization-blok kliče ExportActivateDeactivate
Predloga:
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 (* Inicializacija *) end; procedure Deactivate; begin (* Čiščenje *) end; initialization ExportActivateDeactivate(@Activate, @Deactivate); end.
SSOT za VSCode API-je
[ ] VSCode API-ji prek ~/sources/common/web/vscode/
[ ] Brez neposrednega require('vscode') v razširitvah
[ ] Uporabljene ovojnice WvdS.VSCode.*
Priporočena preverjanja
[ ] Progress Reporting za operacije > 1s [ ] Cancellation Tokens implementirani [ ] Debouncing pri File Watching [ ] Velikost razširitve minimizirana [ ] Brez nepotrebnih binarnih datotek/sredstev
Izbirna preverjanja
[ ] Smoke Tests (Activation + Command) [ ] Offline način, če se uporabljajo oddaljene storitve [ ] Telemetrija dokumentirana (ali brez nje)
Ustvarjanje VSIX
Postopek gradnje
# 1. Pascal v JavaScript kompilirati pas2js @../../common/wvds_common.pas2js.cfg @build.cfg pas/extension_main.pas # 2. VSIX zapakirati vsce package --no-dependencies # 3. Validirati vsce ls
Pred ustvarjanjem VSIX preveriti
[ ] dist/extension_main.js prisoten [ ] package.json version povišana [ ] CHANGELOG.md posodobljen [ ] README.md ažuren [ ] Brez razhroščevalnih artefaktov [ ] .vscodeignore pravilno konfiguriran
Hitri kontrolni seznam za kopiranje
Kontrolni seznam pregleda (VSCode Extension): Obvezno: - [ ] Minimalni Activation Events - [ ] Brez blokirajočih operacij - [ ] Commands z ID-ji, naslovi, kategorijami - [ ] Settings dokumentirane in validirane - [ ] Klici orodij sanirani (shell: false) - [ ] Cross-Platform varno (poti, kodiranja) - [ ] package.json Metadata popolna pas2js: - [ ] Kompilira brez napak - [ ] Brez pas2js-nezdružljivih funkcij - [ ] Entry Point Pattern upoštevan - [ ] SSOT za VSCode API-je Assets: - [ ] README.md prisoten - [ ] CHANGELOG.md ažuren - [ ] Ikona prisotna
Glejte tudi
Zuletzt geändert: dne 29.01.2026 ob 22:24