Crates.io | sane-fmt |
lib.rs | sane-fmt |
version | 0.18.1 |
source | src |
created_at | 2020-05-11 06:05:17.254877 |
updated_at | 2024-02-25 09:11:04.702862 |
description | Opinionated code formatter for TypeScript and JavaScript |
homepage | |
repository | https://github.com/sane-fmt/sane-fmt.git |
max_upload_size | |
id | 239999 |
size | 87,224 |
Opinionated code formatter for TypeScript and JavaScript.
Read exports/sane-fmt.typescript.json, src/rules.rs, and tests/rules.rs for more information.
Go to the release page.
cargo install sane-fmt
Links:
npm i -g @sane-fmt/wasm32-wasi
Links:
The WASM package while work on all platform, it is slow to start. For better speed, install one of the following packages instead:
For Linux:
For macOS:
For Windows:
Links:
paru -S sane-fmt
Links:
paru -S sane-fmt-bin
Links:
If you already have Dprint, you can skip installing sane-fmt
binary. Create a dprint.json
file with the following content:
{
"$schema": "https://dprint.dev/schemas/v0.json",
"projectType": "openSource",
"extends": "https://github.com/sane-fmt/sane-fmt/raw/master/exports/sane-fmt.dprint.json",
"includes": [
"**/*.js",
"**/*.ts"
],
"excludes": [
".git",
"node_modules"
],
"plugins": [
"https://plugins.dprint.dev/typescript-${DPRINT_TYPESCRIPT_VERSION}.wasm"
]
}
Notes:
master
in the "extends"
line above with appropriate sane-fmt version.${DPRINT_TYPESCRIPT_VERSION}
above with appropriate dprint-plugin-typescript version.See also:
sane-fmt --write
This command would reformat all TypeScript and JavaScript files.
sane-fmt
This command would check all TypeScript and JavaScript files.
sane-fmt --write foo.ts bar.js
This command would only reformat foo.ts
and bar.js
.
sane-fmt --write src/
This command would reformat all TypeScript and JavaScript files within src/
directory.
Each line of list.txt
is a path to a TypeScript/JavaScript file.
sane-fmt --include=list.txt
git ls-files | grep -Ei '\.(js|ts)$' | sane-fmt --include=-
sane-fmt
also provides a convenient way to integrate with GitHub Actions. To use it, simply add --log-format=github-actions
, like so:
sane-fmt --log-format=github-actions --details=diff
When this command is executed within a GitHub Actions runner, it will:
--details=diff
).total
, changed
, and unchanged
as outputs.Recommendation: This action will install sane-fmt
and execute it for you.
sane-fmt --help
If you installed sane-fmt via the AUR, completions for bash, fish, and zsh are already installed for you.
Shell completion files are located in ./exports directory of this repo or the Release Page with name in form of completion.<extension>
where <extension>
is corresponding file extension of target language. Install them to appropriate locations in your filesystem to use.
sane-fmt
is an opinionated code formatter for TypeScript and JavaScript powered by dprint. You can think of it as a portable Dprint config file that is always up-to-date.
I want to apply a single, consistent formatting for all my codes regardless of environment without complex tooling.
I have considered using Prettier or Dprint, but that would mean having to set up Node.js even in non-Node.js environments. I also don't like copying my config files back-and-forth to update them.
On the other hand, setting up sane-fmt
is simple: just download the binary.
Customization is antithetical to the purpose of this project, and as such, the sane-fmt
command does not have customization capability.
However, if you still want a copy of sane-fmt
with your own customized rules, do one of the following: