graphql语法高亮不生效的三大原因:插件未安装princjef维护的最新版、.graphql/.gql文件未绑定graphql语法、js/ts中gql模板字符串未启用jsx支持或缺少/ graphql /注释。

GraphQL 语法高亮在 Sublime Text 中不生效,基本可以断定是插件没装对、文件没绑对、JS 里模板字符串没识别这三类问题之一。
装的是不是 princjef 维护的 GraphQL 插件?
Sublime 默认完全不认 GraphQL,必须装对插件。当前最稳定、更新最勤、支持 @defer、@stream 和 interface implements 等新特性的只有 princjef 维护的 GraphQL 插件——别选 GraphQL Syntax Highlighting 或旧版 GraphQL(作者 joshbuddy),它们已停止维护,对 SDL 2021+ 支持不全。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板 - 输入
Install Package→ 选择Package Control: Install Package - 搜索
GraphQL,只认准作者栏写princjef的那一项,点击安装 - 装完必须重启 Sublime Text,否则插件不会加载
打开 .graphql 或 .gql 文件时右下角显示 Plain Text?
插件装好了,但打开 schema.graphql 还是纯白文本?右下角状态栏显示 Plain Text 或 JSON?说明文件扩展名没和 GraphQL 语法关联上。这不是 bug,是 Sublime 的默认行为:插件提供语法定义,但不自动接管文件后缀。
- 打开任意一个
.graphql或.gql文件 - 点击右下角状态栏中显示的当前语言名(比如
Plain Text) - 在弹出菜单中选
Open all with current extension as… - 再从子菜单里找到并点击
GraphQL - 此后所有同后缀文件都会自动用 GraphQL 语法解析,高亮立刻可见
JS/TS 里的 gql`query { ... }` 为什么还是灰底白字?
Sublime 默认只对独立 .graphql 文件启用高亮,JS 里的字符串仍是灰底白字——这是因为插件需要显式启用 JSX/TSX 内联支持。
- 打开
Preferences → Package Settings → GraphQL → Settings - 确认用户设置中有
"enable_jsx_graphql": true,没有就手动加一行 -
gql必须是全局函数名或已import的命名导入(如import { gql } from 'graphql-tag') - 若写成
const q = gql``,插件无法推断上下文,不会触发高亮 - 临时救急法:在模板字符串前加注释
/* GraphQL */,部分版本插件会据此强制启用解析
高亮生效了,但补全/校验仍不工作?
语法高亮 ≠ 类型校验和字段补全。LSP-graphql 补全与校验必须单独配,且依赖 SDL 格式的 schema.graphql(不是 schema.json),还要确保 graphql.config.yml 放在项目根目录、编码为 UTF-8 无 BOM、路径可读——否则 LSP-graphql 静默退化为纯高亮,你敲错字段名也不会标红。
最容易被忽略的是:LSP-graphql 不报错,它只是“不干活”。你得靠 schema.graphql 文件存在、格式合法、路径正确、编码干净这四点同时满足,补全才真正启动。











