Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Opinionated code formatter for TypeScript and JavaScript

License

NotificationsYou must be signed in to change notification settings

sane-fmt/sane-fmt

Repository files navigation

GitHub Actions StatusTravis Build Status

Opinionated code formatter for TypeScript and JavaScript.

Rules

  • Prefer single quotes.
  • No semicolons.
  • Trailing commas for multi-line.
  • No function parentheses for arrow function with single argument.
  • Multi-line union and intersection use consistent leading separator.

Preview.

Readexports/sane-fmt.typescript.json,src/rules.rs, andtests/rules.rs for more information.

Installation

Download prebuilt binaries

Go tothe release page.

cargo install sane-fmt

Links:

FromNPM

WASM (all platform)

npm i -g @sane-fmt/wasm32-wasi

Links:

Native binaries

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:

Download source and compile

paru -S sane-fmt

Links:

Download prebuilt binary

paru -S sane-fmt-bin

Links:

Use withDprint

If you already have Dprint, you can skip installingsane-fmt binary. Create adprint.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:

  • Replacemaster in the"extends" line above with appropriate sane-fmt version.
  • Replace${DPRINT_TYPESCRIPT_VERSION} above with appropriatedprint-plugin-typescript version.

See also:

Usage

Format all TypeScript and JavaScript files

sane-fmt --write

This command would reformat all TypeScript and JavaScript files.

Check for all TypeScript and JavaScript files

sane-fmt

This command would check all TypeScript and JavaScript files.

Format only some files

sane-fmt --write foo.ts bar.js

This command would only reformatfoo.ts andbar.js.

Format all TypeScript and JavaScript files in a directory

sane-fmt --write src/

This command would reformat all TypeScript and JavaScript files withinsrc/ directory.

Check all TypeScript and JavaScript files in a list

Each line oflist.txt is a path to a TypeScript/JavaScript file.

sane-fmt --include=list.txt

Check all TypeScript and JavaScript files from a Git repo

git ls-files| grep -Ei'\.(js|ts)$'| sane-fmt --include=-

GitHub Actions

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:

  • Annotates unformatted files.
  • Group diffs by file names (if--details=diff).
  • Exporttotal,changed, andunchanged as outputs.

Recommendation: Thisaction will installsane-fmt and execute it for you.

Print help message

sane-fmt --help

Shell Completions

If you installed sane-fmtvia the AUR, completions for bash, fish, and zsh are already installed for you.

Shell completion files are located in./exports directory of this repo orthe Release Page with name in form ofcompletion.<extension> where<extension> is corresponding file extension of target language. Install them to appropriate locations in your filesystem to use.

Become a Patron

My Patreon Page.

Frequently Asked Questions

What is this program?

sane-fmt is an opinionated code formatter for TypeScript and JavaScript powered bydprint. You can think of it as a portable Dprint config file that is always up-to-date.

What is the point of this program?

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 upsane-fmt is simple: just download the binary.

How to customize the rules?

Customization is antithetical to the purpose of this project, and as such, thesane-fmt command does not have customization capability.

However, if you still want a copy ofsane-fmt with your own customized rules, do one of the following:

License

MIT ©Hoàng Văn Khải


[8]ページ先頭

©2009-2025 Movatter.jp