A Visual Studio Code extension that provides comprehensive Delphi development support, enabling you to edit, build, and debug Delphi projects directly within VS Code.
The extension is available in two tiers. See the full feature matrix for a tier-by-tier comparison.
- Project Explorer - Manage multiple Delphi projects (.dproj) and packages (.dpk) in a dedicated sidebar with recent project support
- Build System - Build, clean, and rebuild projects using MSBuild with configuration/platform selection and build toolbar. Compiler errors, warnings, and hints are parsed into the Problems panel
- Syntax Highlighting - Full Object Pascal TextMate grammar including keywords, types, comments, strings, and compiler directives
- Code Intelligence (LSP) - Go to Definition, hover information, code completion, and document symbols/outline powered by a built-in Language Server
- Semantic Highlighting - Context-aware syntax coloring via the LSP server
- Preprocessor Support - Full
{$IFDEF},{$DEFINE},{$INCLUDE}evaluation with inactive region visualization (grayed-out code) - File Encoding - Detects ANSI-encoded Pascal files and offers one-click conversion to UTF-8 with BOM
- Session Persistence - Saves and restores open tabs when switching between projects
All Free features, plus:
- Source-Level Debugging - Full source-level debugging with breakpoints, stepping, variable inspection, and call stacks. Press
F5to start — no configuration needed. - Natvis Type Visualization - Version-specific natvis files for displaying Delphi types (strings, arrays, variants, objects) in the debugger
- Go to Declaration / Implementation - Jump between interface declarations and implementation bodies (
Shift+Ctrl+Up/Shift+Ctrl+Down) - Semantic Validation - Compiler-style diagnostics that detect undefined types, methods, and variables with configurable severity
- Breakpoint Persistence - Breakpoints are saved and restored per project
- Project Options Editor - Edit project configuration directly within VS Code
- Group Builds - Build all projects in a project group at once
- Delphi - A valid Delphi installation (Delphi 10.x, 11.x, 12.x or 13.x)
- C/C++ Extension - Required for debugging (ms-vscode.cpptools). VS Code installs this automatically when you install the Vallenta Studio extension.
- Install the extension from the VS Code Marketplace
- Open a folder in VS Code to use as your workspace (see Workspace Setup below)
- The extension auto-detects your Delphi installation and configures paths automatically
The extension requires an open workspace folder in VS Code. It stores project references and settings in a .vallenta folder inside your workspace root.
The workspace folder does not have to be the actual Delphi project folder. The recommended practice is to open a parent directory that covers multiple Delphi project folders. For example:
C:\MyWork\ <-- open this folder as your VS Code workspace
+-- .vallenta\ <-- extension stores project list and settings here
+-- ProjectA\
¦ +-- ProjectA.dproj
¦ +-- ...
+-- ProjectB\
¦ +-- ProjectB.dproj
¦ +-- ...
+-- SharedLibrary\
+-- ...
This way you can manage multiple Delphi projects within a single workspace.
On first startup, it scans the Windows Registry for installed Delphi versions and selects the latest one. To switch to a different Delphi version, open the settings dialog (top right on the Project Explorer) and select the Delphi version from the dropdown list.
Vallenta Studio detects Delphi installations from Delphi 2005 onwards. However, only versions 10 - 13 Florence have been officially tested. If you use Delphi 2005 - XE8, the extension may work. Please report any issues you encounter so we can improve support.
- Open the Vallenta Studio view in the Activity Bar (sidebar)
- Click Add Project to browse and select a
.dprojor.dpkfile - Or use Add Project Group to load all projects from a
.groupprojfile
- Set the active project by clicking on it in the Project Explorer
- Select the build configuration (Debug/Release) and target platform (Win32/Win64) in the Build toolbar
- Click the Build button in the Build toolbar — one click, no VS Code
tasks.jsonconfiguration required - Build output streams in real-time to the Build Output panel; errors and warnings appear in the Problems panel
- Build the active project with Debug configuration to include debug information
- Press
F5(or click Debug in the Build toolbar) to start debugging
That's it — no launch.json or tasks.json needed. The extension automatically:
- Generates the debug symbols required by the debugger
- Generates version-specific natvis visualizers for Delphi types
- Launches the debugger with the correct paths and settings
Use Ctrl+F5 to run without debugging.
Debugging capabilities:
- Source-level breakpoints
- Step over / into / out
- Local variable and parameter inspection
- Call stacks with function names and line numbers
- Natvis type visualization for Delphi strings, arrays, variants, and objects
The built-in LSP server starts automatically when a project is activated and provides:
- Go to Definition (
F12) - Navigate to symbol declarations - Go to Declaration / Implementation (
Shift+Ctrl+Up/Shift+Ctrl+Down) - Jump between interface and implementation (Pro) - Hover - View type information and symbol details
- Code Completion - Type-aware member suggestions after the dot operator
- Document Symbols - Outline view and breadcrumb navigation
- Semantic Highlighting - Context-aware syntax coloring
- Diagnostics - Errors, warnings, and hints for undefined types, methods, and variables (Pro)
- Inactive Regions - Preprocessor-excluded code shown with reduced opacity
| Setting | Type | Default | Description |
|---|---|---|---|
vallenta.studio.installationPath |
string | "" |
Path to the Delphi installation directory |
vallenta.studio.selectedVersion |
string | "" |
Selected Delphi version identifier (e.g., '23.0') |
vallenta.studio.msbuildPath |
string | "" |
Path to MSBuild.exe |
vallenta.studio.rsvarsPath |
string | "" |
Path to rsvars.bat |
vallenta.studio.libraryPath |
array | [] |
Delphi library search paths |
vallenta.studio.bplOutputPath |
string | "" |
Output directory for BPL files |
vallenta.studio.dcpOutputPath |
string | "" |
Output directory for DCP files |
vallenta.studio.compilerPath |
string | "" |
Path to the Delphi compiler (DCC32/DCC64) |
| Setting | Type | Default | Description |
|---|---|---|---|
vallenta.studio.debug.enableNatvis |
boolean | true |
Generate natvis visualizer for Delphi types during debugging |
| Setting | Type | Default | Description |
|---|---|---|---|
vallenta.studio.encodingCheck |
boolean | true |
Warn about ANSI-encoded Pascal files and offer conversion |
vallenta.studio.rememberOpenFiles |
boolean | true |
Save/restore open tabs when switching projects |
vallenta.studio.inactiveRegions.enabled |
boolean | true |
Show inactive preprocessor regions with reduced opacity |
| Setting | Type | Default | Description |
|---|---|---|---|
vallenta.studio.lsp.serverPath |
string | "" |
Path to Vallenta_LSP.exe (empty = bundled server) |
vallenta.studio.lsp.autostart |
string | "exclusive" |
Auto-start mode: disabled, exclusive, or enabled |
vallenta.studio.lsp.trace.server |
string | "off" |
LSP communication trace level: off, messages, verbose |
vallenta.studio.lsp.logLevel |
string | "info" |
Server log verbosity: trace, debug, info, warning, error |
vallenta.studio.lsp.idleTimeout |
number | 10 |
Minutes before stopping idle background LSP servers (0 = disabled) |
vallenta.studio.lsp.preprocessorAwareParsing |
boolean | true |
Ignore inactive {$IFDEF} regions during syntax checking |
vallenta.studio.lsp.semanticValidation.enabled |
boolean | true |
Detect undefined types, methods, and variables |
vallenta.studio.lsp.semanticValidation.severity |
string | "hint" |
Severity for semantic diagnostics: error, warning, hint, information |
vallenta.studio.lsp.indexing.workerThreads |
number | 0 |
Background indexing threads (0 = auto) |
vallenta.studio.lsp.indexing.batchSize |
number | 8 |
Files per batch per worker thread |
| Command | Description |
|---|---|
Vallenta Studio: Auto-Detect Installation |
Scan registry for Delphi installations |
Vallenta Studio: Open Vallenta Studio Settings |
Open the extension settings UI |
Vallenta Studio: Add Project File... |
Add a .dproj or .dpk file to the project list |
Vallenta Studio: Add Projects from Folder... |
Add all projects from a folder |
Vallenta Studio: Add Project Group... |
Add all projects from a .groupproj file |
Vallenta Studio: Open Recent Project... |
Open a recently used project |
Vallenta Studio: New Delphi-File... |
Create a new Pascal unit file |
Vallenta Studio: Project Options... |
Open project configuration (Pro) |
Vallenta Studio: Build |
Build the active project |
Vallenta Studio: Clean |
Clean the active project |
Vallenta Studio: Rebuild |
Rebuild the active project |
Vallenta Studio: Build All Projects in Group |
Build all projects in a group (Pro) |
Vallenta Studio: Cancel Build |
Cancel the active build |
Vallenta Studio: Run Without Debugging |
Run the application without debugger |
Vallenta Studio: Start LSP Server |
Start the language server for the active project |
Vallenta Studio: Stop LSP Server |
Stop the language server |
Vallenta Studio: Restart LSP Server |
Restart the language server |
Vallenta Studio: Go to Declaration |
Navigate to interface declaration (Pro) |
Vallenta Studio: Go to Implementation |
Navigate to implementation body (Pro) |
Vallenta Studio: Convert to UTF-8 with BOM |
Convert ANSI file to UTF-8 BOM encoding |
| Shortcut | Action | Context |
|---|---|---|
F5 |
Start debugging | Active Delphi project (Pro) |
Ctrl+F5 |
Run without debugging | Active Delphi project |
F12 |
Go to Definition | Pascal editor |
Shift+Ctrl+Up |
Go to Declaration | Pascal editor (Pro) |
Shift+Ctrl+Down |
Go to Implementation | Pascal editor (Pro) |
Ctrl+Shift+B |
Build | Standard VS Code build |
| Extension | Description |
|---|---|
.pas |
Pascal unit |
.dpr |
Delphi project source |
.dpk |
Delphi package source |
.inc |
Include file |
.dproj |
Delphi project file (XML) |
.groupproj |
Delphi project group file (XML) |
.dfm |
Delphi form file (text format) |
.fmx |
FireMonkey form file (text format) |
- Form Designer is not supported — .dfm and .fmx files open as text
- Windows only — the extension requires a local Delphi installation on Windows. Cross-compilation to other platforms (e.g., Linux) is possible, but deployment to target systems is not handled by the extension
- LSP does not yet support: Find References, Rename, Code Actions, Code Formatting, Signature Help
Found a bug or have a feature request? Please open an issue on this repository.
Delphi is a registered trademark of Embarcadero Technologies, Inc. Vallenta Studio is an independent product and is not affiliated with, authorized, or endorsed by Embarcadero Technologies.
See LICENSE for details.
