Inhaltsverzeichnis

WvdS FPC RAD Studio - Dokumentacija za razvojne programere

Interna dokumentacija za razvojne programere WvdS FPC RAD Suite

Ova dokumentacija je za interne razvojne programere suite, ne za korisnike. Za korisničku dokumentaciju pogledajte Public Documentation.

Pregled

WvdS FPC RAD Studio je Extension-Suite za Visual Studio Code, koja je u potpunosti napisana u Pascalu i transpilirana u JavaScript pomoću pas2js.

Temeljna načela

Indeks dokumentacije

Arhitektura

Dokument Sadržaj
Pregled arhitekture Monorepo-struktura, slojevi, ovisnosti
Razvojno okruženje Struktura projekta, putanje, SSOT-pravila
PXAML-Pipeline Markup u IR u Renderer
Extension-arhitektura Entry Points, Activation, Services
Build-Targets GUI, TUI, Web - razlike i zajedničke značajke

Razvoj

Dokument Sadržaj
Razvoj Extensiona Kreiranje novog Extensiona, Best Practices
Razvoj Controla 7-koračni workflow za UI-Controls
Konvencije koda Naming, struktura, dokumentacija
Sigurnosne smjernice OWASP, KRITIS, Audit
Internacionalizacija Resourcestrings, prijevodi
Debugging Debug-Logging, analiza grešaka

Build i Release

Dokument Sadržaj
Build-Pipeline pas2js-kompilacija, Toolchain CLI, artefakti
Pack-Struktura Paketi trećih strana, manifesti, distribucija
Testing Unit-Tests, Integration-Tests
Release-Proces Verzioniranje, VSIX-kreiranje, Publishing

TUI-Razvoj

Dokument Sadržaj
TUI-Pregled Arhitektura, zahtjevi kvalitete, kada koristiti TUI
TUI Engine CellBuffer, DiffEngine, Flicker-free Rendering
TUI Controls Model+Renderer Pattern, States, Input, Focus
TUI Layout Anchoring, Responsive, Breakpoints, Container

Osiguranje kvalitete

Dokument Sadržaj
QA-Pregled Workflow, Profil-Matrica, Audit-Procesi
Core-Checklista Production-Ready, Error Handling, Logging
Sigurnosna checklista KRITIS/NIS2, OWASP, Crypto
Checklista kvalitete koda Naming, Functions, DRY, SSOT
Standardi komentiranja PasDoc, Doc-Comments, Review
VSCode-Checklista Extension-specifično, pas2js

API-Referenca

Dokument Sadržaj
Core API Shared Services, pristup Toolchainu
Meta API Komponenten-Registry, IntelliSense-Provider
VSCode Wrapper WvdS.VSCode.* Units

Control-Biblioteka

Dokument Sadržaj
Control-Katalog Svih 108 Controls s DevExpress-Mappingom
Control-Arhitektura Properties/ViewInfo/Control Pattern
Kreiranje VSIX-a Ručno kreiranje Control Extensiona
Generiranje Controla Batch-generiranje s PowerShellom

Control API-Referenca

Dokument Sadržaj
Basic Controls Label, Button, CheckBox, itd. (12)
Editor Controls TextEdit, SpinEdit, DateEdit, itd. (18)
Navigation TabControl, Wizard, NavBar, itd. (7)
Data Controls DataGrid, TreeList, PivotGrid, itd. (10)
Charts LineSeries, PieSeries, Sparkline, itd. (16)
Gauges CircularGauge, LED, Thermometer, itd. (10)
Layout LayoutControl, DockingManager, itd. (10)
Bars/Ribbon RibbonControl, StatusBar, itd. (10)
Specialized Scheduler, Spreadsheet, Map, itd. (15)

Brzi početak za nove razvojne programere

1. Postavljanje razvojnog okruženja

# Kloniranje repozitorija
git clone https://github.com/ArmandoFilho/WvdS.FPC.git
cd WvdS.FPC
 
# Otvaranje VS Code
code .

2. Instalacija alata

Potrebno:

Opcionalno:

3. Prva kompilacija

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

4. Testiranje Extensiona

  1. F5 u VS Code za pokretanje Extension Development Hosta
  2. Otvara se novi VS Code-prozor s učitanim Extensionima
  3. Paleta naredbi: WVDS: Hello za testiranje

Struktura repozitorija

WvdS.FPC/
├── sources/                    # SSOT - Verzionirano
│   ├── common/                 # Shared Units
│   │   ├── core/               # Bazne Units
│   │   ├── ui/                 # UI Framework
│   │   └── web/                # Host Bridges (Node, VSCode)
│   ├── extensions/             # VSIX Extensions
│   │   ├── 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/           # Standalone-aplikacije
│   ├── tools/                  # CLI-Tools (wvds-build, itd.)
│   └── packages/               # IDE-Packages
│
├── binaries/                   # Build-Output (nije verzionirano)
│   ├── out/                    # Kompilirani artefakti
│   ├── cache/                  # Compiler-Cache
│   ├── dist/                   # Release-paketi
│   └── logs/                   # Build-Logs
│
└── .claude/                    # Claude-Konfiguracija
    └── CLAUDE.md               # Repo-pravila

Policy-pravila

Ova pravila su nepregovarajuća i provjerava ih wvds-lint:

P0: Single Source of Truth

DOZVOLJENO:   sources/common/WvdS.System.pas
ZABRANJENO:   sources/extensions/wvds.vscode.core/WvdS.System.pas (Duplikat!)

P1: Bez TypeScripta

DOZVOLJENO:   *.pas -> pas2js -> *.js
ZABRANJENO:   *.ts, ručno pisani *.js

P2: Wrapperi samo u common

DOZVOLJENO:   sources/common/web/vscode/VSCode.API.pas
ZABRANJENO:   sources/extensions/wvds.vscode.build/VSCode.API.pas

P3: Self-contained Output

dist/extension_main.js mora sadržavati sve potrebne Units

Kontakti

Sljedeći koraci