确认graphql插件真在运行需三步:右下角状态栏显示graphql;若为plain text则手动切换并绑定扩展名;js中模板字符串需开启"enable_jsx_graphql": true且满足gql...格式。

装对插件、绑对文件类型、关对配置项,三者缺一不可——否则你看到的永远是白底黑字的“Plain Text”。
怎么确认 GraphQL 插件真在运行?
Sublime 默认不带 GraphQL 支持,装了插件但没高亮,大概率是插件没激活或文件关联失效。常见现象:打开 .graphql 文件,右下角显示 Plain Text 或 JSON,注释和花括号全无颜色。
- 用
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Windows/Linux)调出命令面板,输入Install Package,确保已安装GraphQL(作者:princjef)——这是目前最活跃、支持 SDL 和内联查询的版本 - 打开一个
.graphql文件,看右下角状态栏是否显示GraphQL;如果显示其他类型,点它手动切换一次 - 若手动切换后高亮正常,说明文件扩展名没绑定,需补配置:菜单 →
View→Syntax→Open all with current extension as…→ 选GraphQL
JS/TS 里写 gql`query { user }` 为什么还是白的?
默认只对独立 .graphql 文件启用高亮,JS 中的模板字符串不会自动识别——这不是 bug,是插件默认行为。
- 安装插件后,检查
Preferences → Package Settings → GraphQL → Settings,确认"enable_jsx_graphql": true存在且为true - 模板字符串必须满足格式才触发解析:
gql`query { user { id } }`可以,但const q = gql``中若gql是局部变量而非全局函数,插件无法识别 - 临时方案:在字符串前加注释标记,例如
/* GraphQL */ gql`query { ... }`,部分插件会据此启用语法解析
高亮错乱、关键字变白,是不是语法写错了?
更可能是语法定义没跟上 GraphQL Spec 更新,尤其遇到 @defer、@stream、interface implements、自定义 directive 等新特性时。
- 优先升级插件:用
Package Control: Upgrade Package单独升级GraphQL插件;princjef维护的 v3.x+ 已适配 GraphQL Spec 2021+ - 避免混用缩进:Sublime 的 TextMate 规则对空格/TAB 敏感,比如
extend type Query {后换行缩进不一致,可能导致后续字段名不着色 - 不要在 SDL 中写 JS 风格注释(
//),只用#—— 否则整个块可能被跳过解析
最容易被忽略的是文件绑定和插件配置的联动关系:即使装了插件,只要右下角没显示 GraphQL,就等于没生效;而 JS 里的高亮开关藏在插件设置里,不是开箱即用。











