Interna dokumentacija za razvijalce WvdS FPC RAD Suite
WvdS FPC RAD Studio je paket razširitev za Visual Studio Code, ki je v celoti napisan v Pascalu in s pas2js preveden v JavaScript.
sources/| Dokument | Vsebina |
|---|---|
| Pregled arhitekture | Struktura monorepo, sloji, odvisnosti |
| Razvojno okolje | Struktura projekta, poti, pravila SSOT |
| Cevovod PXAML | Od označevanja do IR do upodabljanja |
| Arhitektura razširitev | Vstopne točke, aktivacija, storitve |
| Cilji gradnje | GUI, TUI, Web - razlike in skupne točke |
| Dokument | Vsebina |
|---|---|
| Razvoj razširitev | Ustvarjanje nove razširitve, najboljše prakse |
| Razvoj kontrolnikov | 7-koračni potek dela za UI kontrolnike |
| Konvencije kode | Poimenovanje, struktura, dokumentacija |
| Varnostne smernice | OWASP, KRITIS, revizija |
| Internacionalizacija | Resourcestrings, prevodi |
| Razhroščevanje | Debug logging, analiza napak |
| Dokument | Vsebina |
|---|---|
| Cevovod gradnje | Prevajanje s pas2js, CLI orodja, artefakti |
| Struktura paketov | Paketi tretjih oseb, manifesti, distribucija |
| Testiranje | Enotski testi, integracijski testi |
| Postopek izdaje | Verzioniranje, ustvarjanje VSIX, objava |
| Dokument | Vsebina |
|---|---|
| Pregled TUI | Arhitektura, zahteve kakovosti, kdaj uporabiti TUI |
| TUI Engine | CellBuffer, DiffEngine, upodabljanje brez utripanja |
| TUI kontrolniki | Vzorec Model+Renderer, stanja, vnos, fokus |
| TUI postavitev | Sidranje, odzivnost, prelomne točke, vsebniki |
| Dokument | Vsebina |
|---|---|
| Pregled QA | Potek dela, matrika profilov, revizijski postopki |
| Kontrolni seznam Core | Production-Ready, obravnava napak, beleženje |
| Varnostni kontrolni seznam | KRITIS/NIS2, OWASP, Crypto |
| Kontrolni seznam kakovosti kode | Poimenovanje, funkcije, DRY, SSOT |
| Standardi komentiranja | PasDoc, Doc-Comments, pregled |
| Kontrolni seznam VSCode | Specifično za razširitve, pas2js |
| Dokument | Vsebina |
|---|---|
| Core API | Skupne storitve, dostop do orodij |
| Meta API | Register komponent, IntelliSense ponudnik |
| VSCode Wrapper | Enote WvdS.VSCode.* |
| Dokument | Vsebina |
|---|---|
| Katalog kontrolnikov | Vseh 108 kontrolnikov z DevExpress preslikavo |
| Arhitektura kontrolnikov | Vzorec Properties/ViewInfo/Control |
| Ustvarjanje VSIX | Ročno ustvarjanje razširitve kontrolnika |
| Generiranje kontrolnikov | Serijsko generiranje s PowerShell |
| Dokument | Vsebina |
|---|---|
| Osnovni kontrolniki | Label, Button, CheckBox, itd. (12) |
| Urejevalniki | TextEdit, SpinEdit, DateEdit, itd. (18) |
| Navigacija | TabControl, Wizard, NavBar, itd. (7) |
| Podatkovni kontrolniki | DataGrid, TreeList, PivotGrid, itd. (10) |
| Grafikoni | LineSeries, PieSeries, Sparkline, itd. (16) |
| Merilniki | CircularGauge, LED, Thermometer, itd. (10) |
| Postavitev | LayoutControl, DockingManager, itd. (10) |
| Vrstice/Trak | RibbonControl, StatusBar, itd. (10) |
| Specializirani | Scheduler, Spreadsheet, Map, itd. (15) |
# Kloniraj repozitorij git clone https://github.com/ArmandoFilho/WvdS.FPC.git cd WvdS.FPC # Odpri VS Code code .
Zahtevano:
Opcijsko:
cd sources/extensions/wvds.vscode.core pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
F5 v VS Code za zagon Extension Development HostWVDS: Hello za testiranjeWvdS.FPC/
├── sources/ # SSOT - Verzionirano
│ ├── common/ # Skupne enote
│ │ ├── core/ # Osnovne enote
│ │ ├── ui/ # UI ogrodje
│ │ └── web/ # Host Bridges (Node, VSCode)
│ ├── extensions/ # VSIX razširitve
│ │ ├── wvds.vscode.core/
│ │ ├── wvds.vscode.build/
│ │ ├── wvds.vscode.projects/
│ │ ├── wvds.vscode.packaging/
│ │ ├── wvds.vscode.ui.designer/
│ │ ├── wvds.vscode.ui.meta/
│ │ └── wvds.vscode.ui.preview/
│ ├── applications/ # Samostojne aplikacije
│ ├── tools/ # CLI orodja (wvds-build, itd.)
│ └── packages/ # IDE paketi
│
├── binaries/ # Izhod gradnje (ni verzionirano)
│ ├── out/ # Prevedeni artefakti
│ ├── cache/ # Predpomnilnik prevajalnika
│ ├── dist/ # Izdajni paketi
│ └── logs/ # Dnevniki gradnje
│
└── .claude/ # Konfiguracija Claude
└── CLAUDE.md # Pravila repozitorija
Ta pravila so neizpogajljiva in jih preverja wvds-lint:
DOVOLJENO: sources/common/WvdS.System.pas PREPOVEDANO: sources/extensions/wvds.vscode.core/WvdS.System.pas (Dvojnik!)
DOVOLJENO: *.pas -> pas2js -> *.js PREPOVEDANO: *.ts, ročno napisan *.js
DOVOLJENO: sources/common/web/vscode/VSCode.API.pas PREPOVEDANO: sources/extensions/wvds.vscode.build/VSCode.API.pas
dist/extension_main.js mora vsebovati vse potrebne enote