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