The attribute plugin is not available, 2fa disabled
Inhaltsverzeichnis
Development Environment
Overview of the project structure and important paths for WvdS FPC RAD Studio.
Tilde (~) represents the repository root (e.g.
%WORKSPACE%/WvdS.FPC). All paths use forward slashes.
Project Structure
~/ ├── sources/ # SSOT - version controlled (SVN) │ ├── common/ # Shared Units/Libs (FPC + pas2js) │ │ ├── core/ # Base units (no UI) │ │ ├── ui/ # UI Framework │ │ │ ├── controls/ # Base controls │ │ │ ├── components/ # Composite components │ │ │ ├── runtime/ # PXAML Runtime │ │ │ └── targets/ # Renderers (tui/gui/web) │ │ └── web/ # Host Bridges (pas2js only) │ │ ├── nodejs/ # Node.js APIs │ │ └── vscode/ # VSCode Extension APIs │ ├── extensions/ # VSIX Packs │ ├── applications/ # Products/Demos │ ├── tools/ # wvds-build, pxamlc │ └── packages/ # IDE Packages │ ├── binaries/ # Build Outputs - NOT version controlled │ ├── out/ # Build outputs │ ├── cache/ # Compiler caches │ ├── dist/ # Release artifacts (.vsix) │ └── logs/ # Build reports, debug logs │ └── assets/ # Static assets
Project Paths
| Variable | Path | Description |
|---|---|---|
~ | Repository root | %WORKSPACE%/WvdS.FPC |
~/sources | Source code | Single Source of Truth |
~/sources/common | Shared code | FPC + pas2js compatible |
~/sources/extensions | VSIX Extensions | VSCode packages |
~/sources/applications | Applications | RAD Suite, Demos |
~/binaries | Build output | Disposable, regenerable |
~/binaries/dist | Release | .vsix, installers |
~/binaries/logs | Logs | Build reports, debug logs |
~/assets | Assets | Icons, templates |
Environment Variables
These variables are placeholders and must be adapted to the local development environment. Absolute paths should be avoided in configuration files.
| Variable | Default Value | Description |
|---|---|---|
%LAZARUS% | Lazarus installation | e.g. C:\Lazarus or /opt/lazarus |
%PROGRAMFILES% | Program Files | Windows: C:\Program Files |
%USERPROFILE% | User directory | Windows: C:\Users\{name}, Linux: ~ |
%WORKSPACE% | Working directory | User-defined, e.g. E:\Workspace |
Compiler and Toolchain
| Variable | Relative Path | Description |
|---|---|---|
| FPC | %LAZARUS%/fpc/3.3.1/bin | Free Pascal Compiler |
| FPC-SRC | %LAZARUS%/fpc/3.3.1/source | FPC Source code |
| PAS2JS | %LAZARUS%/fpc/3.3.1/bin/pas2js.exe | Pascal to 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 |
External References
These paths are optional and only relevant for developers who want to study reference implementations.
| Variable | Relative Path | Description |
|---|---|---|
| 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 Source code |
| VSCODE-SRC | %WORKSPACE%/3rd/vscode-main | VSCode Source code |
Documentation
| Variable | Relative Path | Description |
|---|---|---|
| DOKUWIKI | %DOKUWIKI_DATA%/pages/de/int/vsce/fpc | DokuWiki Pages |
| SKILLS | %WORKSPACE%/WvdS.Rihtlinien | Skill definitions |
SSOT Rules
Single Source of Truth - These rules are binding!
~/sources/is the only source for version-controlled code~/binaries/is completely disposable and regenerable- Never duplicate runtime code in
~/sources/extensions/ - Never commit generated files to
~/sources/
Build Output Structure
~/binaries/out/{app}/{target}/{mode}/
├── gen/ # Generated code (ui.generated.pas)
├── bin/ # Executables / JS Bundle
├── assets/ # PXAML, Images, Themes
├── build-plan.json # Build configuration
└── build-report.md # Build log
| Target | Compiler | Output |
|---|---|---|
tui | FPC | Native Console (Windows/Linux) |
gui | FPC | Native Desktop (LCL/WinAPI) |
web | pas2js | JavaScript Bundle |
| Mode | Description |
|---|---|
debug | Debug symbols, no optimization |
release | Optimized, stripped symbols |
profile | Release + Profiling |
Extension Structure
~/sources/extensions/wvds.vscode.{name}/
├── pas/
│ ├── extension_main.pas # Entry Point (REQUIRED)
│ ├── {Feature}.Models.pas # Data structures
│ ├── {Feature}.Service.pas # Business logic
│ └── {Feature}.Dialog.pas # UI (optional)
│
├── dist/
│ ├── extension_main.js # Compiled JS
│ └── extension_main.js.map # Source Map
│
├── templates/ # WebView Templates
├── images/ # Icons
├── package.json # VSCode Manifest
├── build.cfg # Build configuration
└── README.md # Documentation
See Also
Zuletzt geändert: on 2026/01/29 at 10:25 PM