Biome

Biome 语言服务器

通过语言服务器协议(LSP)支持、扩展设置与编辑器工作流集成 Biome。

Biome 为 语言服务器协议(LSP) 提供一等支持。

支持的方法

Biome 语言服务器目前支持以下方法:

扩展设置

Biome 语言服务器暴露以下设置,扩展可以将其呈现给用户。

require_configuration

类型boolean
默认值false

Biome 语言服务器是否需要配置文件。设为 true 时,在项目根目录出现 biome.json 文件之前,它不会分析任何文件(解析除外)。

{
  "require_configuration": true
}

configuration_path

类型string
默认值null

自定义配置文件的路径。该路径可以指向 biome.jsonbiome.jsonc 文件,也可以指向包含它的文件夹。

路径可以是相对路径或绝对路径。Biome 语言服务器仅在提供了该选项时才会读取它。当配置文件位于项目的子文件夹中时,请使用此选项。

{
  "configuration_path": "./frontend/biome.json"
}

inline_config

类型object
默认值null

Biome 配置的内联版本。此配置中的选项会覆盖从磁盘读取的任何 biome.json 文件中的选项(或默认值)。

例如,假设你的项目以 error 严重性等级启用了 noConsole 规则:

{
  "linter": {
    "rules": {
      "suspicious": {
        "noConsole": "error"
      }
    }
  }
}

但在本地开发期间,你想停用这条规则,因为它很有用,而你又不想看到红色波浪线。在 inline_config 中,你可以写成类似下面的形式:

{
  "inline_config": {
    "linter": {
      "rules": {
        "suspicious": {
          "noConsole": "off"
        }
      }
    }
  }
}

go_to_definition

类型boolean
默认值false

使用 Biome 模块图启用 LSP 的 textDocument/definition 能力。

支持的内容:

  • 为 JavaScript、TypeScript、JSX、TSX 以及类 HTML 文件解析在同一文件或另一文件中声明的变量定义。
  • 解析 JSX/TSX 文件和类 HTML 文件中使用的 CSS 类定义。
  • 解析 JSX/TSX 组件的定义。
  • 解析类 HTML 组件的定义。

不在范围内的内容:

  • 解析依赖中定义的变量。
  • 解析依赖中定义、但未被项目导入的变量。

在编辑器扩展中集成 Biome

你可以通过多种方式在编辑器扩展中集成 Biome。

使用 LSP 代理

Biome 有一个名为 lsp-proxy 的命令。执行该命令时,Biome 会派生两个进程:

  • 一个执行所请求操作的守护进程
  • 一个作为代理的服务器,在客户端(编辑器)的请求与服务器(守护进程)之间转发;

如果你的编辑器能够与服务器交互并发送 JSON-RPC 请求,你只需配置编辑器运行该命令。

你可以查看 Neovim Biome 扩展 是如何实现的。

使用 stdin

如果你的编辑器不支持 LSP,你可以直接使用 biome 二进制文件,并通过标准输入调用它。

以下命令可以通过标准输入调用:

Biome 会把新的输出(若未发生变更,则返回原始输出)写到标准输出,并把诊断信息写到标准错误

使用 stdin 时,你必须传入 --stdin-file-path 选项。文件 path 无需在你的文件系统中存在,它可以是任意名称。关键在于提供正确的文件扩展名,这样 Biome 才知道如何处理你的文件。

由编辑器负责定位并解析二进制文件的路径,并在需要时调用它。这些二进制文件依据我们支持的架构和操作系统发布到 npm:

  • @biomejs/cli-darwin-arm64
  • @biomejs/cli-darwin-x64
  • @biomejs/cli-linux-arm64
  • @biomejs/cli-linux-x64
  • @biomejs/cli-win32-arm64
  • @biomejs/cli-win32-x64

二进制文件名为 biomebiome.exe,可以在该库的根目录中找到,例如:@biomejs/cli-darwin-arm64/biome@biomejs/cli-win32-x64/biome.exe

语言服务器暴露了一些选项,编辑器扩展可以将其呈现给用户。

通过二进制文件使用守护进程

通过 CLI 使用二进制文件非常高效,但你无法向用户提供日志。CLI 允许你先启动一个守护进程,再通过该守护进程本身使用 CLI 命令。

为此,你需要先用 start 命令启动一个守护进程:

biome start

然后,每条命令都需要加上 --use-server 选项,例如:

echo "console.log('')" | biome format --use-server --stdin-file-path=dummy.js

语言服务器日志

Biome 守护进程会将日志保存在你的文件系统中。日志存放在一个名为 biome-logs 的文件夹中。该文件夹的路径会随你的操作系统而变化:

  • Linux:~/.cache/biome
  • Windows:C:\Users\<UserName>\AppData\Local\biomejs\biome\cache
  • macOS:/Users/<UserName>/Library/Caches/dev.biomejs.biome

对于其他操作系统,你可以在系统的临时目录中找到该文件夹。

若要获取准确路径,请执行以下命令:

biome explain daemon-logs

日志文件按小时轮换。