要让 .adb/.ads 文件显示 ada 语法高亮并支持 ctrl+b 编译,需分别配置:① 通过 view → syntax → open all with current extension as… 将 .adb 和 .ads 永久绑定为 ada 语法;② 创建名为 ada.sublime-build 的构建系统,存于 packages/user/ 目录,selector 设为 source.ada,并确保 gnat 已安装且 gnat --version 可运行。

Sublime Text 4 默认不识别 .adb 和 .ads 文件,也不会自动调用 GNAT 编译——装完 Ada 插件后仍是纯文本、Ctrl+B 报 No build system found,不是插件坏了,而是两件事根本没连上:语法高亮靠「文件扩展名绑定」,编译靠「构建系统匹配」,二者必须分别手动配。
怎么让 .adb/.ads 文件显示 Ada 语法高亮
Ada Language Support 插件只提供语法定义,不注册扩展名。Sublime 不会主动把 .adb 或 .ads 关联到 source.ada scope。
- 临时生效:打开任意
.adb文件 → 点击右下角当前语法名(如Plain Text)→ 选Ada - 永久绑定:菜单
View → Syntax → Open all with current extension as…→ 选Ada;对.adb和.ads各执行一次 - 验证方式:新建空白文件 → 保存为
test.adb→ 右下角显示Ada,且procedure、begin等关键字变色才算成功
为什么 Ctrl+B 报 No build system found
这个错误和语法高亮完全无关,只说明 Sublime 找不到匹配当前文件的构建系统。关键点是:selector 必须为 source.ada,且构建文件必须放在正确路径。
- 先确认 GNAT 可用:终端运行
gnat --version,无输出需装gcc-ada(Linux)或GNAT Community(Windows/macOS) - 新建构建系统:菜单
Tools → Build System → New Build System - 粘贴以下内容并保存为
Ada.sublime-build:
{
"cmd": ["gnat", "make", "$file_base_name"],
"file_regex": "^(..[^:]*):([0-9]+):([0-9]+):? (.*)$",
"working_dir": "$file_path",
"selector": "source.ada"
}
- 必须存到
Packages/User/目录(可通过菜单Preferences → Browse Packages…进入) - 保存后,在
Tools → Build System中手动选中Ada,否则不会自动启用
构建失败常见原因与调试方法
gnat make 报错时,Sublime 默认只显示第一行错误,容易漏掉真正问题。建议先在终端里跑相同命令验证。
- 如果报
cannot find project file:GNAT 要求项目文件(.gpr)存在,单文件编译可用gnat make -P project.gpr main.adb,但构建系统里不推荐硬编码路径 - 如果报
undefined reference或链接失败:检查是否用了with引入了未编译的包,或.ads缺少对应.adb - 如果
$file_base_name展开为空:确保当前文件已保存(未命名 tab 不会触发变量替换) - 构建输出乱码(尤其 Windows):在构建系统 JSON 中加
"encoding": "utf-8"或"GBK",视系统 locale 而定
最易被忽略的是:Ada 构建系统依赖 GNAT 的 CLI 行为一致性,不同版本的 gnat make 对参数和错误格式处理略有差异,file_regex 里的正则必须和实际错误输出严格匹配,否则跳转不到出错行——建议先在终端执行一次 gnat make xxx,复制真实错误格式来反推正则写法。











