Dropstone Docs

格式化工具

Dropstone 使用特定于语言的格式化工具。

Dropstone 可以在文件写入或编辑后使用特定于语言的格式化工具对其进行格式化。格式化工具默认处于禁用状态;在 Dropstone 运行它们之前,请在配置中启用它们。


内置格式化工具

Dropstone 为流行的语言和框架提供了多个内置格式化工具。以下是格式化工具、支持的文件扩展名和所需命令或配置选项的列表。

格式化工具扩展名要求
air.Rair 命令可用
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, 和 更多biome.json(c) 配置文件
cargofmt.rscargo fmt 命令可用
clang-format.c, .cpp, .h, .hpp, .ino, 和 更多.clang-format 配置文件
cljfmt.clj, .cljs, .cljc, .edncljfmt 命令可用
dart.dartdart 命令可用
dfmt.ddfmt 命令可用
gleam.gleamgleam 命令可用
gofmt.gogofmt 命令可用
htmlbeautifier.erb, .html.erbhtmlbeautifier 命令可用
ktlint.kt, .ktsktlint 命令可用
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix 命令可用
nixfmt.nixnixfmt 命令可用
ocamlformat.ml, .mliocamlformat 命令可用且 .ocamlformat 配置文件
ormolu.hsormolu 命令可用
pint.phpcomposer.json 中的 laravel/pint 依赖
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, 和 更多package.json 中的 prettier 依赖
rubocop.rb, .rake, .gemspec, .rurubocop 命令可用
ruff.py, .pyiruff 命令可用且有配置
rustfmt.rsrustfmt 命令可用
shfmt.sh, .bashshfmt 命令可用
standardrb.rb, .rake, .gemspec, .rustandardrb 命令可用
terraform.tf, .tfvarsterraform 命令可用
uv.py, .pyiuv 命令可用
zig.zig, .zonzig 命令可用

启用格式化工具后,如果您的项目在 package.json 中有 prettier,Dropstone 将对匹配的文件使用 prettier


工作原理

当 Dropstone 写入或编辑文件且启用了格式化工具时,它会:

  1. 根据所有启用的格式化工具检查文件扩展名。
  2. 在文件上运行相应的格式化工具命令。
  3. 应用格式化更改。

此过程在后台为启用的格式化工具进行。


配置

您可以通过 Dropstone 配置中的 formatter 部分启用和自定义格式化工具。

要启用所有内置格式化工具,请将 formatter 设置为 true

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": true
}

使用对象来保持内置格式化工具启用,同时配置覆盖或自定义格式化工具。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": {}
}

每个格式化工具配置支持以下内容:

属性类型描述
disabledboolean将此设置为 true 以禁用格式化工具
commandstring[]运行格式化的命令。对于自定义格式化工具为必需;对于内置格式化工具为可选。
environmentobject运行格式化工具时要设置的环境变量
extensionsstring[]此格式化工具应处理的文件扩展名

让我们看一些示例。


禁用格式化工具

如果省略 formatter,所有格式化工具都将被禁用。要在另一个配置启用它们后禁用所有格式化工具,请将 formatter 设置为 false

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": false
}

要禁用特定格式化工具,请将 disabled 设置为 true

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": {
    "prettier": {
      "disabled": true
    }
  }
}

自定义格式化工具

您可以使用 environmentextensions 等选项配置内置格式化工具。要添加自定义格式化工具,请指定 commandextensions

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": {
    "prettier": {
      "command": ["npx", "prettier", "--write", "$FILE"],
      "environment": {
        "NODE_ENV": "development"
      },
      "extensions": [".js", ".ts", ".jsx", ".tsx"]
    },
    "custom-markdown-formatter": {
      "command": ["deno", "fmt", "$FILE"],
      "extensions": [".md"]
    }
  }
}

命令中的 $FILE 占位符将被替换为正在格式化的文件的路径。

Ctrl+I