2.6 KiB
A list of known formatters
Here is a list of all the formatters we tested. Feel free to send a PR to add other ones!
prettier
An opinionated code formatter that supports many languages.
command = "prettier"
options = ["--write"]
includes = [
"*.css",
"*.html",
"*.js",
"*.json",
"*.jsx",
"*.md",
"*.mdx",
"*.scss",
"*.ts",
"*.yaml",
]
Black
A python formatter.
command = "black"
includes = ["*.py"]
clang-format
A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C# code.
command = "clang-format"
options = [ "-i" ]
includes = [ "*.c", "*.cpp", "*.cc", "*.h", "*.hpp" ]
Note: This example focuses on C/C++ but can be modified to use with other languages.
Elm
command = "elm-format"
options = ["--yes"]
includes = ["*.elm"]
Go
command = "gofmt"
options = ["-w"]
includes = ["*.go"]
Ormolu
Haskell formatter. Make sure to use ormolu 0.1.4.0+ as older versions don't adhere to the spec.
command = "ormolu"
options = [
"--ghc-opt", "-XBangPatterns",
"--ghc-opt", "-XPatternSynonyms",
"--ghc-opt", "-XTypeApplications",
"--mode", "inplace",
"--check-idempotence",
]
includes = ["*.hs"]
stylish-haskell
Another Haskell formatter.
command = "stylish-haskell"
options = [ "--inplace" ]
includes = [ "*.hs" ]
nixpkgs-fmt
Nix code formatter.
command = "nixpkgs-fmt"
includes = ["*.nix"]
rustfmt
command = "rustfmt"
options = ["--edition", "2018"]
includes = ["*.rs"]
rufo
Rufo is an opinionated ruby formatter. By default it exits with status 3 on
file change so we have to pass the -x
option.
command = "rufo"
options = ["-x"]
includes = ["*.rb"]
cargo fmt
cargo fmt
is not supported as it doesn't follow the spec. It doesn't allow
to pass arbitrary files to be formatted, which treefmt relies on. Use rustfmt
instead (which is what cargo fmt
uses under the hood).
shfmt
A shell code formatter.
command = "shfmt"
options = [
"-i",
"2", # indent 2
"-s", # simplify the code
"-w", # write back to the file
]
includes = ["*.sh"]
terraform
terraform fmt only supports formatting one file at the time. See https://github.com/hashicorp/terraform/pull/28191