Neanderthals Paint Mammals

    @sane-fmt/x86_64-unknown-linux-gnu

    0.13.0 • Public • Published

    sane-fmt

    GitHub Actions Status Travis 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.

    Read exports/sane-fmt.typescript.json, src/rules.rs, and tests/rules.rs for more information.

    Installation

    Download prebuilt binaries

    Go to the release page.

    From crates.io

    cargo install sane-fmt

    Links:

    From NPM

    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:

    From Deno Registry

    Links:

    From Arch User Repository

    Download source and compile

    paru -S sane-fmt

    Links:

    Download prebuilt binary

    paru -S sane-fmt-bin

    Links:

    Use with Dprint

    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:

    • Replace master in the "extends" line above with appropriate sane-fmt version.
    • Replace ${DPRINT_TYPESCRIPT_VERSION} above with appropriate dprint-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 reformat foo.ts and bar.js.

    Format all TypeScript and JavaScript files in a directory

    sane-fmt --write src/

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

    Check all TypeScript and JavaScript files in a list

    Each line of list.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).
    • Export total, changed, and unchanged as outputs.

    Recommendation: This action will install sane-fmt and execute it for you.

    Print help message

    sane-fmt --help

    Shell Completions

    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.

    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 by dprint. 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 up sane-fmt is simple: just download the binary.

    How to customize the rules?

    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:

    • Use sane-fmt as a library crate.
    • Fork this project.
    • Just use dprint.

    License

    MIT © Hoàng Văn Khải

    Keywords

    none

    Install

    npm i @sane-fmt/x86_64-unknown-linux-gnu

    DownloadsWeekly Downloads

    248

    Version

    0.13.0

    License

    none

    Unpacked Size

    3.83 MB

    Total Files

    3

    Last publish

    Collaborators

    • khai96_