入门 Zed Industries 2026-09-14 17:42:19 · 0 阅读

第85章 Zed 编辑器第85章:JSON 支持详解

Zed 原生支持 JSON。

JSONC

Zed 还支持 JSON 的超集 JSONC,允许在 JSON 文件中使用单行注释(//)。 编辑这类文件时,可以用 cmd-/(macOS)或 ctrl-/(Linux)来切换当前行或所选内容的注释。

JSONC 的 Prettier 格式化

如果你使用 *.jsonc 扩展名的文件并执行 Format Document,或启用了 format_on_save,Zed 会调用 Prettier 进行格式化。Prettier 有一个未解决的问题:会给 jsonc 扩展名的文件添加尾随逗号。扩展名为 .json 的 JSONC 文件不受影响。

要绕过这个问题,可以在 .prettierrc 配置文件中添加以下内容:

{
  "overrides": [
    {
      "files": ["*.jsonc"],
      "options": {
        "parser": "json",
        "trailingComma": "none"
      }
    }
  ]
}

JSON Language Server

Zed 开箱即支持对 package.jsontsconfig.json 文件进行 JSON Schema 校验。此外,json-language-server 还可以使用项目文件中的 JSON Schema 定义、来自 JSON Schema Store 的定义,或其他公开可用的 URL 来进行 JSON 校验。

内联指定 Schema

要在 JSON 文件中内联指定 schema,可以在顶层添加一个 $schema 键,指向对应的 JSON schema 文件。

例如,供 lua-language-server 使用的 .luarc.json

{
  "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
  "runtime.version": "Lua 5.4"
}

通过设置指定 Schema

你可以通过语言服务器设置中的相对路径,将 JSON Schema 与文件路径关联起来。Zed 会相对于项目根目录解析路径:

json [settings] "lsp": { "json-language-server": { "settings": { "json": { "schemas": [ { "fileMatch": ["config/*.json"], "url": "./schemas/custom-schema.json" }, { "fileMatch": ["*.config.json"], "url": "~/global-schemas/shared.json" }, { "fileMatch": ["*/*.luarc.json"], "url": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json" } ] } } } }

./ 开头的路径相对于工作区根目录解析。以 ~/ 开头的路径则展开到用户主目录。

你还可以在 Zed 的 settings.json 中指定 支持的设置项,将其传递给 json-language-server:

评论 (0)