TypeScript
Zed 本身原生支持 TypeScript 和 TSX。
- Tree-sitter: tree-sitter/tree-sitter-typescript
- 语言服务器: yioneko/vtsls
- 备用语言服务器: typescript-language-server/typescript-language-server
语言服务器
默认情况下,Zed 使用 vtsls 处理 TypeScript、TSX 和 JavaScript 文件。 您可以在设置文件中配置每种语言使用 typescript-language-server。
{
"languages": {
"TypeScript": {
"language_servers": ["typescript-language-server", "!vtsls", "..."]
},
"TSX": {
"language_servers": ["typescript-language-server", "!vtsls", "..."]
},
"JavaScript": {
"language_servers": ["typescript-language-server", "!vtsls", "..."]
}
}
}
默认情况下,Prettier 也将用于 TypeScript 文件。要禁用此功能,请执行以下操作
{
"languages": {
"TypeScript": {
"prettier": { "allowed": false }
}
//...
}
}
大型项目
vtsls
在非常大的项目上可能会耗尽内存。 我们将限制默认设置为 8092 (8 GiB),而不是默认的 3072,但这可能对您来说不够。
{
"lsp": {
"vtsls": {
"settings": {
// For TypeScript:
"typescript": { "tsserver": { "maxTsServerMemory": 16184 } },
// For JavaScript:
"javascript": { "tsserver": { "maxTsServerMemory": 16184 } }
}
}
}
}
内嵌提示
Zed 设置以下初始化选项,使语言服务器发回内嵌提示(即,当 Zed 在设置中启用了内嵌提示时)。
您可以在 Zed 设置文件中覆盖这些设置。
使用 typescript-language-server
时
{
"lsp": {
"typescript-language-server": {
"initialization_options": {
"preferences": {
"includeInlayParameterNameHints": "all",
"includeInlayParameterNameHintsWhenArgumentMatchesName": true,
"includeInlayFunctionParameterTypeHints": true,
"includeInlayVariableTypeHints": true,
"includeInlayVariableTypeHintsWhenTypeMatchesName": true,
"includeInlayPropertyDeclarationTypeHints": true,
"includeInlayFunctionLikeReturnTypeHints": true,
"includeInlayEnumMemberValueHints": true
}
}
}
}
}
有关更多信息,请参见 typescript-language-server inlayhints 文档。
使用 vtsls
时
{
"lsp": {
"vtsls": {
"settings": {
// For JavaScript:
"javascript": {
"inlayHints": {
"parameterNames": {
"enabled": "all",
"suppressWhenArgumentMatchesName": false
},
"parameterTypes": {
"enabled": true
},
"variableTypes": {
"enabled": true,
"suppressWhenTypeMatchesName": true
},
"propertyDeclarationTypes": {
"enabled": true
},
"functionLikeReturnTypes": {
"enabled": true
},
"enumMemberValues": {
"enabled": true
}
}
},
// For TypeScript:
"typescript": {
"inlayHints": {
"parameterNames": {
"enabled": "all",
"suppressWhenArgumentMatchesName": false
},
"parameterTypes": {
"enabled": true
},
"variableTypes": {
"enabled": true,
"suppressWhenTypeMatchesName": true
},
"propertyDeclarationTypes": {
"enabled": true
},
"functionLikeReturnTypes": {
"enabled": true
},
"enumMemberValues": {
"enabled": true
}
}
}
}
}
}
}
另请参阅
- Zed Yarn 文档,其中包含配置项目以使用 Yarn 的演练。
- Zed Deno 文档