LSP-yaml 在 Sublime Text 中不报错也不提示,是因为其依赖的 yaml-language-server 未正确安装、未配置 Schema 关联或未启用项目级设置;需手动安装服务器、在 .sublime-project 中绑定 Helm Schema 并重启服务,否则仅做基础语法高亮,无法校验字段合法性。

Sublime Text 本身不内置 YAML 语言服务器,LSP-yaml 是社区维护的第三方插件,它依赖 yaml-language-server(由 Red Hat 维护)提供语义校验能力。直接安装插件不会自动拉起语言服务器——缺少 Node.js 运行时、未配置 Schema 关联、或未启用项目级 .vscode/settings.json 等等,都会导致“看起来装了,但没反应”。
为什么 LSP-yaml 在 Sublime Text 里不报错也不提示?
常见现象:装完 LSP-yaml,打开 values.yaml 或 kustomization.yaml,光标悬停无提示、修改字段不校验、保存后也不标红。
-
LSP-yaml默认不自动下载yaml-language-server,需手动安装或指定路径 - Sublime Text 的
LSP插件默认禁用全局服务器,必须在项目根目录下存在.sublime-project或启用"enabled": true才激活 - 云原生配置(如 Helm/Kustomize/ArgoCD)需要显式绑定 Schema,否则只做基础语法检查,不校验字段合法性
- Node.js 版本太低(
<16.14)会导致yaml-language-server启动失败,但 Sublime 不报错,只静默降级为纯语法高亮
如何让 LSP-yaml 校验 Helm values.yaml 字段合法性?
关键不是装插件,而是让 yaml-language-server 知道你用的是 Helm Schema。这靠 yaml.schemas 配置驱动,不是靠文件名后缀。
- 确认已安装
yaml-language-server:npm install -g yaml-language-server(推荐 v1.25+) - 在项目根目录创建
.sublime-project,写入:{ "settings": { "LSP": { "yaml": { "settings": { "yaml": { "schemas": { "https://raw.githubusercontent.com/helm/charts/master/repo/schema.json": "values.yaml", "https://json.schemastore.org/helmfile.json": "helmfile.yaml" } } } } } } } - 如果使用私有 Chart,把本地 Schema 路径写成
file:///path/to/chart/schema.json,确保 Sublime 有读取权限 - 重启 Sublime 或执行
LSP: Restart Servers命令刷新
Schema 绑定失效的三个典型信号
即使配置看起来正确,以下现象说明 Schema 没真正加载:
- 打开
values.yaml后,状态栏右下角不显示YAML (schema),只显示YAML - 输入
replicaCount:后,没有自动补全int类型提示,或敲错字段名(如replicaCountt)不标黄 -
LSP: Show Diagnostics输出为空,或只报invalid indentation这类基础错误,不报additionalProperties not allowed
真正严谨的云原生校验,取决于 Schema 文件是否精确匹配你使用的 Chart 版本。Helm 官方 Schema 并不覆盖所有社区 Chart,遇到不识别的 key,得自己从 Chart.yaml + values.schema.json 提取并托管。这点容易被忽略——工具链再强,也救不了缺失或过期的 Schema。


















