WvdS VSCode Projects

The Projects extension manages Pascal projects in VS Code. It provides project templates, configuration dialogs, and solution management.

Function and Purpose

The Projects extension enables:

  • Project Templates - Quick creation of new projects
  • Project Management - Open, configure, manage
  • Multi-Project Solutions - Multiple projects in one workspace
  • Project Settings - GUI for compiler options

Commands

Command Description
WvdS Projects: New Project (Quick) Creates a project with default settings
WvdS Projects: New Project from Template… Shows the template selection dialog
WvdS Projects: Open Project Opens an existing project
WvdS Projects: Project Settings… Opens the project settings dialog

Project Templates

The extension includes predefined templates for various project types:

Desktop Console

Simple console application for command-line tools and services.

Generated Files:

MyProject/
  MyProject.lpr     -- Main program

Example Code:

program MyProject;
 
{$mode objfpc}{$H+}
 
uses
  SysUtils;
 
begin
  WriteLn('Hello, World!');
end.

Use Cases:

  • CLI tools and utilities
  • Batch processing
  • Server services
  • Build scripts

Desktop GUI

Native desktop application with LCL (Lazarus Component Library).

Generated Files:

MyProject/
  MyProject.lpr     -- Main program
  MainForm.pas      -- Main form unit
  MainForm.lfm      -- Form design

Prerequisites:

  • Lazarus installed (for LCL)
  • lazbuild available

Use Cases:

  • Desktop applications
  • Database frontends
  • Utility programs with GUI

Desktop Library

Shared library (DLL/SO) for plugin systems or external integration.

Generated Files:

MyProject/
  MyProject.lpr     -- Library project

Example Code:

library MyProject;
 
{$mode objfpc}{$H+}
 
uses
  SysUtils;
 
procedure HelloWorld; cdecl;
begin
  WriteLn('Hello from library!');
end;
 
exports
  HelloWorld;
 
begin
end.

Use Cases:

  • Plugins for other applications
  • Shared code between projects
  • Integration with other languages (C, Python, etc.)

TUI App

Terminal User Interface - text-based user interface.

Generated Files:

MyProject/
  MyProject.lpr     -- Main program
  TuiMain.pas       -- TUI main unit

Use Cases:

  • Server administration
  • SSH-capable tools
  • Resource-efficient applications
  • Cross-platform without GUI dependencies

Web PWA

Progressive Web App with pas2js - runs in the browser.

Generated Files:

MyProject/
  MyProject.lpr     -- Main program (becomes JS)
  index.html.tmpl   -- HTML template
  manifest.json.tmpl-- PWA manifest
  sw.js             -- Service Worker

Prerequisites:

  • pas2js installed

Use Cases:

  • Web applications
  • Cross-platform apps
  • Offline-capable applications

VSCode Extension

VS Code extension in Pascal, transpiled with pas2js.

Generated Files:

MyExtension/
  extension_main.pas   -- Entry point
  package.json.tmpl    -- Extension manifest

Prerequisites:

  • pas2js installed
  • Node.js for vsce (packaging)

Use Cases:

  • Custom VS Code extensions
  • IDE tools and automation
  • Integration with WvdS Suite

Installer (Inno Setup)

Windows installer for desktop applications.

Generated Files:

MyInstaller/
  MyInstaller.iss    -- Inno Setup script

Prerequisites:

  • Inno Setup installed

Use Cases:

  • Windows installation packages
  • Automatic updates
  • Enterprise deployment

Project Settings

The WvdS Projects: Project Settings… dialog provides a graphical interface for:

General Settings

  • Project Name - Name of the project
  • Output Directory - Where compiled files are written
  • Unit Paths - Additional search paths for units

Compiler Options

  • Target Platform - windows-x86, windows-x64, linux-x64, …
  • Optimizations - Level 0-3
  • Debug Symbols - Enable for debugging
  • Assertions - Runtime checks

Dependencies

  • Uses Clauses - Automatically managed units
  • Library Paths - Paths to external libraries

Multi-Project Workspaces

VS Code workspaces can contain multiple projects:

MyWorkspace.code-workspace
  MyApp/          -- Desktop application
  MyLib/          -- Shared library
  MyTests/        -- Unit tests

Creating a Workspace

  1. FileAdd Folder to Workspace…
  2. Add all project folders
  3. FileSave Workspace As…

Selecting a Project

With multiple projects:

  1. Open a file from the desired project
  2. Or: Select the project in the Project Explorer

Context Menu

Right-click on .lpi/.lpr files in the Explorer shows:

  • WvdS Projects: Project Settings…

Troubleshooting

Template Dialog Does Not Open

Cause: Extension not activated or error.

Solution:

  1. Check if the extension is installed
  2. Check the Developer Console for errors
  3. Restart VS Code

Project Not Recognized

Cause: No .lpr, .dpr, or .pas file in the folder.

Solution:

  1. Ensure a main file exists
  2. Open the folder with FileOpen Folder…

Project Settings Not Saved

Cause: No write permissions or faulty configuration.

Solution:

  1. Check write permissions in the project folder
  2. Check settings.json for syntax errors

Technical Details

Property Value
Extension ID wvds.wvds-vscode-projects
Activation workspaceContains:/*.lpr, onLanguage:pascal
Dependencies wvds-vscode-core
Min. VS Code 1.85.0

See Also

Zuletzt geändert: on 2026/01/29 at 10:26 PM