WvdS FPC RAD Studio - Dokumentacija za razvijalce

Interna dokumentacija za razvijalce WvdS FPC RAD Suite

Ta dokumentacija je namenjena internim razvijalcem paketa, ne uporabnikom. Za uporabniško dokumentacijo glejte Javna dokumentacija.

Pregled

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.

Temeljna načela

  • Brez TypeScript - Vse razširitve temeljijo na Pascalu
  • SSOT - Enoten vir resnice v sources/
  • Ločevanje odgovornosti - Stroga slojevita arhitektura
  • Skladnost s KRITIS/NIS2 - Varnost kot osnovna zahteva

Kazalo dokumentacije

Arhitektura

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

Razvoj

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

Gradnja in izdaja

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

Razvoj TUI

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

Zagotavljanje kakovosti

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

API referenca

Dokument Vsebina
Core API Skupne storitve, dostop do orodij
Meta API Register komponent, IntelliSense ponudnik
VSCode Wrapper Enote WvdS.VSCode.*

Knjižnica kontrolnikov

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

API referenca kontrolnikov

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)

Hiter začetek za nove razvijalce

1. Nastavitev razvojnega okolja

# Kloniraj repozitorij
git clone https://github.com/ArmandoFilho/WvdS.FPC.git
cd WvdS.FPC
 
# Odpri VS Code
code .

2. Namestitev orodij

Zahtevano:

  • Free Pascal Compiler 3.2.2+
  • pas2js 2.2.0+
  • Node.js 18+ (za vsce)
  • VS Code 1.85.0+

Opcijsko:

  • lazbuild (za LCL projekte)
  • Inno Setup (za Windows namestitvene programe)

3. Prvo prevajanje

cd sources/extensions/wvds.vscode.core
pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas

4. Testiranje razširitve

  1. F5 v VS Code za zagon Extension Development Host
  2. Odpre se novo okno VS Code z naloženimi razširitvami
  3. Ukazna paleta: WVDS: Hello za testiranje

Struktura repozitorija

WvdS.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

Pravila politike

Ta pravila so neizpogajljiva in jih preverja wvds-lint:

P0: Enoten vir resnice

DOVOLJENO:   sources/common/WvdS.System.pas
PREPOVEDANO:  sources/extensions/wvds.vscode.core/WvdS.System.pas (Dvojnik!)

P1: Brez TypeScript

DOVOLJENO:   *.pas -> pas2js -> *.js
PREPOVEDANO:  *.ts, ročno napisan *.js

P2: Wrapperji samo v common

DOVOLJENO:   sources/common/web/vscode/VSCode.API.pas
PREPOVEDANO:  sources/extensions/wvds.vscode.build/VSCode.API.pas

P3: Samostojen izhod

dist/extension_main.js mora vsebovati vse potrebne enote

Kontakti

Naslednji koraki

Zuletzt geändert: dne 29.01.2026 ob 22:07