装完ada插件后文件仍显示“plain text”是因为.sublime未将.adb/.ads后缀绑定到source.ada作用域;按ctrl+b报“no build system found”是因未配置gnat构建系统,与语法高亮无关。

装完 Ada 插件后文件仍是 Plain Text,不是插件失效,而是 .adb 和 .ads 后缀没绑定到 source.ada 作用域;按 Ctrl+B 报 No build system found,和语法高亮完全无关,只说明你还没配 GNAT 构建系统。
为什么打开 .adb 文件右下角显示 “Plain Text”
Sublime 默认不识别 Ada 文件后缀,插件安装后也不会自动注册 source.ada 语法作用域。这不是插件没装好,是 Sublime 根本没把当前文件当 Ada 处理——括号不匹配、关键词不着色、缩进错乱,全是这个信号的连带表现。
- 临时解决:点击右下角 “Plain Text” → 选
Ada(仅对当前文件生效) - 永久解决:选好
Ada后,再点菜单View → Syntax → Open all with current extension as… → Ada(推荐,此后所有.adb和.ads都自动应用) - 部分插件(如
Ada Language Support)明确不自动注册文件类型,必须手动走上面任一路径 - 如果点了
Open all with current extension as…却没反应,检查是否误点了Open all with current syntax(那是另一条菜单项)
No build system found 错误怎么修
这个提示只代表 Sublime 没加载任何 Ada 构建系统,和语法高亮、插件启用状态毫无关系。你按 Ctrl+B 想编译,但它连“用哪个命令编译”都不知道。
- 先确认
gnat已可用:终端执行gnat --version,无输出就去装gcc-ada或libregeode - 在 Sublime 中新建构建系统:
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(必须以 .sublime-build 结尾),再从Tools → Build System里选中它 -
working_dir路径含中文或空格会导致gnat make静默失败——哪怕编译器本身正常,也建议项目路径全用英文、无空格
怎么让 gnatchop / gnatpp 在 Sublime 里一键调用
Sublime 的 Ada 插件不提供语义分析或代码切分能力,gnatchop(拆分包)、gnatpp(格式化)这类工具需手动集成。它们和构建系统是平行关系,不能混用同一份配置。
- 最简方式:终端进项目目录,直接运行
gnatchop my_package.ads或gnatpp -r my_package.adb - 想在 Sublime 内触发:另建一个
GNAT-Chop.sublime-build,cmd改为["gnatchop", "$file"];但注意它不返回结构化错误,file_regex不起作用,失败时只报 exit code ≠ 0 -
gnatstudio是完整 IDE,和 Sublime 无集成关系;别指望 Sublime 实现 spec/body 间跳转——它只做关键词补全,没有符号解析
当前行高亮不起作用?先别动语法设置
很多用户在配 Ada 环境时顺手开 "highlight_line": true,结果发现没反应,于是怀疑 Ada 插件冲突。其实问题几乎全出在配色方案上:该设置只是开关,颜色由当前 .sublime-color-scheme 中的 lineHighlight 规则决定。
- 先换回默认主题(如
Monokai)测试,若高亮出现,说明原主题缺失lineHighlight定义 - 编辑主题文件时,必须写
"scope": "region.line",不是linehighlight或line_highlight(大小写和下划线都敏感) - 如果用了自定义 UI 主题(如
Adaptive)或插件(如MarkdownEditing),它们可能覆盖背景渲染,优先禁用排查










