VSCode可通过安装Pascal扩展、FPC编译器、Delphi语言服务器、CodeLLDB调试器及DUnitX测试任务,实现Pascal/Delphi跨平台高效开发。

如果您希望在现代代码编辑器中高效编写 Pascal 或 Delphi 语言程序,VSCode 提供了轻量、可扩展且跨平台的开发支持。以下是为 Pascal/Delphi 配置 VSCode 的多种可行路径:
本文运行环境:MacBook Air M2,macOS Sequoia。
一、安装 Pascal 扩展与基础编译器
VSCode 本身不内置 Pascal 支持,需通过社区扩展引入语法高亮、智能提示及调试能力,并依赖本地编译器完成构建。该方法适用于 Free Pascal(FPC)项目,兼容 Turbo Pascal 风格语法及 Object Pascal 子集。
1、打开 VSCode,点击左侧活动栏的扩展图标(或按 Cmd+Shift+X)。
2、在搜索框中输入 Pascal,选择由 alefragnani 发布的 Pascal 扩展并安装。
3、访问 https://www.freepascal.org 下载对应 macOS 的 FPC 安装包,运行安装程序并确保 fpc 命令可在终端中执行。
4、重启 VSCode,新建 .pas 文件,确认语法高亮与括号匹配功能已启用。
二、配置 Delphi 语言支持(通过 Language Server)
Delphi 源码具有更复杂的单元依赖与 RTL/VCL 语义,原生扩展难以覆盖全部特性。使用基于 LSP 的 delphi-language-server 可实现跨平台符号跳转与错误诊断,需配合本地 Delphi IDE 的编译器路径或兼容 FPC 构建链。
1、在终端执行 npm install -g delphi-language-server 安装语言服务器。
2、在 VSCode 中安装扩展 Delphi Language Support(作者:microsoft 兼容分支维护者)。
3、打开 VSCode 设置(Cmd+,),搜索 delphi.languageServerPath,将其值设为 /usr/local/bin/delphi-language-server。
4、在工作区根目录创建 delphi.json,填入 {"sourcePaths": ["./src"], "unitSearchPaths": ["./lib"]}。
无论你是新学习编程,或刚接触Ruby,这本书可以引导你用独特和优雅的语言体验真实真实的软件开发。 Ruby is famous for being easy to learn, but most users only scratch the surface of what it can do. While other books focus on Ruby’s trendier features, The Book of Ruby reveals the secret inner wo
三、搭建调试环境(使用 CodeLLDB + FPC)
VSCode 默认不支持 Pascal 调试,但可通过适配 DWARF 调试信息的通用调试器实现断点、变量查看与单步执行。该方案要求 FPC 编译时启用调试符号,并配置 launch.json 映射源码路径。
1、在终端中使用 fpc -g -O0 hello.pas 编译生成含调试信息的可执行文件。
2、在 VSCode 中打开项目文件夹,按 Cmd+Shift+P 输入 Debug: Open launch.json,选择 LLDB 环境。
3、将配置中的 program 字段改为 ./hello,miDebuggerPath 设为 /usr/bin/lldb。
4、确认 sourceMap 条目包含 {"./": "./"},以保证断点位置正确解析。
四、集成 DUnitX 单元测试运行器
对于需要持续验证逻辑正确性的 Pascal 工程,可将 DUnitX 测试框架接入 VSCode 终端任务系统,实现一键运行与结果过滤。该方法无需图形化测试界面,适合 CI/CD 流水线复用。
1、从 https://github.com/VSoftTechnologies/DUnitX 克隆仓库至项目 ./test/lib/DUnitX 目录。
2、编写测试单元 TestMain.pas,继承 DUnitX.TestFramework.TTest 并调用 RegisterTest。
3、在 .vscode/tasks.json 中添加任务,命令为 fpc -Fu./test/lib -FU./test/output TestMain.pas && ./TestMain --console。
4、按 Cmd+Shift+P 执行 Tasks: Run Task,选择刚定义的任务,观察终端输出的 PASSED 或 FAILED 标记。









