右下角 grammar 必须是 SQL,否则高亮和格式化全失效;Atom 只认状态栏显示的语法名,非文件后缀,需手动选 SQL(非 MySQL/PostgreSQL),若无该选项则安装 language-sql,再通过 Editor: Log Cursor Scope 验证 scope 是否为 source.sql。

右下角 grammar 必须是 SQL,否则高亮和格式化全失效
Atom 不看文件后缀,只认编辑器右下角显示的语法名。哪怕你打开的是 query.sql,只要状态栏显示 Plain text 或 Text,language-sql 就不会加载,高亮、括号匹配、格式化统统不工作。
手动修复方式:
点击右下角语法名 → 在弹出菜单中选择 SQL(注意:不是 MySQL 或 PostgreSQL,那些是其他插件提供的 grammar)
如果列表里没有 SQL,说明 language-sql 插件未安装:运行 apm install language-sql
验证是否生效:按 Ctrl+Shift+P 输入 Editor: Log Cursor Scope,查看控制台输出的最末一级 scope 是否为 source.sql
装了 language-sql 但还是灰底黑字?检查主题是否支持 source.sql 作用域
即使 source.sql 作用域正确,你也可能看不到高亮——因为当前使用的 Syntax Theme 根本没定义 .syntax--source.syntax--sql .syntax--keyword 这类样式链。
常见表现:
标签名、函数名、字符串、注释全部是默认灰色,或只有部分元素着色
深色主题下 string.quoted.double.sql 被设成透明或低对比度,肉眼不可见
解决方法:打开 ~/.atom/styles.less,追加针对性样式(示例适配暗色背景):
.syntax--source.syntax--sql .syntax--keyword { color: #569cd6 !important; }
.syntax--source.syntax--sql .syntax--string { color: #ce9178 !important; }
.syntax--source.syntax--sql .syntax--comment { color: #6a9955 !important; }
别用泛化类如 .syntax--string,必须写完整作用域链,否则无效
sql-formatter 插件能格式化,但快捷键没反应?先确认 grammar 和触发条件
sql-formatter 只响应 SQL grammar,且不监听保存事件——它只在你手动触发时工作。
常见错误现象:
按 Ctrl+Alt+L 没反应,但 Ctrl+Shift+P 输入 Sql Formatter: Format 能执行 → 说明 grammar 正确,但快捷键被其他插件劫持(如 vim-mode-plus)
按 Ctrl+Shift+P 找不到该命令 → grammar 错误,或 language-sql 未启用
选中文本后格式化正常,全文格式化失败 → 文件过大(>5000 行),插件自动禁用(控制台会打印 sql-formatter: disabled due to large file)
注意:sql-formatter 不读取项目级配置(如 .sqlformat),所有设置必须在插件 Settings 页面完成
关键字大小写、缩进、逗号风格这些怎么调?全在插件 UI 里配
sql-formatter 的配置完全图形化,无需改配置文件。路径为:Packages → sql-formatter → Settings。
关键参数说明:
Indent Size:设为 2 或 4,影响 SELECT/FROM 等关键字缩进层级
Keyword Case:可选 upper(SELECT)、lower(select)或 capitalize(Select)
Language:影响函数解析,如设为 postgresql 会识别 ILIKE,设为 mysql 支持反引号字段名
Comma Style:选 first 表示逗号前置(字段换行时逗号在上行末尾),last 则在下行开头
别指望“保存自动格式化”——这个插件压根没有 Format on Save 开关,也不注册 core:save 钩子

















