Razvojno okruženje
Pregled strukture projekta i važnih putanja za WvdS FPC RAD Studio.
Tilda (~) predstavlja korijen repozitorija (npr. %WORKSPACE%/WvdS.FPC). Sve putanje koriste Forward-Slasheve.
Struktura projekta
~/
├── sources/ # SSOT - verzionirano (SVN)
│ ├── common/ # Shared Units/Libs (FPC + pas2js)
│ │ ├── core/ # Bazne Units (bez UI)
│ │ ├── ui/ # UI Framework
│ │ │ ├── controls/ # Bazni Controls
│ │ │ ├── components/ # Composite Components
│ │ │ ├── runtime/ # PXAML Runtime
│ │ │ └── targets/ # Renderer (tui/gui/web)
│ │ └── web/ # Host Bridges (samo pas2js)
│ │ ├── nodejs/ # Node.js APIs
│ │ └── vscode/ # VSCode Extension APIs
│ ├── extensions/ # VSIX Packs
│ ├── applications/ # Proizvodi/Demos
│ ├── tools/ # wvds-build, pxamlc
│ └── packages/ # IDE Packages
│
├── binaries/ # Build Outputs - NIJE verzionirano
│ ├── out/ # Build outputs
│ ├── cache/ # Compiler caches
│ ├── dist/ # Release artifacts (.vsix)
│ └── logs/ # Build reports, debug logs
│
└── assets/ # Statički assets
Putanje projekta
| Varijabla | Putanja | Opis |
~ | Korijen repozitorija | %WORKSPACE%/WvdS.FPC |
~/sources | Izvorni kod | Single Source of Truth |
~/sources/common | Shared Code | FPC + pas2js kompatibilan |
~/sources/extensions | VSIX Extensions | VSCode paketi |
~/sources/applications | Aplikacije | RAD Suite, Demos |
~/binaries | Build Output | Može se izbrisati, regenerabilno |
~/binaries/dist | Release | .vsix, Installer |
~/binaries/logs | Logs | Build-Reports, Debug-Logs |
~/assets | Assets | Icons, Templates |
Varijable okruženja
Ove varijable su placeholder i moraju se prilagoditi lokalnom razvojnom okruženju. Apsolutne putanje treba izbjegavati u konfiguracijskim datotekama.
| Varijabla | Standardna vrijednost | Opis |
%LAZARUS% | Lazarus-instalacija | npr. C:\Lazarus ili /opt/lazarus |
%PROGRAMFILES% | Program Files | Windows: C:\Program Files |
%USERPROFILE% | Korisnički direktorij | Windows: C:\Users\{name}, Linux: ~ |
%WORKSPACE% | Radni direktorij | Korisnički definirano, npr. E:\Workspace |
| Varijabla | Relativna putanja | Opis |
| FPC | %LAZARUS%/fpc/3.3.1/bin | Free Pascal Compiler |
| FPC-SRC | %LAZARUS%/fpc/3.3.1/source | FPC izvorni kod |
| PAS2JS | %LAZARUS%/fpc/3.3.1/bin/pas2js.exe | Pascal u JavaScript |
| P2J-RTL | %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/rtl | pas2js RTL |
| P2J-NODE | %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/nodejs | Node.js Bindings |
| P2J-VSCODE | %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/vscode | VSCode Bindings |
Vanjske reference
Ove putanje su opcionalne i relevantne samo za razvojne programere koji žele proučavati referentne implementacije.
| Varijabla | Relativna putanja | Opis |
| DXVCL | %WORKSPACE%/3rd/DevExpress/VCL | DevExpress VCL (Delphi) |
| DXNET | %PROGRAMFILES%/DevExpress 25.1/Components/Sources | DevExpress .NET |
| NODEJS-SRC | %WORKSPACE%/3rd/node-main | Node.js izvorni kod |
| VSCODE-SRC | %WORKSPACE%/3rd/vscode-main | VSCode izvorni kod |
Dokumentacija
| Varijabla | Relativna putanja | Opis |
| DOKUWIKI | %DOKUWIKI_DATA%/pages/de/int/vsce/fpc | DokuWiki stranice |
| SKILLS | %WORKSPACE%/WvdS.Rihtlinien | Skill-definicije |
SSOT-Pravila
Single Source of Truth - Ova pravila su obavezujuća!
~/sources/ je jedini izvor za verzionirani kod
~/binaries/ se može potpuno izbrisati i regenerirati
Nikada ne duplicirajte Runtime-kod u ~/sources/extensions/
Nikada ne commitajte generirane datoteke u ~/sources/
Build-Output Struktura
~/binaries/out/{app}/{target}/{mode}/
├── gen/ # Generirani kod (ui.generated.pas)
├── bin/ # Izvršne datoteke / JS Bundle
├── assets/ # PXAML, Images, Themes
├── build-plan.json # Build-Konfiguracija
└── build-report.md # Build-Protokol
| Target | Compiler | Output |
tui | FPC | Native Console (Windows/Linux) |
gui | FPC | Native Desktop (LCL/WinAPI) |
web | pas2js | JavaScript Bundle |
| Mode | Opis |
debug | Debug-simboli, bez optimizacije |
release | Optimizirano, strippani simboli |
profile | Release + Profiling |
Extension-Struktura
~/sources/extensions/wvds.vscode.{name}/
├── pas/
│ ├── extension_main.pas # Entry Point (OBAVEZNO)
│ ├── {Feature}.Models.pas # Strukture podataka
│ ├── {Feature}.Service.pas # Poslovna logika
│ └── {Feature}.Dialog.pas # UI (opcionalno)
│
├── dist/
│ ├── extension_main.js # Kompilirani JS
│ └── extension_main.js.map # Source Map
│
├── templates/ # WebView Templates
├── images/ # Icons
├── package.json # VSCode Manifest
├── build.cfg # Build-Konfiguracija
└── README.md # Dokumentacija
Vidi također
Zuletzt geändert: 29.01.2026. u 22:28