WvdS VSCode Build

The Build extension integrates the Free Pascal Compiler (FPC) and pas2js into VS Code. It enables compilation, cleanup, and uses-clause formatting directly from the editor.

Function and Purpose

The Build extension provides:

  • FPC Integration - Native Pascal compilation for desktop and server
  • pas2js Integration - Transpilation to JavaScript for web applications
  • Problem Matcher - Compiler errors are displayed in the Problems panel
  • Uses Formatter - Automatic formatting of uses clauses

Commands

Command Keyboard Shortcut Description
WvdS: Build Project Ctrl+Shift+B Compiles the current project
WvdS: Clean Build - Deletes build artifacts
WvdS: Rebuild Project - Clean + Build in one step
WvdS: Format Uses Clauses Ctrl+Alt+U Formats uses clauses in the current file
WvdS: Remove Unused Units - Removes unused units from uses

Build Workflow

Compiling a Project

  1. Open a Pascal file (.pas, .lpr, .dpr)
  2. Press Ctrl+Shift+B or run WvdS: Build Project
  3. The compiler runs in the Terminal
  4. Errors appear in the Problems panel

Build Types

Type Description Usage
Build Incremental build, only changed units Normal development
Clean Deletes all .o, .ppu, .exe files For problems, before release
Rebuild Clean + Build Complete recompilation

Compiler Selection

The extension automatically selects the correct compiler:

File Extension Compiler Output
.lpr, .pas (with .lpi) FPC via lazbuild Native Binary
.dpr, .dpk FPC Native Binary
.pas (with pas2js.cfg) pas2js JavaScript

Uses Clause Formatter

The formatter organizes and cleans up uses clauses.

Features

  • Sorting - Alphabetical, by length, or none
  • Grouping - Optional: RTL, LCL, Custom Units
  • Indentation - Configurable indentation width
  • Line Length - Automatic wrapping when exceeded
  • Unused Removal - Removal of unused units

Example

Before:

uses
  SysUtils,Classes,Forms, Dialogs,
    StdCtrls, Windows,
  MyUnit;

After (alphabetical, 2 spaces, 80 characters):

uses
  Classes, Dialogs, Forms, MyUnit, StdCtrls, SysUtils, Windows;

Context Menu

Right-click in a Pascal file shows the „Uses Clauses“ submenu:

  • Format Uses Clauses
  • Remove Unused Units

Settings

Build Settings

{
  "wvds.build.fpcPath": "",
  "wvds.build.pas2jsPath": ""
}
These settings are inherited from the Core extension if left empty.

Uses Formatter Settings

{
  // Sort order
  // "alphabetical" | "lengthAsc" | "lengthDesc" | "none"
  "wvds.usesFormatter.sortOrder": "alphabetical",
 
  // Indentation (number of spaces)
  "wvds.usesFormatter.indentSize": 2,
 
  // Maximum line length
  "wvds.usesFormatter.maxLineLength": 80,
 
  // Group by type (RTL, LCL, Custom)
  "wvds.usesFormatter.groupByType": false,
 
  // Automatically remove unused units
  "wvds.usesFormatter.removeUnused": false
}

Sorting Options in Detail

Option Description Example
alphabetical A-Z sorting (default) Classes, Dialogs, Forms, SysUtils
lengthAsc Shortest first DB, Forms, Classes, SysUtils
lengthDesc Longest first SysUtils, Classes, Forms, DB
none Keep original order -

Grouping

With grouping enabled (groupByType: true):

uses
  // RTL
  Classes, SysUtils,
  // LCL
  Forms, StdCtrls,
  // Custom
  MyUnit, AnotherUnit;

Problem Matcher

The extension parses compiler output and shows errors in the Problems panel.

Supported Formats

FPC Format:

myunit.pas(42,10) Error: Identifier not found "TFoo"

pas2js Format:

myunit.pas(42,10) Error: identifier "TFoo" not found
  • Click on an error to open the file at that location
  • F8 jumps to the next error
  • Shift+F8 jumps to the previous error

Per-Project Build Configuration

Create a build.cfg in the project folder for project-specific settings:

[build]
compiler=fpc
target=windows-x64
mode=debug
 
[debug]
optimizations=off
symbols=on
assertions=on
 
[release]
optimizations=3
symbols=off
assertions=off

Available Options

Option Values Description
compiler fpc, pas2js, lazbuild Compiler to use
target windows-x64, linux-x64, web, … Target platform
mode debug, release Build mode
optimizations off, 1, 2, 3 Optimization level
symbols on, off Generate debug symbols
assertions on, off Enable assertions

Keyboard Shortcuts

Action Windows/Linux macOS
Build Project Ctrl+Shift+B Cmd+Shift+B
Format Uses Ctrl+Alt+U Cmd+Alt+U

Troubleshooting

"Compiler not found"

Cause: FPC/pas2js not configured.

Solution:

  1. Open WvdS: Toolchain Configuration…
  2. Configure the compiler path
  3. Alternatively: Set wvds.build.fpcPath in settings.json

Errors Not Shown in Problems Panel

Cause: Compiler output deviates from expected format.

Solution:

  1. Check the Terminal output for errors
  2. Ensure the compiler version is compatible
  3. Report the issue on GitHub

Uses Formatter Does Nothing

Cause: No uses clause found or file not supported.

Solution:

  1. Ensure the file is a .pas, .pp, .lpr, .dpr, or .inc
  2. Check if a uses clause exists
  3. Check the settings

Technical Details

Property Value
Extension ID wvds.wvds-vscode-build
Activation onCommand, onLanguage:pascal
Dependencies wvds-vscode-core
Min. VS Code 1.85.0

See Also

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