JSON
Zed 原生支持 JSON。
- Tree-sitter: tree-sitter/tree-sitter-json
- 语言服务器: zed-industries/json-language-server
JSONC
Zed 还支持 JSON 的超集,称为 JSONC,它允许在 JSON 文件中使用单行注释 (//
)。编辑这些文件时,可以使用 cmd-/
(macOS) 或 ctrl-/
(Linux) 来切换当前行或选定内容的注释。
JSONC Prettier 格式化
如果您在使用 格式化文档
时使用带有 *.jsonc
扩展名的文件,或者启用了 format_on_save
,Zed 会调用 Prettier 作为格式化程序。 Prettier 存在一个 未解决的问题,它会将尾随逗号添加到带有 jsonc
扩展名的文件中。 带有 .json
扩展名的 JSONC 文件不受影响。
要解决此问题,您可以将以下内容添加到您的 .prettierrc
{
"overrides": [
{
"files": ["*.jsonc"],
"options": {
"parser": "json",
"trailingComma": "none"
}
}
]
}
JSON 语言服务器
Zed 开箱即用地自动支持对 package.json
和 tsconfig.json
文件的 JSON Schema 验证,但 json-language-server
可以使用项目文件中的 JSON Schema 定义,来自 JSON Schema 存储库 或其他公开可用的 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
您还可以通过 Zed LSP 设置将 JSON Schema 与文件路径相关联。
要
"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。