Zed 扩展
关于 Biome 的 Zed 扩展的说明
安装
需要 Zed >= v0.131.0。
该扩展可在 Zed 编辑器内的扩展视图中找到。打开 zed: extensions 并搜索 Biome。它在底层运行 Biome 二进制文件,并按以下顺序检查 Biome 的安装:
- 在 Zed 配置中指定的路径,例如这样:
{
"lsp": {
"biome": {
"binary": {
"path": "/var/biome-2.2.3/bin/biome",
"arguments": [
"lsp-proxy"
]
}
}
}
}- 通过
package.json在本地安装的 Biome - 安装在
PATH中的系统级 Biome
如果以上都不存在,它会请求 Zed 使用 npm 安装 Biome 并加以使用。
配置
config_path
默认情况下,配置文件必须位于工作区根目录。
否则,可以通过 lsp 设置进行配置:
{
"lsp": {
"biome": {
"settings": {
"config_path": "<path>/biome.json"
}
}
}
}require_config_file
仅当项目包含配置文件时,它才启用 Biome:
默认值:
false
{
"lsp": {
"biome": {
"settings": {
"require_config_file": true
}
}
}
}inline_config
Biome 配置的内联版本。此配置中的选项会覆盖从磁盘读取的任何 biome.json 文件中的选项(或默认值)。
例如,假设你的项目以 error 严重性等级启用了 noConsole 规则:
{
"linter": {
"rules": {
"suspicious": {
"noConsole": "error"
}
}
}
}但在本地开发期间,你想停用这条规则,因为它很有用,而你又不想看到红色波浪线。在 inline_config 中,你可以写成类似下面的形式:
{
"lsp": {
"biome": {
"settings": {
"inline_config": {
"linter": {
"rules": {
"suspicious": {
"noConsole": "off"
}
}
}
}
}
}
}
}goto_definition
在编辑器中启用转到定义功能。
默认值:
false
{
"lsp": {
"biome": {
"settings": {
"goto_definition": false
}
}
}
}格式化
要将语言服务器用作格式化器,请在设置中将 biome 指定为你的格式化器:
{
"languages": {
"Astro": { "formatter": { "language_server": { "name": "biome" } } },
"CSS": { "formatter": { "language_server": { "name": "biome" } } },
"GraphQL": { "formatter": { "language_server": { "name": "biome" } } },
"HTML": { "formatter": { "language_server": { "name": "biome" } } },
"JSON": { "formatter": { "language_server": { "name": "biome" } } },
"JSONC": { "formatter": { "language_server": { "name": "biome" } } },
"JSX": { "formatter": { "language_server": { "name": "biome" } } },
"JavaScript": { "formatter": { "language_server": { "name": "biome" } } },
"Svelte": { "formatter": { "language_server": { "name": "biome" } } },
"TSX": { "formatter": { "language_server": { "name": "biome" } } },
"TypeScript": { "formatter": { "language_server": { "name": "biome" } } },
"Vue.js": { "formatter": { "language_server": { "name": "biome" } } },
}
}更多信息请见语言支持。
仅在存在 biome.json 时启用 biome
{
"lsp": {
"biome": {
"settings": {
"require_config_file": true
}
}
}
}格式化时运行代码操作:
{
"languages": {
"JavaScript": {
"formatter": { "language_server": { "name": "biome" } },
"code_actions_on_format": {
"source.fixAll.biome": true,
"source.organizeImports.biome": true
}
},
"TypeScript": {
"formatter": { "language_server": { "name": "biome" } },
"code_actions_on_format": {
"source.fixAll.biome": true,
"source.organizeImports.biome": true
}
},
"TSX": {
"formatter": { "language_server": { "name": "biome" } },
"code_actions_on_format": {
"source.fixAll.biome": true,
"source.organizeImports.biome": true
}
}
}
}如果你想在保存时应用不安全修复,你必须将规则的代码修复设为安全。
基于项目的配置
你可以将这些设置放在项目文件夹根目录的 Zed 项目设置(.zed/settings.json)中,或作为 Zed 用户设置(~/.config/zed/settings.json)放入,后者默认会应用于所有项目。
为特定项目禁用 biome
你可以通过以下方式,在项目中为某个特定语言(如 GraphQL)排除 biome:
{
"languages": {
"GraphQL": {
"language_servers": [ "!biome", "..." ]
}
}
}全局设置
不建议将 biome 添加到 Zed settings.json 的顶层 language_servers、formatter 或 code_actions_on_format 键中。在全局将 biome 指定为 language_server 或 formatter,可能会破坏 Biome 不支持的语言(如 Rust、Python 等)的功能。支持的完整语言列表请见语言支持。
本文档此前曾建议使用全局设置;请将你的 Zed 设置改为按语言逐一显式配置 biome。