====== FPC Solution Manager ====== Projektmanagement, Build-System, Debugging und Form Designer für Free Pascal / Lazarus in Visual Studio Code. **Package-ID:** ''wvds.wvds-fpc-solution-manager'' ===== Übersicht ===== Der Solution Manager ist die zentrale Extension für die Free-Pascal-Entwicklung in VSCode. Er bietet: * **Tree View** — Hierarchische Darstellung von Projektgruppen, Projekten, Units und Formularen * **Build-System** — Build, Rebuild, Clean über ''lazbuild'' oder FPC Direct * **Form Designer** — Visueller LFM-Editor mit Skin-Unterstützung * **Debugger** — Integriertes Debugging mit ''fpdserver'' / GDB * **Language Server** — Code Completion, Go to Definition, Hover via ''pasls'' * **Code Formatter** — ''ptop'' oder ''jcf'' Integration ===== Projekt-Erkennung ===== Die Extension erkennt automatisch Projekte im geöffneten Workspace: | Datei | Projekttyp | ^ ''.lpi'' | Lazarus-Projekt (Konsole, GUI, Library) | ^ ''.lpg'' | Projektgruppe (mehrere Projekte) | ^ ''.lpk'' | Lazarus-Package | ^ ''package.json'' | VSCode Extension (pas2js, virtuelles Projekt) | ^ ''.iss'' | InnoSetup Installer-Skript | Multi-Root Workspaces werden unterstützt — jeder Workspace-Ordner wird separat gescannt. ===== Tree View ===== Der Tree View erscheint in der Activity Bar (linke Seite) mit dem FPC Solution Manager Icon. ==== Hierarchie ==== Workspace Folder ├── Projektgruppe (.lpg) │ ├── Projekt (.lpi) ← mit Inline Build/Run Buttons │ │ ├── Units (.pas) │ │ ├── Formulare (.pas + .lfm) │ │ ├── Build Modi (Debug, Release, ...) │ │ ├── Dependencies (Required Packages) │ │ └── Resources (.rc) │ └── Projekt 2 ... ├── Package (.lpk) │ ├── Units │ └── Required Packages ├── Extension (package.json) ← Virtuelles pas2js-Projekt │ ├── Units │ └── npm Dependencies └── Setup (.iss) ← InnoSetup Projekt └── Sections ([Files], [Run], ...) ==== Kontextmenü ==== Rechtsklick auf Tree-Elemente zeigt kontextabhängige Aktionen: **Projekt:** * Build / Rebuild / Clean * Build and Run / Run / Stop * Properties (F4) * Select Build Mode * Add Unit / Form / Existing File * Navigate (Dependencies, Call Hierarchy) **Projektgruppe:** * Build All / Rebuild All / Clean All * Set Active Project * Add New/Existing Project **Unit / Form:** * Open File (Enter) * Reveal in File Explorer * Copy Path / Copy Relative Path * Remove from Project * Show Dependencies / Call Hierarchy ==== Editor-Kontextmenü ==== Rechtsklick im Pascal-Editor (''.pas'', ''.pp'', ''.lpr'') zeigt das **FPC Solution Manager** Submenü: * Sort and Remove Unused Units * Show Call Hierarchy * Show Dependency Explorer * Add Watch (nur bei Selektion) ==== Title-Bar Buttons ==== | Button | Aktion | ^ Filter | Baumansicht filtern | ^ New Project | Neues Projekt erstellen | ^ Refresh | Baum neu laden | ^ Open Group | Projektgruppe öffnen | ^ Settings | Extension-Einstellungen | ===== Build-System ===== ==== Build-Modi ==== Jedes Projekt kann mehrere Build-Modi haben: | Modus | Beschreibung | ^ Debug | Debug-Informationen, keine Optimierung | ^ Release | Optimiert, keine Debug-Infos | ^ Custom | Benutzerdefinierte Compiler-Optionen | Build-Modus wechseln: Rechtsklick auf Projekt → **Select Build Mode** oder ''Ctrl+Shift+M''. ==== Build-Kommandos ==== | Kommando | Beschreibung | Tastenkürzel | ^ Build Project | Inkrementeller Build | ''Ctrl+Shift+B'' | ^ Rebuild Project | Vollständiger Neubau | ''Shift+F9'' | ^ Clean Project | Build-Artefakte löschen | ''Ctrl+Shift+C'' | ^ Build and Run | Bauen und starten | ''F9'' | ^ Compile (Syntax Check) | Nur Syntax prüfen, nicht linken | — | ^ Build All | Alle Projekte in der Gruppe bauen | — | ^ Build in Dependency Order | Projekte nach Abhängigkeiten sortiert bauen | — | ==== Build-Backends ==== | Backend | Verwendung | ^ ''lazbuild'' | Standard — nutzt Lazarus Build-System mit LCL-Unterstützung | ^ FPC Direct | Fallback — ruft ''fpc'' direkt auf (wenn kein ''lazbuild'' konfiguriert) | ==== Pre/Post-Build Kommandos ==== In den Settings können Shell-Kommandos definiert werden, die vor/nach jedem Build laufen: fpc-solution-manager.preBuildCommand: "echo Building {projectName} in {buildMode}" fpc-solution-manager.postBuildCommand: "copy {outputPath} D:\\Deploy\\" Verfügbare Variablen: ''{projectName}'', ''{buildMode}'', ''{projectDir}'', ''{outputPath}'' ==== Problem Matcher ==== Compiler-Fehler werden automatisch als VSCode Diagnostics angezeigt. Klick auf einen Fehler springt zur entsprechenden Zeile. Format: ''Datei(Zeile,Spalte) Severity: Nachricht'' ===== Projekte ausführen ===== | Kommando | Tastenkürzel | Beschreibung | ^ Run Project | ''F5'' | Kompiliertes Programm starten | ^ Build and Run | ''F9'' | Bauen und sofort starten | ^ Stop Process | ''Shift+F5'' / ''Ctrl+F2'' | Laufenden Prozess beenden | ==== Ausführungsmodus ==== * **Output Panel** (Standard): Ausgabe im VSCode Output-Kanal * **Terminal**: Für interaktive CLI-Programme mit stdin — aktivieren über ''fpc-solution-manager.runInTerminal'' ==== Run Configuration ==== Über **Select Run Configuration** können Kommandozeilen-Argumente und Arbeitsverzeichnis konfiguriert werden. ===== Debugging ===== ==== Voraussetzungen ==== Der Debugger benötigt ''fpdserver'' (Free Pascal Debug Server) als Backend. **fpdserver beschaffen:** * **Lazarus-Bundle (ab 3.0):** ''fpdserver'' ist bereits enthalten (''/tools/fpdserver'') * **Manuell bauen:** Aus dem FPC-Quellcode: cd /packages/fcl-passrc/utils/fpdserver lazbuild --bm=Release fpdserver.lpi **Konfiguration:** * ''fpc-solution-manager.fpdserverPath'' — Pfad zu ''fpdserver.exe'' (leer = Auto-Erkennung) Ohne ''fpdserver'' funktioniert die Debugging-Integration nicht. Die Extension sucht automatisch im Lazarus-Installationsverzeichnis. ==== launch.json ==== Erstelle eine ''launch.json'' im ''.vscode''-Ordner des Workspace: { "type": "lazarus", "request": "launch", "name": "Debug MyApp", "program": "${command:fpcse2.getExecutablePath}", "cwd": "${workspaceFolder}", "stopOnEntry": false, "args": [] } **Tipp:** ''${command:fpcse2.getExecutablePath}'' ermittelt automatisch den Output-Pfad aus den Projekteinstellungen. ==== Konfigurationsattribute ==== | Attribut | Typ | Beschreibung | Standard | ^ ''program'' | String | Pfad zum kompilierten Programm (erforderlich) | — | ^ ''cwd'' | String | Arbeitsverzeichnis | ''${workspaceFolder}'' | ^ ''args'' | Array | Kommandozeilen-Argumente | ''[]'' | ^ ''stopOnEntry'' | Boolean | Bei Programmstart anhalten | ''false'' | ==== Features ==== * **Breakpoints** in ''.pas'' und ''.inc'' Dateien * **Step In/Out/Over** — Schrittweise Ausführung * **Variables** — Lokale und globale Variablen inspizieren * **Watches** — Ausdrücke überwachen (''Ctrl+Alt+W'' bei Selektion) * **Call Stack** — Aufrufkette anzeigen * **Immediate Window** — Ausdrücke zur Laufzeit auswerten ==== Breakpoints ==== * **Zeilen-Breakpoints** — Klick auf den Zeilenrand in ''.pas'' und ''.inc'' Dateien * **Bedingte Breakpoints** — Rechtsklick auf Breakpoint → ''Edit Breakpoint'' → Bedingung eingeben (z.B. ''i > 100'') * **Hit Count** — Breakpoint nur nach N Treffern auslösen * **Logpoints** — Nachricht in die Konsole ausgeben ohne Programmfluss zu unterbrechen ==== Watches ==== Ausdrücke zur Laufzeit überwachen: * **Hinzufügen:** ''Ctrl+Alt+W'' bei selektiertem Text im Pascal-Editor * **Panel:** Im unteren Bereich unter **FPC Solution Manager → Watches** * **Ausdrücke:** Variablen, Record-Felder (''MyRecord.Field''), Array-Indizes (''MyArray[0]'') ==== Immediate Window ==== Interaktive Auswertung während einer Debug-Sitzung: * **Öffnen:** Panel **FPC Solution Manager → Immediate** * Ausdruck eingeben und ''Enter'' drücken * Unterstützt: Variablenwerte, Typ-Casts, einfache arithmetische Ausdrücke ==== Debug-Panels ==== Im unteren Panel (FPC-Bereich): * **Immediate** — Interaktive Auswertung von Ausdrücken * **Watches** — Überwachte Variablen/Ausdrücke ==== Build-Modus für Debugging ==== Für erfolgreiches Debugging muss das Projekt im **Debug**-Modus gebaut werden: * Build-Modus wechseln: ''Ctrl+Shift+M'' → **Debug** * Debug-Informationen: Compiler-Flags ''-g -gl -gw'' müssen aktiv sein * Optimierung deaktivieren: Keine ''-O2'' im Debug-Modus ==== Fehlerbehebung ==== | Problem | Lösung | ^ fpdserver nicht gefunden | ''fpc-solution-manager.fpdserverPath'' setzen oder ''fpdserver'' bauen (siehe oben) | ^ Breakpoints werden nicht getroffen | Projekt im **Debug**-Modus bauen (''Ctrl+Shift+M'' → Debug) | ^ Variablen nicht sichtbar | Debug-Infos prüfen: ''-g -gl -gw'' müssen im Build-Modus gesetzt sein | ^ Stepping springt unerwartet | Optimierung deaktivieren: ''-O2'' nur im Release-Modus verwenden | ===== Form Designer ===== Der Form Designer öffnet sich automatisch für ''.lfm'' Dateien. ==== Bedienung ==== | Aktion | Tastenkürzel | ^ Toggle Form/Code | ''F12'' | ^ View Form as Text | ''Alt+F12'' | ^ Select Designer Skin | Command Palette | ==== Grid & Snap ==== | Setting | Beschreibung | Standard | ^ ''designer.snapToGrid'' | Komponenten am Raster einrasten | ''true'' | ^ ''designer.gridSize'' | Rastergröße in Pixel | ''8'' | ^ ''designer.showGrid'' | Raster-Punkte anzeigen | ''true'' | ==== Skins ==== Der Designer unterstützt Skins für das visuelle Erscheinungsbild: * ''fpc-solution-manager.designer.skinName'' — Aktiver Skin (z.B. ''WvdS-Shell'') * ''fpc-solution-manager.designer.skinVariant'' — Variante (z.B. ''Amber'', ''Plum'') * ''fpc-solution-manager.designer.defaultSkinAutoDetect'' — Automatische Light/Dark-Erkennung basierend auf VSCode-Theme ==== Zoom ==== ''fpc-solution-manager.designer.zoom'' — Canvas-Zoom 50% bis 400%. ==== Komponenten-Packages ==== Zusätzliche Packages mit eigenen Komponenten können registriert werden: "fpc-solution-manager.designer.componentPackages": [ "D:\\MyComponents\\mywidgets.lpk" ] ==== Custom Form Base Classes ==== Eigene Formular-Basisklassen für **Add Form (Typed)**: "fpc-solution-manager.formBaseClasses": [{ "className": "TWvdSRibbonForm", "description": "WvdS Ribbon GUI Form", "unitName": "WvdS.Forms.Ribbon", "category": "WvdS", "hasOwnLfm": true, "defaultWidth": 1024, "defaultHeight": 768 }] ===== Custom Editors ===== | Editor | Dateityp | Beschreibung | ^ Form Designer | ''.lfm'' | Visueller Lazarus-Formular-Editor | ^ PO Translation Editor | ''.po'' | Übersetzungs-Editor für Lokalisierung | ^ Resource Editor | ''.rc'' | Ressourcen-Editor (Icons, Bitmaps, Strings) | ==== PO Translation Editor ==== Öffnet sich für ''.po'' Dateien (GNU gettext). Bietet: * Tabellarische Ansicht aller Übersetzungseinträge (Original → Übersetzung) * Suche und Filterung nach Schlüssel oder Text * Direkte Bearbeitung der Übersetzungen im WebView-Panel * Änderungen werden in die ''.po'' Datei zurückgeschrieben ==== Resource Editor ==== Öffnet sich für ''.rc'' Dateien. Bietet: * Übersicht aller Ressourcen (Icons, Bitmaps, Cursors, String Tables, Version Info) * Hinzufügen und Entfernen von Ressourcen-Einträgen * Pfade zu Ressourcen-Dateien bearbeiten ===== Language Server (pasls) ===== Optionale Integration des Pascal Language Servers für erweiterte Code-Funktionen. ==== Aktivierung ==== * ''fpc-solution-manager.pasls.enabled'' — ''true'' (Standard) * ''fpc-solution-manager.paslsPath'' — Pfad zu ''pasls.exe'' (leer = Auto-Erkennung) * ''fpc-solution-manager.lazarusSourcePath'' — Lazarus-Quellen für Symbol-Auflösung ==== Features ==== | Feature | Tastenkürzel | Beschreibung | ^ Code Completion | ''Ctrl+Space'' | Vervollständigung von Identifiern, Methoden, Units | ^ Signature Help | automatisch | Parameterliste beim Tippen von ''('' | ^ Go to Definition | ''F12'' | Springt zur Definition/Implementation eines Symbols | ^ Go to Declaration | ''Ctrl+Click'' auf Interface | Springt zur Interface-Deklaration (statt Implementation) | ^ Go to Implementation | ''Ctrl+Shift+F12'' | Springt zur Implementation (delegiert intern an Definition) | ^ Document Symbols | ''Ctrl+Shift+O'' | Symbolliste der aktuellen Datei — Methoden und Prozeduren (Outline) | ^ Workspace Symbols | ''Ctrl+T'' | Symbolsuche über alle Dateien im Workspace | ^ Find All References | ''Shift+F12'' | Alle Verwendungen eines Symbols im Workspace | ^ Document Highlight | automatisch | Hervorhebung aller Vorkommen eines Identifiers in der aktuellen Datei | ^ Hover mit Typ-Info | Mauszeiger | Signatur + PasDoc-Dokumentation + Quellposition (siehe unten) | ==== Hover mit Typ-Info und PasDoc ==== Beim Überfahren eines Symbols mit der Maus zeigt der Hover-Tooltip bis zu drei Informationsebenen: - **Signatur** — Die vollständige Deklaration als syntax-gehighlighteter Pascal Code-Block, extrahiert von CodeTools ''FindSmartHint'' (z.B. ''private procedure TMyClass.DoSomething(const A: Integer): Boolean'') — inklusive Sichtbarkeit, Klassenname, Parameter-Modifier und Rückgabetyp - **PasDoc-Dokumentation** — Kommentare im Format ''(** @abstract(...) @param(...) @returns(...) *)'' direkt aus dem Quellcode, als formatiertes Markdown - **Quellposition** — Dateiname und Zeilenposition der Deklaration (z.B. ''MyUnit.pas(42,5)'') pasls stellt ''textDocument/hover'' bereit und nutzt intern CodeTools ''FindSmartHint'' (dieselbe Engine wie Lazarus IDE) für die Signatur-Extraktion. PasDoc-Kommentare werden über ''GetPasDocComments'' ausgelesen und serverseitig in Markdown formatiert. Falls pasls nicht verfügbar ist, verwendet die Extension ''textDocument/definition'' als Fallback mit client-seitiger Mehrzeilen-Extraktion. **Beispiel-Hover:** ┌───────────────────────────────────────────────────────────┐ │ private procedure TMyClass.DoSomething(const A: Integer); │ ← Signatur (FindSmartHint) │ ───────────────────────────────────────────────────────── │ │ Führt die Aktion aus. │ ← @abstract │ │ │ Parameters: │ │ - A — Der Wert │ ← @param │ ───────────────────────────────────────────────────────── │ │ Source: MyUnit.pas(42,5) │ ← Quellposition └───────────────────────────────────────────────────────────┘ **Unterstützte PasDoc-Tags:** | Tag | Beschreibung | Beispiel | ^ ''@abstract'' | Kurzbeschreibung | ''@abstract(Berechnet die Checksumme)'' | ^ ''@param'' | Parameter-Dokumentation | ''@param(Buffer Die zu prüfenden Daten)'' | ^ ''@returns'' | Rückgabewert | ''@returns(CRC32-Wert als Cardinal)'' | ^ ''@raises'' | Ausnahmen | ''@raises(EInvalidOperation Bei leerem Buffer)'' | PasDoc-Kommentare beginnen mit ''(**'' (doppelter Stern). Normale ''(*'' Kommentare werden nicht als Dokumentation angezeigt. ==== Geplante Features ==== Die folgenden Features erfordern serverseitige Unterstützung durch pasls und sind aktuell noch **nicht verfügbar**: * **Rename Symbol** (''F2'') — Umbenennung eines Symbols über alle Dateien. Erfordert ''textDocument/rename'' in pasls. * **Live Diagnostics** — Fehler und Warnungen beim Tippen. Erfordert tiefere CodeTools-Integration in pasls. Die Extension registriert bereits einen Provider für Rename. Sobald pasls ''textDocument/rename'' unterstützt, funktioniert das Feature automatisch. ==== Workspace Symbols ==== ''Ctrl+T'' öffnet den Workspace Symbol Picker. Hier können Prozeduren, Funktionen, Typen und Variablen über alle Dateien im Workspace gesucht werden. * Tippe einen Suchbegriff ein → pasls liefert passende Symbole * ''Enter'' navigiert direkt zur Definitionsstelle * Leere Suche → leere Liste (kein Absturz) ===== Code Formatter ===== | Setting | Beschreibung | Standard | ^ ''formatter.engine'' | ''ptop'', ''jcf'', oder ''none'' | ''ptop'' | ^ ''formatter.ptopPath'' | Pfad zu ''ptop'' | Auto-Erkennung | ^ ''formatter.jcfPath'' | Pfad zu ''jcf'' | Auto-Erkennung | ^ ''formatter.configPath'' | Konfigurationsdatei (''.ptop.cfg'' / ''.jcf'') | — | ^ ''formatter.formatOnSave'' | Automatisch bei Speichern formatieren | ''false'' | ===== Cross-Compilation (WSL) ===== Linux-Builds auf Windows über WSL (Windows Subsystem for Linux). ==== Voraussetzungen ==== - **WSL installieren:** ''wsl --install'' in PowerShell (Administrator) - **Distribution wählen:** z.B. ''Ubuntu'' (Standard) oder ''Debian'' - **FPC in WSL installieren:** # In WSL: sudo apt install fpc lazarus ==== Aktivierung ==== * ''fpc-solution-manager.wslEnabled'' — ''true'' * ''fpc-solution-manager.wslActiveDistro'' — WSL-Distribution (z.B. ''Ubuntu'') * ''fpc-solution-manager.wslLazbuildPath'' — Linux-Pfad zu ''lazbuild'' (z.B. ''/usr/bin/lazbuild'') * ''fpc-solution-manager.wslFpcPath'' — Linux-Pfad zu ''fpc'' ==== Kommandos ==== * **Select Cross-Compile Target** — Zielplattform wählen (x86_64-linux, i386-linux, aarch64-linux) * **Configure WSL** — WSL-Einstellungen öffnen * **Build for Linux (WSL)** — Linux-Build starten ==== Ablauf ==== - Zielplattform wählen: Rechtsklick auf Projekt → **Select Cross-Compile Target** - Build starten: **Build for Linux (WSL)** oder ''Ctrl+Shift+B'' (wenn WSL-Target aktiv) - Die Extension übergibt den Build an ''lazbuild'' / ''fpc'' innerhalb der WSL-Instanz - Output-Dateien landen im konfigurierten Ausgabepfad ===== Projekt-Wizard ===== Der **Unified Project Wizard** führt in fünf Schritten vom leeren Workspace zum fertigen Projekt: - **Intent wählen:** Neues FPC-Projekt, neues pas2js-Projekt oder bestehendes öffnen - **Toolchain-Check:** Prüft FPC/Lazarus/pas2js Verfügbarkeit (wird übersprungen wenn alles OK) - **Projekttyp wählen:** Filterbarer Karten-Katalog mit 10 Projekttypen - **Konfigurieren:** Name, Speicherort und typspezifische Optionen - **Zusammenfassung:** Vorschau der generierten Dateien, dann Finish ==== Aufruf ==== * **Automatisch:** Beim Öffnen eines leeren Workspace (deaktivierbar über ''autoShowStartWizard'') * **Command Palette:** ''Ctrl+Shift+P'' → ''FPC: New Project...'' * **Welcome View:** Klick auf "New Project Wizard..." im Solution Manager Panel ==== Projekttypen ==== ^ Typ ^ Beschreibung ^ | Application | GUI-Anwendung mit LCL-Formularen | | Console | Konsolen-Anwendung | | Library | Shared Library (.dll / .so) | | Package | Wiederverwendbares Lazarus-Package (.lpk) | | pas2js Web App | Browser-basierte Anwendung mit pas2js | ==== Quick-Shortcut ==== Über ''Ctrl+Shift+P'' → ''New Project...'' steht weiterhin der klassische Projekt-Wizard als Schnellzugriff bereit. ==== Template-Defaults ==== Template-Defaults können in den Settings definiert werden: * ''templates.companyName'' — Firmenname * ''templates.author'' — Autor * ''templates.copyright'' — Copyright-Hinweis ===== Projekt-Eigenschaften ===== Über **Properties** (''F4'') oder Rechtsklick → Properties: ==== General ==== Projektname, Projekttyp, Ausgabepfad, Icon, Version. ==== Paths ==== * Unit Search Paths (''OtherUnitFiles'') * Include Paths * Library Paths ==== Compiler Options ==== Build-Modi mit ihren jeweiligen Compiler-Optionen. ==== Dependencies ==== Required Packages (z.B. LCL, SynEdit, ...). ===== Uses Organizer ===== **Sort and Remove Unused Units** (Rechtsklick im Pascal-Editor): * Entfernt nicht verwendete Units aus ''uses'' * Sortiert ''interface'' und ''implementation'' uses alphabetisch ===== Dependency Explorer ===== **Show Dependencies** — verfügbar im Tree View und im Editor-Kontextmenü: * Zeigt Unit-Abhängigkeiten als Baum * Erkennt zirkuläre Referenzen * Hilft beim Refactoring | Aufruf | Verhalten | ^ Rechtsklick auf Projekt im Tree | Zeigt Projekt-Abhängigkeiten (alle Units und Packages) | ^ Rechtsklick auf Package im Tree | Zeigt Package-Abhängigkeiten | ^ Rechtsklick auf Unit im Tree | Zeigt Unit-Abhängigkeiten (''uses''-Klauseln) | ^ Editor-Kontextmenü → Show Dependencies | Zeigt Abhängigkeiten der aktuell geöffneten Datei | ==== Call Hierarchy ==== **Show Call Hierarchy** — verfügbar im Tree View und im Editor-Kontextmenü: === Aus dem Tree View === Rechtsklick auf eine Unit → **Show Call Hierarchy** öffnet ein WebView-Panel mit: * **Incoming** — Welche Funktionen rufen dieses Symbol auf (Callers) * **Outgoing** — Welche Funktionen ruft dieses Symbol auf (Callees) * Klickbare Einträge navigieren direkt zur Aufrufstelle === Aus dem Editor (Peek-Ansicht) === Rechtsklick im Pascal-Editor → **FPC Solution Manager** → **Show Call Hierarchy** zeigt die Call Hierarchy als **Inline-Peek-Widget** direkt im Editor an (ähnlich wie ''Peek Definition''). Der Cursor muss auf einem Funktions- oder Methodennamen stehen. Die Call Hierarchy (Outgoing Calls) funktioniert über Extension-eigene Analyse. Incoming Calls (Callers) erfordern pasls-Unterstützung für ''textDocument/references'', die aktuell noch nicht verfügbar ist. ===== Projekt-Verwaltung ===== ==== Dateien hinzufügen ==== | Kommando | Beschreibung | ^ Add Unit | Neue Pascal-Unit erstellen und zum Projekt hinzufügen | ^ Add Form | Neues Formular (Unit + LFM) erstellen | ^ Add Form (Typed) | Formular mit benutzerdefinierter Basisklasse | ^ Add Existing File | Bestehende Datei zum Projekt hinzufügen | ^ Add Required Package | Lazarus-Package als Abhängigkeit hinzufügen | ==== Projektgruppen ==== | Kommando | Beschreibung | ^ New Project Group | Neue ''.lpg'' erstellen | ^ Add Project to Group | Bestehendes Projekt hinzufügen | ^ Remove from Group | Projekt aus Gruppe entfernen | ^ Set as Startup Project | Standard-Projekt für Run/Debug festlegen | ===== Tastenkürzel ===== | Kürzel | Aktion | Kontext | ^ ''Ctrl+Shift+B'' | Build Project | Tree View: Projekt | ^ ''F5'' | Run Project | Tree View: Projekt | ^ ''F9'' | Build and Run | Tree View: Projekt | ^ ''Shift+F9'' | Rebuild Project | Tree View: Projekt | ^ ''Ctrl+Shift+C'' | Clean Project | Tree View: Projekt | ^ ''F4'' | Properties | Tree View: Projekt/Package | ^ ''F12'' | Toggle Form/Code | Pascal-Editor / Form Designer | ^ ''Alt+F12'' | View Form as Text | Form Designer | ^ ''Ctrl+Shift+A'' | Add Unit | Tree View: Projekt/Ordner | ^ ''Ctrl+Shift+M'' | Select Build Mode | Tree View: Projekt | ^ ''Ctrl+Shift+R'' | Refresh Tree | Tree View fokussiert | ^ ''Ctrl+Shift+F'' | Filter Tree | Tree View fokussiert | ^ ''Shift+F5'' / ''Ctrl+F2'' | Stop Process | Tree View | ^ ''Alt+Shift+R'' | Reveal in Explorer | Tree View: Unit/Form | ^ ''Enter'' | Open File | Tree View: Unit/Form | ^ ''Ctrl+Alt+W'' | Add Watch | Pascal-Editor mit Selektion | ===== Einstellungen (Übersicht) ===== Alle Einstellungen beginnen mit ''fpc-solution-manager.'': ==== Tool Paths ==== ^ Setting ^ Beschreibung ^ | ''lazbuildPath'' | Pfad zu ''lazbuild'' | | ''fpcPath'' | Pfad zu ''fpc'' | | ''lazarusPath'' | Lazarus-Installationsverzeichnis | | ''lfmdPath'' | Pfad zu ''lfmd'' (Form Designer Backend) | | ''fpcInstallations'' | Liste von FPC-Installationen (Multi-Version) | | ''fpdserverPath'' | Pfad zu ''fpdserver'' (Debugger) | ==== Build ==== ^ Setting ^ Standard ^ Beschreibung ^ | ''defaultBuildMode'' | ''Debug'' | Standard-Build-Modus | | ''buildTimeoutSeconds'' | ''300'' | Build-Timeout in Sekunden | | ''preBuildCommand'' | — | Shell-Kommando vor Build | | ''postBuildCommand'' | — | Shell-Kommando nach Build | | ''runInTerminal'' | ''false'' | Im Terminal statt Output ausführen | ==== Output & Logging ==== ^ Setting ^ Standard ^ Beschreibung ^ | ''showCompilerOutput'' | ''true'' | Compiler-Ausgabe anzeigen | | ''autoShowOutputOnBuild'' | ''true'' | Output-Panel bei Build öffnen | | ''autoShowOutputOnError'' | ''false'' | Nur bei Fehler öffnen | | ''logLevel'' | ''info'' | Log-Stufe (debug/info/warn/error) | ==== Workspace ==== ^ Setting ^ Standard ^ Beschreibung ^ | ''autoDetectProjects'' | ''true'' | Automatische Projekt-Erkennung | | ''watchProjectFiles'' | ''true'' | Datei-Änderungen überwachen | | ''unitSearchPaths'' | ''[]'' | Zusätzliche Unit-Suchpfade | ===== Walkthrough ===== Beim ersten Start erscheint ein interaktiver Walkthrough: - **Configure Lazarus/lazbuild Path** — Toolchain einrichten - **Open a Project or Project Group** — Projekt öffnen - **Build Your First Project** — Erstes Projekt bauen - **Run Your Application** — Programm starten - **Create a New Project** — Neues Projekt erstellen Erneut öffnen: ''Ctrl+Shift+P'' → ''Getting Started''. ===== Siehe auch ===== * [[.:start|WvdS FPC Tools Übersicht]] * [[.:installation|Installation und Konfiguration]] * [[.:pas2js-studio|FPC PAS2JS Studio]] * [[.:iss-designer|FPC ISS Designer]] * [[.:faq|Häufige Fragen (FAQ)]]