Inhaltsverzeichnis
Entwicklungsumgebung
Projektstruktur und Pfade für die WvdS FPC VSCode Extensions.
Projektstruktur
D:\Workspace\repos\sources\WvdS\
├── fpc-core/ # Shared Pascal Library (alle Extensions)
│ ├── core/ # Models, Parser (FpcModels, IssModels, ...)
│ ├── services/ # Platform, WebView, Logger, CliRunner
│ ├── utils/ # Constants, Interop
│ └── build/ # Build-Logik (FpcDirect, BuildTask)
│
├── pas2js/ # pas2js API Bindings (Shared)
│ ├── NodeJS/ # Node.js (FS, Path, ChildProcess, ...)
│ ├── VSCode/ # VSCode Extension API
│ ├── Browser/ # Browser/DOM API
│ └── Components/ # WvdS UI Komponenten
│ ├── Designer/ # Design-Time Renderer
│ ├── Runtime/ # Runtime Renderer (WebView)
│ ├── Data/ # Daten-Komponenten
│ ├── System/Common/ # System-Basis
│ └── GUI/ # GUI-Komponenten
│ ├── Core/Common/ # Basis-Controls
│ ├── Standard/ # Panels, Labels, ...
│ ├── Editors/ # TextEdit, ComboBox, ...
│ ├── Layouts/ # StackPanel, GridPanel
│ ├── Navigation/ # PageControl, Accordion
│ ├── Grids/ # TableView, BandedView, ...
│ ├── Charts/ # Chart-Komponenten
│ └── Gauges/ # Gauge-Komponenten
│
└── vsce/ # VSCode Extensions
├── ci-build.ps1 # CI-Orchestrator
├── wvds-fpc-solution-manager/ # Extension: Solution Manager
│ ├── src-pas/ # Pascal-Quellen
│ │ ├── extension.pas # Entry Point
│ │ ├── tree/ # Tree View Provider
│ │ ├── services/ # Extension Services
│ │ ├── editor/ # WebView Panels
│ │ ├── build/ # Build-Logik
│ │ ├── debug/ # Debug-Adapter
│ │ └── tests/ # Unit-Tests
│ ├── dist/ # Build-Output
│ ├── media/ # Icons, CSS
│ ├── syntaxes/ # TextMate Grammars
│ ├── build.ps1 # Build-Script
│ └── package.json # VSCode Manifest
│
├── wvds-fpc-pas2js-studio/ # Extension: PAS2JS Studio
│ ├── src-pas/ # (gleiche Struktur wie SM)
│ ├── dist/
│ ├── build.ps1
│ └── package.json
│
├── wvds-fpc-iss-designer/ # Extension: ISS Designer
│ ├── src-pas/
│ ├── dist/
│ ├── build.ps1
│ └── package.json
│
└── wvds-fpc-tools/ # Extension Pack (Bundle)
└── package.json # extensionPack Deklaration
Abhängigkeitskette
wvds-fpc-tools (Extension Pack) ├── wvds-fpc-solution-manager ← Basis-Extension (eigenständig lauffähig) ├── wvds-fpc-pas2js-studio ← Abhängig von Solution Manager └── wvds-fpc-iss-designer ← Abhängig von Solution Manager
Shared Code:
Extension (src-pas/)
└── nutzt → fpc-core/ (core, services, utils, build)
└── nutzt → pas2js/ (NodeJS, VSCode, Components)
Compiler und Toolchain
| Tool | Pfad | Beschreibung |
|---|---|---|
| pas2js | C:\Lazarus\fpc\3.3.1\bin\pas2js.exe | Pascal → JavaScript Compiler |
| esbuild | node_modules\.bin\esbuild.cmd | JS Bundler + Minifier |
| vsce | npx @vscode/vsce | VSIX Paketierung |
| FPC | C:\Lazarus\fpc\3.3.1\bin | Free Pascal (für native Tools) |
| FPC Source | C:\Lazarus\fpc\3.3.1\source | FPC Quellcode (Referenz) |
pas2js RTL
| Paket | Pfad |
|---|---|
| RTL | C:\Lazarus\fpc\pas2js-windows-2.2.0\packages\rtl |
| Node.js | C:\Lazarus\fpc\pas2js-windows-2.2.0\packages\nodejs |
Die pas2js-Konfiguration (pas2js.cfg) im Compiler-Verzeichnis definiert die RTL-Pfade automatisch.
Externe Referenzen
Optional — nur für Entwickler die Referenz-Implementierungen studieren möchten.
| Variable | Pfad | Beschreibung |
|---|---|---|
| DXVCL | D:\Workspace\3rd\DevExpress\VCL | DevExpress VCL (Delphi) |
| DXNET | C:\Program Files\DevExpress 25.1\Components\Sources | DevExpress .NET |
| NODEJS_SRC | D:\Workspace\3rd\node-main | Node.js Quellcode |
| VSCODE_SRC | D:\Workspace\3rd\vscode-main | VSCode Quellcode |
| WEZTERM_SRC | D:\Workspace\3rd\wezterm | WezTerm (TUI-Referenz) |
Build-Output
Lokaler Build
{extension}/dist/
├── extension.pas2js.js # Intermediate (pas2js)
├── extension.pas2js.js.map # Source Map (Debug)
├── extension.js # Final Bundle (esbuild)
└── extension.js.map # Bundled Source Map (Debug)
VSIX-Pakete
D:\Workspace\binaries\
├── wvds-fpc-solution-manager\vscode\
│ ├── Debug\*.vsix
│ └── Release\*.vsix
├── wvds-fpc-pas2js-studio\vscode\
│ ├── Debug\*.vsix
│ └── Release\*.vsix
└── nightly\
├── 2026-02-28\ # Tages-Archiv
└── 2026-02-27\
Installierte Extensions
%USERPROFILE%\.vscode\extensions\
├── wvds.wvds-fpc-solution-manager-0.1.0\
│ ├── dist\extension.js ← Deploy-Ziel
│ ├── media\
│ ├── syntaxes\
│ └── package.json
├── wvds.wvds-fpc-pas2js-studio-0.1.0\
│ └── dist\extension.js
├── wvds.wvds-fpc-iss-designer-0.1.0\
│ └── dist\extension.js
└── wvds.wvds-fpc-tools-0.1.0\
└── package.json ← Nur Manifest (Extension Pack)
Dokumentation
| Pfad | Beschreibung |
|---|---|
D:\DokuWikiStick\dokuwiki\data\pages\de\int\vsce\fpc\i\ | Interne Entwickler-Doku |
D:\Workspace\WvdS.Media\ | Icons und Assets |
SSOT-Regeln
Single Source of Truth — Diese Regeln sind verbindlich!
- Pascal-Quellen sind die einzige Codequelle (kein handgeschriebenes JavaScript)
dist/ist komplett wegwerfbar und regenerierbar- Shared Code gehört in
fpc-core/oderpas2js/, nie in eine einzelne Extension - Keine
.tsDateien — alles wird in Object Pascal geschrieben und mit pas2js kompiliert
Siehe auch
Zuletzt geändert: den 28.02.2026 um 21:16