====== 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 [[..:p:start|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 ====
* **Bez TypeScripta** - Sve Extensions su bazirane na Pascalu
* **SSOT** - Single Source of Truth u ''sources/''
* **Separation of Concerns** - Striktna slojevita arhitektura
* **KRITIS/NIS2-sukladnost** - Sigurnost kao temeljni zahtjev
===== Indeks dokumentacije =====
==== Arhitektura ====
^ Dokument ^ Sadržaj ^
| [[.:architektur|Pregled arhitekture]] | Monorepo-struktura, slojevi, ovisnosti |
| [[.:umgebung|Razvojno okruženje]] | Struktura projekta, putanje, SSOT-pravila |
| [[.:pxaml-pipeline|PXAML-Pipeline]] | Markup u IR u Renderer |
| [[.:extension-architektur|Extension-arhitektura]] | Entry Points, Activation, Services |
| [[.:targets|Build-Targets]] | GUI, TUI, Web - razlike i zajedničke značajke |
==== Razvoj ====
^ Dokument ^ Sadržaj ^
| [[.:extension-entwicklung|Razvoj Extensiona]] | Kreiranje novog Extensiona, Best Practices |
| [[.:control-entwicklung|Razvoj Controla]] | 7-koračni workflow za UI-Controls |
| [[.:code-konventionen|Konvencije koda]] | Naming, struktura, dokumentacija |
| [[.:sicherheit|Sigurnosne smjernice]] | OWASP, KRITIS, Audit |
| [[.:i18n|Internacionalizacija]] | Resourcestrings, prijevodi |
| [[.:debugging|Debugging]] | Debug-Logging, analiza grešaka |
==== Build i Release ====
^ Dokument ^ Sadržaj ^
| [[.:build-pipeline|Build-Pipeline]] | pas2js-kompilacija, Toolchain CLI, artefakti |
| [[.:pack-struktur|Pack-Struktura]] | Paketi trećih strana, manifesti, distribucija |
| [[.:testing|Testing]] | Unit-Tests, Integration-Tests |
| [[.:release|Release-Proces]] | Verzioniranje, VSIX-kreiranje, Publishing |
==== TUI-Razvoj ====
^ Dokument ^ Sadržaj ^
| [[.:tui-entwicklung|TUI-Pregled]] | Arhitektura, zahtjevi kvalitete, kada koristiti TUI |
| [[.:tui-engine|TUI Engine]] | CellBuffer, DiffEngine, Flicker-free Rendering |
| [[.:tui-controls|TUI Controls]] | Model+Renderer Pattern, States, Input, Focus |
| [[.:tui-layout|TUI Layout]] | Anchoring, Responsive, Breakpoints, Container |
==== Osiguranje kvalitete ====
^ Dokument ^ Sadržaj ^
| [[.:qualitaetssicherung|QA-Pregled]] | Workflow, Profil-Matrica, Audit-Procesi |
| [[.:audit-core|Core-Checklista]] | Production-Ready, Error Handling, Logging |
| [[.:audit-sicherheit|Sigurnosna checklista]] | KRITIS/NIS2, OWASP, Crypto |
| [[.:audit-codequalitaet|Checklista kvalitete koda]] | Naming, Functions, DRY, SSOT |
| [[.:kommentierung|Standardi komentiranja]] | PasDoc, Doc-Comments, Review |
| [[.:audit-vscode|VSCode-Checklista]] | Extension-specifično, pas2js |
==== API-Referenca ====
^ Dokument ^ Sadržaj ^
| [[.:core-api|Core API]] | Shared Services, pristup Toolchainu |
| [[.:meta-api|Meta API]] | Komponenten-Registry, IntelliSense-Provider |
| [[.:vscode-wrapper|VSCode Wrapper]] | WvdS.VSCode.* Units |
==== Control-Biblioteka ====
^ Dokument ^ Sadržaj ^
| [[.:control-bibliothek|Control-Katalog]] | Svih 108 Controls s DevExpress-Mappingom |
| [[.:control-architektur|Control-Arhitektura]] | Properties/ViewInfo/Control Pattern |
| [[.:control-vsix-erstellen|Kreiranje VSIX-a]] | Ručno kreiranje Control Extensiona |
| [[.:control-generierung|Generiranje Controla]] | Batch-generiranje s PowerShellom |
==== Control API-Referenca ====
^ Dokument ^ Sadržaj ^
| [[.:api-controls-basic|Basic Controls]] | Label, Button, CheckBox, itd. (12) |
| [[.:api-controls-editors|Editor Controls]] | TextEdit, SpinEdit, DateEdit, itd. (18) |
| [[.:api-controls-navigation|Navigation]] | TabControl, Wizard, NavBar, itd. (7) |
| [[.:api-controls-data|Data Controls]] | DataGrid, TreeList, PivotGrid, itd. (10) |
| [[.:api-controls-charts|Charts]] | LineSeries, PieSeries, Sparkline, itd. (16) |
| [[.:api-controls-gauges|Gauges]] | CircularGauge, LED, Thermometer, itd. (10) |
| [[.:api-controls-layout|Layout]] | LayoutControl, DockingManager, itd. (10) |
| [[.:api-controls-bars|Bars/Ribbon]] | RibbonControl, StatusBar, itd. (10) |
| [[.:api-controls-specialized|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:
* Free Pascal Compiler 3.2.2+
* pas2js 2.2.0+
* Node.js 18+ (za vsce)
* VS Code 1.85.0+
Opcionalno:
* lazbuild (za LCL-projekte)
* Inno Setup (za Windows-Installer)
==== 3. Prva kompilacija ====
cd sources/extensions/wvds.vscode.core
pas2js -Jc -Jirtl.js -Tbrowser -Fu../../common -FE./dist extension_main.pas
==== 4. Testiranje Extensiona ====
- ''F5'' u VS Code za pokretanje Extension Development Hosta
- Otvara se novi VS Code-prozor s učitanim Extensionima
- 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 =====
* **Repozitorij:** [[https://github.com/ArmandoFilho/WvdS.FPC|github.com/ArmandoFilho/WvdS.FPC]]
* **Issues:** [[https://github.com/ArmandoFilho/WvdS.FPC/issues|Bug Reports i Feature Requests]]
* **Code Review:** Pull Requests putem GitHuba
===== Sljedeći koraci =====
* [[.:architektur|Razumijevanje arhitekture u detalje]]
* [[.:extension-entwicklung|Razvoj prvog Extensiona]]
* [[.:code-konventionen|Usvajanje konvencija koda]]