====== 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]]