JSON

Zed 原生支持 JSON。

JSONC

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

JSONC Prettier 格式化

如果您在使用 Format Document 时使用 *.jsonc 扩展名的文件,或者启用了 format_on_save,Zed 会调用 Prettier 作为格式化程序。Prettier 有一个未解决的问题,它会将尾随逗号添加到 jsonc 扩展名的文件中。具有 .json 扩展名的 JSONC 文件不受影响。

要解决此问题,您可以将以下内容添加到您的 .prettierrc 配置文件中

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

JSON 语言服务器

Zed 开箱即用自动支持 package.jsontsconfig.json 文件的 JSON 模式验证,但 json-language-server 可以使用项目文件中的 JSON 模式定义、来自 JSON 模式存储库或其他公开可用的 URL 进行 JSON 验证。

内联模式规范

要将模式与您的 JSON 文件内联指定,请添加一个链接到您的 JSON 模式文件的 $schema 顶级键。

例如,对于用于 lua-language-server.luarc.json

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

通过设置进行模式规范

您还可以通过 Zed LSP 设置将 JSON 模式与文件路径关联。

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

您还可以通过在 Zed 的 settings.json 中指定,将 支持的任何设置 传递给 json-language-server