JSON

Zed 原生支持 JSON 格式。

JSONC

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

JSONC 的 Prettier 格式化

当您使用 Format Document 或启用 format_on_save 功能时,若处理的文件扩展名为 *.jsonc,Zed 会调用 Prettier 作为格式化工具。Prettier 存在一个待解决的问题,会在扩展名为 jsonc 的文件中添加尾随逗号。而扩展名为 .json 的 JSONC 文件不受此影响。

要规避此问题,您可以在 .prettierrc 配置文件中添加以下配置:

JSON 语言服务器

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

内联模式规范

要在 JSON 文件中内联指定模式,请添加一个 $schema 顶级键,指向您的 JSON 模式文件。

例如,为配合 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 传递任何支持的设置