sublime中.adb文件显示plain text是因未绑定ada语法,需右下角选“open all with current extension as…→ada”;no build system错误需手动创建ada.sublime-build并确保gnat在path中。

为什么打开.adb文件还是 Plain Text?
右下角显示 “Plain Text” 就是明确信号:Sublime 没把 .adb 或 .ads 文件绑定到 Ada 语法作用域,和插件是否装好无关。Ada 插件(如 Ada Language Support)默认不自动注册文件类型。
- 临时解决:点击右下角
Plain Text→ 选Ada(仅当前文件生效) - 永久解决:同上操作,但选
Open all with current extension as…→Ada(推荐,此后所有.adb/.ads都自动识别) - 若仍无效,检查插件是否真被加载:菜单
View → Syntax → Ada是否存在;不存在说明插件未启用或安装失败
No build system found 错误怎么修?
这个提示和语法高亮完全无关,只是你按了 Ctrl+B 想编译,但 Sublime 根本没加载任何 Ada 构建系统。GNAT 编译器本身必须先在系统 PATH 中可用。
- 先验证 GNAT:终端执行
gnat --version,无输出就去装gcc-ada(Linux)或libregeode(跨平台) - 新建构建系统:
Tools → Build System → New Build System,贴入以下内容:
{ "cmd": ["gnat","make","$file_base_name"], "file_regex":"^(..[^:]*):([0-9]+):([0-9]+):? (.*)$", "working_dir":"$file_path", "selector":"source.ada" }
- 保存为
Ada.sublime-build,再从Tools → Build System中手动选中它 -
关键坑:
working_dir路径含中文或空格会导致gnat make静默失败——务必用纯英文路径
gnatchop、gnatpp 这类工具怎么集成?
Sublime 的 Ada 插件不提供语义分析能力,gnatchop(拆分包)、gnatpp(格式化)需外部调用或单独配置构建系统。
- 最简方式:终端进项目目录,直接运行
gnatchop my_package.ads或gnatpp -r my_package.adb - 想在 Sublime 内一键触发:新建一个
GNAT-Chop.sublime-build,cmd改为["gnatchop", "$file"],但注意它不返回结构化错误,file_regex不起作用 - 别指望自动跳转 spec/body:Sublime 没有语义索引,补全仅限关键词,
gnatstudio是完整 IDE,和 Sublime 无集成关系
真正卡住人的从来不是插件装不装得上
而是文件关联和构建系统这两步漏掉任意一个,整个流程就断在起点。尤其 Open all with current extension as… 这个操作,名字太隐晦,很多人根本想不到要点进去——但它才是让 .adb 文件“活过来”的第一道开关。










