Razvojno okolje
Pregled projektne strukture in pomembnih poti za WvdS FPC RAD Studio.
Tilda (~) predstavlja korensko mapo repozitorija (npr. %WORKSPACE%/WvdS.FPC). Vse poti uporabljajo poševnice naprej.
Projektna struktura
~/
├── sources/ # SSOT - verzioniran (SVN)
│ ├── common/ # Deljene enote/knjižnice (FPC + pas2js)
│ │ ├── core/ # Osnovne enote (brez UI)
│ │ ├── ui/ # UI ogrodje
│ │ │ ├── controls/ # Osnovni kontrolniki
│ │ │ ├── components/ # Sestavljene komponente
│ │ │ ├── runtime/ # PXAML izvajalno okolje
│ │ │ └── targets/ # Upodabljalniki (tui/gui/web)
│ │ └── web/ # Mostovi gostitelja (samo pas2js)
│ │ ├── nodejs/ # Node.js API-ji
│ │ └── vscode/ # VSCode Extension API-ji
│ ├── extensions/ # VSIX paketi
│ ├── applications/ # Produkti/Demo aplikacije
│ ├── tools/ # wvds-build, pxamlc
│ └── packages/ # IDE paketi
│
├── binaries/ # Izhodne datoteke gradnje - NISO verzioniran
│ ├── out/ # Izhodne datoteke gradnje
│ ├── cache/ # Predpomnilnik prevajalnika
│ ├── dist/ # Izdajni artefakti (.vsix)
│ └── logs/ # Poročila gradnje, razhroščevalni dnevniki
│
└── assets/ # Statični viri
Projektne poti
| Spremenljivka | Pot | Opis |
~ | Korenski imenik repozitorija | %WORKSPACE%/WvdS.FPC |
~/sources | Izvorna koda | Edini vir resnice |
~/sources/common | Deljena koda | Združljiva s FPC + pas2js |
~/sources/extensions | VSIX razširitve | VSCode paketi |
~/sources/applications | Aplikacije | RAD Suite, Demo aplikacije |
~/binaries | Izhod gradnje | Odvržljivo, ponovno generirano |
~/binaries/dist | Izdaja | .vsix, namestitveni programi |
~/binaries/logs | Dnevniki | Poročila gradnje, razhroščevalni dnevniki |
~/assets | Viri | Ikone, predloge |
Okoljske spremenljivke
Te spremenljivke so nadomestki in jih je treba prilagoditi lokalnemu razvojnemu okolju. Absolutne poti se je treba izogibati v konfiguracijskih datotekah.
| Spremenljivka | Privzeta vrednost | Opis |
%LAZARUS% | Namestitev Lazarusa | npr. C:\Lazarus ali /opt/lazarus |
%PROGRAMFILES% | Program Files | Windows: C:\Program Files |
%USERPROFILE% | Uporabniški imenik | Windows: C:\Users\{ime}, Linux: ~ |
%WORKSPACE% | Delovni imenik | Po meri uporabnika, npr. E:\Workspace |
Prevajalnik in orodna veriga
| Spremenljivka | Relativna pot | Opis |
| FPC | %LAZARUS%/fpc/3.3.1/bin | Free Pascal Compiler |
| FPC-SRC | %LAZARUS%/fpc/3.3.1/source | FPC izvorna koda |
| PAS2JS | %LAZARUS%/fpc/3.3.1/bin/pas2js.exe | Pascal v 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 vezave |
| P2J-VSCODE | %LAZARUS%/fpc/pas2js-windows-2.2.0/packages/vscode | VSCode vezave |
Zunanje reference
Te poti so opcijske in relevantne samo za razvijalce, ki želijo preučevati referenčne implementacije.
| Spremenljivka | Relativna pot | 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 izvorna koda |
| VSCODE-SRC | %WORKSPACE%/3rd/vscode-main | VSCode izvorna koda |
Dokumentacija
| Spremenljivka | Relativna pot | Opis |
| DOKUWIKI | %DOKUWIKI_DATA%/pages/de/int/vsce/fpc | DokuWiki strani |
| SKILLS | %WORKSPACE%/WvdS.Rihtlinien | Definicije veščin |
SSOT pravila
Edini vir resnice - Ta pravila so obvezujoča!
~/sources/ je edini vir za verzionno kodo
~/binaries/ je popolnoma odvržljiv in ponovno generirani
Nikoli ne podvajajte izvajalne kode v ~/sources/extensions/
Nikoli ne potrjujte generiranih datotek v ~/sources/
Struktura izhodnih datotek gradnje
~/binaries/out/{app}/{target}/{mode}/
├── gen/ # Generirana koda (ui.generated.pas)
├── bin/ # Izvršljive datoteke / JS paket
├── assets/ # PXAML, slike, teme
├── build-plan.json # Konfiguracija gradnje
└── build-report.md # Protokol gradnje
| Cilj | Prevajalnik | Izhod |
tui | FPC | Naravna konzola (Windows/Linux) |
gui | FPC | Naravna namizna aplikacija (LCL/WinAPI) |
web | pas2js | JavaScript paket |
| Način | Opis |
debug | Razhroščevalni simboli, brez optimizacije |
release | Optimizirano, odstranjeni simboli |
profile | Release + profiliranje |
Struktura razširitve
~/sources/extensions/wvds.vscode.{name}/
├── pas/
│ ├── extension_main.pas # Vstopna točka (OBVEZNO)
│ ├── {Feature}.Models.pas # Podatkovne strukture
│ ├── {Feature}.Service.pas # Poslovna logika
│ └── {Feature}.Dialog.pas # UI (opcijsko)
│
├── dist/
│ ├── extension_main.js # Prevedeni JS
│ └── extension_main.js.map # Izvorna karta
│
├── templates/ # WebView predloge
├── images/ # Ikone
├── package.json # VSCode manifest
├── build.cfg # Konfiguracija gradnje
└── README.md # Dokumentacija
Glejte tudi