23 unstable releases (3 breaking)
new 0.3.2 | Dec 2, 2024 |
---|---|
0.3.1 | Nov 13, 2024 |
0.3.0 | Oct 27, 2024 |
0.2.1 | Jun 28, 2024 |
0.0.1 | Mar 19, 2024 |
#194 in Development tools
388 downloads per month
540KB
13K
SLoC
mdsf
Format markdown code snippets using your favorite code formatters.
Table of contents
Installation
The latest version of mdsf
can be downloaded directly from github.com/hougesen/mdsf/releases.
Linux & MacOS
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/hougesen/mdsf/releases/latest/download/mdsf-installer.sh | sh
Windows
powershell -ExecutionPolicy ByPass -c "irm https://github.com/hougesen/mdsf/releases/latest/download/mdsf-installer.ps1 | iex"
Cargo
Install using the published crate:
cargo install mdsf --locked
or directly from source:
git clone [email protected]:hougesen/mdsf.git
cargo install --path ./mdsf --bin mdsf
If you do not have Cargo installed, you need to install it first.
npm/npx
You can install mdsf using npm:
npm install -g mdsf-cli
mdsf format .
or run it directly using npx:
npx mdsf-cli format .
Homebrew
brew install hougesen/tap/mdsf
Usage
mdsf 0.3.2
Format markdown code snippets using your favorite code formatters
Mads Hougesen <mads@mhouge.dk>
Usage: mdsf <COMMAND>
Commands:
format Run formatters on input files
verify Verify files are formatted
init Create a new mdsf config
completions Generate shell completion
cache-prune Remove old caches
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Formatting code
mdsf format file.md
Run formatters on input files
Usage: mdsf format [OPTIONS] [INPUT]...
Arguments:
[INPUT]... Path to files and/or directories
Options:
--config <CONFIG> Path to config
--debug Log stdout and stderr of formatters
--log-level <LOG_LEVEL> [possible values: trace, debug, info, warn, error, off]
--threads <THREADS> Amount of threads to use. Defaults to 0 (auto)
--cache Only format changed codeblocks
-h, --help Print help
-V, --version Print version
Verifying code
mdsf verify docs/
Verify files are formatted
Usage: mdsf verify [OPTIONS] [INPUT]...
Arguments:
[INPUT]... Path to files and/or directories
Options:
--config <CONFIG> Path to config
--debug Log stdout and stderr of formatters
--log-level <LOG_LEVEL> [possible values: trace, debug, info, warn, error, off]
--threads <THREADS> Amount of threads to use. Defaults to 0 (auto)
-h, --help Print help
-V, --version Print version
Configuration
The default configuration of mdsf
aims to as sane as possible. For that reason the default formatter for each language is the one most people have installed.
If you are interested in customizing which formatter is run, you can create a new mdsf
configuration file by running
mdsf init
mdsf
supports running multiple formatters on the save code snippet.
{
"languages": {
// Only run `ruff` on Python snippets,
"python": "ruff:format",
// Run `usort` on file and then `black`
"python": ["usort", "black"],
// Run `usort`, if that fails run `isort`, finally run `black`
"python": [["usort", "isort"], "black"],
// Formatters listed under "*" will be run on any snippet.
"*": ["typos"],
// Formatters listed under "_" will only be run when there is not formatter configured for the file type OR globally ("*").
"_": "prettier"
}
}
Tools
[!NOTE] mdsf is not a package manager.
Only tools that are already installed will be used.
mdsf
currently supports 210 tools. Feel free to open an issue/pull-request if your favorite tool/command is missing! 😃
Name | Description | Categories | Languages |
---|---|---|---|
alejandra | The Uncompromising Nix Code Formatter | formatter |
nix |
ameba | A static code analysis tool for Crystal | linter |
crystal |
asmfmt | Go Assembler Formatter | formatter |
go |
astyle | A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective-C, C#, and Java Source Code | formatter |
c# , c++ , c , java , objective-c |
auto-optional | Adds the Optional type-hint to arguments where the default value is None | formatter |
python |
autocorrect | A linter and formatter to help you to improve copywriting, correct spaces, words, and punctuations between CJK (Chinese, Japanese, Korean) | autocorrection |
|
autoflake | Removes unused imports and unused variables as reported by pyflakes | linter |
python |
autopep8 | A tool that automatically formats Python code to conform to the PEP 8 style guid | formatter |
python |
beancount-black | Opinionated code formatter, just like Python's black code formatter but for Beancount | formatter |
beancount |
beautysh | A Bash beautifier for the masses | formatter |
bash , shell |
bibtex-tidy | Cleaner and Formatter for BibTeX files | formatter |
bibtex |
bicep | Bicep is a declarative language for describing and deploying Azure resources | formatter |
bicep |
biome | One toolchain for your web project | formatter , linter |
javascript , json , typescript , vue |
black | The uncompromising Python code formatter | formatter |
python |
blade-formatter | An opinionated blade template formatter for Laravel that respects readability | formatter |
blade , laravel , php |
blue | The slightly less uncompromising Python code formatter | formatter |
python |
bpfmt | A formatter for Blueprint files | formatter |
blueprint |
brittany | A Haskell source code formatter | formatter |
haskell |
brunette | A best practice Python code formatter | formatter |
python |
bsfmt | A code formatter for BrightScript and BrighterScript | formatter |
brighterscript , brightscript |
bslint | A linter for BrightScript and BrighterScript | linter |
brightscript , brightscripter |
buf | The best way of working with Protocol Buffers | formatter |
protobuf |
buildifier | A bazel BUILD file formatter and | formatter |
bazel |
cabal-fmt | An experiment of formatting .cabal files | formatter |
cabal |
cabal-prettify | Prettify your Cabal package configuration files | formatter |
cabal |
cabal | Cabal is a system for building and packaging Haskell libraries and programs | formatter |
cabal |
caddy | Formats or prettifies a Caddyfile | formatter |
caddy |
caramel | Formatter for the Caramel programming language | formatter |
caramel |
clang-format | A tool to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code | formatter |
c# , c++ , c , java , javascript , json , objective-c , protobuf |
clang-tidy | clang-tidy is a clang-based C++ “linter” tool | linter |
c++ |
cljfmt | A tool for formatting Clojure code | formatter |
clojure |
cljstyle | A tool for formatting Clojure code | formatter |
clojure |
codespell | Check code for common misspellings | autocorrection |
|
crlfmt | Formatter for CockroachDB's additions to the Go style guide | formatter |
go |
crystal | Tools for the Crystal programming language | formatter |
crystal |
csharpier | An Opinionated Code Formatter for C# | formatter |
c# |
css-beautify | A css formatter | formatter |
css |
csscomb | CSS coding style formatter | formatter |
css |
d2 | Formatter for the d2 language | formatter |
d2 |
dart | Formatter and linter for Dart | formatter , linter |
dart , flutter |
dcm | Code Quality Tool for Flutter Developers | formatter , linter |
dart , flutter |
deno | Formatter and linter for JavaScript and TypeScript | formatter , linter |
javascript , json , typescript |
dfmt | Dfmt is a formatter for D source code | formatter |
d |
dhall | Format Dhall files | formatter |
dhall |
djade | A Django template formatter | formatter |
django , python |
djlint | Lint & Format HTML Templates | formatter , linter |
handlebars , html , jinja , mustache , nunjucks , twig |
docformatter | Formats docstrings to follow PEP 257 | formatter |
python |
dockfmt | Dockerfile format and parser. Like gofmt but for Dockerfiles |
formatter |
docker |
docstrfmt | A formatter for Sphinx flavored reStructuredText | formatter |
Sphinx , python , reStructuredText |
doctoc | Generates table of contents for markdown files | formatter |
markdown |
dotenv-linter | Lightning-fast linter for .env files | linter |
env |
dprint | A pluggable and configurable code formatting platform written in Rust | formatter |
|
easy-coding-standard | The Easiest way to add coding standard to your PHP project | formatter , linter |
php |
efmt | Erlang code formatter | formatter |
erlang |
elm-format | elm-format formats Elm source code according to a standard set of rules based on the official Elm Style Guide | formatter |
elm |
erb-formatter | Format ERB files with speed and precision | formatter |
erb , ruby |
erlfmt | An automated code formatter for Erlang | formatter |
erlang |
eslint | Find and fix problems in your JavaScript code | linter |
javascript , typescript |
fantomas | FSharp source code formatter | formatter |
fsharp |
fish_indent | Fish indenter and prettifier | formatter |
fish |
fixjson | JSON Fixer for Humans using (relaxed) JSON5 | formatter , linter |
json5 , json |
floskell | Floskell is a flexible Haskell source code pretty printer | formatter |
haskell |
fnlfmt | A formatter for Fennel code | formatter |
fennel |
forge | A Solidity formatter | formatter |
solidity |
fourmolu | A formatter for Haskell source code | formatter |
haskell |
fprettify | Auto-formatter for modern Fortran source code | formatter |
fortran |
gci | GCI, a tool that control golang package import order and make it always deterministic | formatter |
go |
gdformat | GDScript linter | formatter |
gdscript |
gersemi | A formatter to make your CMake code the real treasure | formatter |
cmake |
gleam | Format Gleam source code | formatter |
gleam |
gluon | Code formatting for the gluon programming language | formatter |
gluon |
gofmt | Gofmt formats Go programs | formatter |
go |
gofumpt | A stricter gofmt | formatter |
go |
goimports-reviser | Right imports sorting & code formatting tool (goimports alternative) | formatter |
go |
goimports | goimports updates your Go import lines, adding missing ones and removing unreferenced ones | formatter |
go |
golines | A golang formatter that fixes long lines | formatter |
go |
google-java-format | Reformats Java source code to comply with Google Java Style | formatter |
java |
grain | Code formatter for the Grain programming language | formatter |
grain |
haml-lint | Tool for writing clean and consistent HAML | linter |
haml |
hfmt | Format Haskell programs. Inspired by the gofmt utility | formatter |
haskell |
hindent | Extensible Haskell pretty printer | formatter |
haskell |
hlint | Haskell source code suggestions | linter |
haskell |
html-beautify | A html formatter | formatter |
html |
htmlbeautifier | A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates | formatter |
erb , html , ruby |
imba | A formatter for Imba | formatter |
imba |
isort | A Python utility to sort imports | formatter |
python |
joker | Small Clojure interpreter, linter and formatter | formatter , linter |
clojure |
js-beautify | A JavaScript formatter | formatter |
javascript |
json5format | JSON5 (a.k.a., "JSON for Humans") formatter that preserves contextual comments | formatter |
json5 , json |
jsona | JSONA linter and formatter | formatter , linter |
jsona |
jsonlint | A JSON parser and validator with a CLI | formatter , linter |
json |
jsonnetfmt | Formatter for automatically fixing jsonnet stylistic problems | formatter |
jsonnet |
juliaformatter.jl | An opinionated code formatter for Julia. Plot twist - the opinion is your own | formatter |
julia |
just | A formatter for justfiles | formatter |
just |
kcl | KCL Format tool supports reformatting KCL files to the standard code style | formatter |
kcl |
kdlfmt | A formatter for kdl documents | formatter |
kdl |
kdoc-formatter | Reformats Kotlin KDoc comments, reflowing text and other cleanup | formatter |
kotlin |
ktfmt | program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions | formatter |
kotlin |
ktlint | An anti-bikeshedding Kotlin linter with built-in formatter | linter |
kotlin |
kulala-fmt | An opinionated 🦄 .http and .rest 🐼 files linter 💄 and formatter ⚡. | formatter |
http |
leptosfmt | A formatter for the leptos view! macro | formatter |
rust |
liquidsoap-prettier | Prettier plugin for liquidsoap script | formatter |
liquidsoap |
luaformatter | Code formatter for Lua | formatter |
lua |
markdownfmt | Like gofmt, but for Markdown | formatter |
markdown |
markdownlint-cli2 | A fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library | linter |
markdown |
markdownlint | A Node.js style checker and lint tool for Markdown/CommonMark files | linter |
markdown |
markuplint | An HTML linter for all markup developers | linter |
html |
mdformat | CommonMark compliant Markdown formatter | formatter |
markdwon |
mdslw | Prepare your markdown for easy diff'ing! | formatter |
markdown |
misspell | Correct commonly misspelled English words in source files | autocorrection |
|
mix | Code formatter for Elixir | formatter |
elixir |
mojo | Formats Mojo source files | formatter |
mojo |
nginxbeautifier | Format and beautify nginx config files | formatter |
nginx |
nginxfmt | nginx config file formatter/beautifier written in Python with no additional dependencies | formatter |
nginx |
nickel | Better configuration for less | formatter |
nickel |
nimpretty | Code formatter for the Nim programming language | formatter |
nim |
nixfmt | The official (but not yet stable) formatter for Nix code | formatter |
nix |
nixpkgs-fmt | Nix code formatter for nixpkgs | formatter |
nix |
nph | An opinionated code formatter for Nim | formatter |
nim |
npm-groovy-lint | Lint, format and auto-fix your Groovy / Jenkinsfile / Gradle files | formatter , linter |
groovy |
ocamlformat | Auto-formatter for OCaml code | formatter |
ocaml |
ocp-indent | Indentation tool for OCaml | formatter |
ocaml |
opa | Format Rego source files | formatter |
rego |
ormolu | A formatter for Haskell source code | formatter |
haskell |
oxlint | Oxlint is designed to catch erroneous or useless code without requiring any configurations by default | linter |
javascript , typescript |
packer | Packer is used to format HCL2 configuration files | formatter |
hcl |
perltidy | Perl::Tidy, a source code formatter for Perl | formatter |
perl |
pg_format | A PostgreSQL SQL syntax beautifier | formatter |
sql |
php-cs-fixer | A tool to automatically fix PHP Coding Standards issues | formatter , linter |
php |
phpcbf | PHP Code Beautifier and Fixer fixes violations of a defined coding standard | formatter |
php |
phpinsights | Instant PHP quality checks from your console | linter |
php |
pint | Laravel Pint is an opinionated PHP code style fixer for minimalists | formatter , linter |
php |
prettier | Prettier is an opinionated code formatter | formatter |
css , html , javascript , json , typescript |
pretty-php | The opinionated PHP code formatter | formatter |
php |
prettypst | Formatter for Typst | formatter |
typst |
prisma | Commands for interacting with the prisma ORM | formatter |
prisma |
protolint | A pluggable linter and fixer to enforce Protocol Buffer style and conventions | linter |
protobuf |
ptop | Free Pascal source formatter | formatter |
pascal |
puppet-lint | Check that your Puppet manifests conform to the style guide | linter |
puppet |
purs-tidy | PureScript code formatter | formatter |
purescript |
purty | PureScript pretty-printer | formatter |
purescript |
pycln | A formatter for finding and removing unused import statements | formatter |
python |
pyink | Pyink is a Python formatter, forked from Black with a few different formatting behaviors | formatter |
python |
pyment | Format and convert Python docstrings and generates patches | formatter |
python |
qmlfmt | qmlfmt - command line application that formats QML files | formatter |
qml |
raco | An extensible code formatter for Racket | formatter |
racket |
refmt | refmt stands by Reason Formatter and it formats Reason programs, is a parser and pretty-printer for Reason | formatter |
reason |
reformat-gherkin | Reformat-gherkin automatically formats Gherkin files | formatter |
gherkin |
reorder-python-imports | Rewrites source to reorder python imports | formatter |
python |
rescript | Formatter for ReScript | formatter |
rescript |
roc | Tools for the roc programming language | formatter |
roc |
rstfmt | A formatter for reStructuredText | formatter |
restructuredtext |
rubocop | A Ruby static code analyzer and formatter, based on the community Ruby style guide | formatter , linter |
ruby |
rubyfmt | Ruby Autoformatter | formatter |
ruby |
ruff | An extremely fast Python linter and code formatter, written in Rust | formatter , linter |
python |
rufo | The Ruby Formatter | formatter |
ruby |
rune | Tools for the Rune programming language | formatter |
rune |
rustfmt | The official code formatter for Rust | formatter |
rust |
rustywind | CLI for organizing Tailwind CSS classes | formatter |
html |
scalafmt | Code formatter for Scala | formatter |
scala |
scalariform | Scala source code formatter | formatter |
scala |
shellharden | The corrective bash syntax highlighter | linter |
bash , shell |
shfmt | Shell script formatter | formatter |
shell |
sleek | Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity | formatter |
sql |
smlfmt | A custom parser/auto-formatter for Standard ML | formatter |
standard-ml |
snakefmt | The uncompromising Snakemake code formatter | formatter |
snakemake |
sql-formatter | A whitespace formatter for different query languages | formatter |
sql |
sqlfluff | A modular SQL linter and auto-formatter with support for multiple dialects and templated code | formatter , linter |
sql |
sqlfmt | sqlfmt formats your dbt SQL files so you don't have to | formatter |
sql |
sqruff | Fast SQL formatter/linter | formatter , linter |
sql |
standardjs | JavaScript style guide, linter, and formatter | formatter , linter |
javascript |
standardrb | Ruby's bikeshed-proof linter and formatter | formatter , linter |
ruby |
stylefmt | stylefmt is a tool that automatically formats stylesheets | formatter |
css , scss |
stylelint | A mighty CSS linter that helps you avoid errors and enforce conventions | linter |
css , scss |
stylish-haskell | Haskell code prettifier | formatter |
haskell |
stylua | An opinionated Lua code formatter | formatter |
lua |
superhtml | HTML Language Server & Templating Language Library | formatter |
html |
swift-format | Formatting technology for Swift source code | formatter |
swift |
swiftformat | A command-line tool and Xcode Extension for formatting Swift code | formatter |
swift |
taplo | A TOML toolkit written in Rust | formatter |
toml |
templ | Tooling for the Templ template language | formatter |
go , templ |
terraform | The terraform fmt command is used to rewrite Terraform configuration files to a canonical format and style | formatter |
terraform |
terragrunt | Recursively find hcl files and rewrite them into a canonical format | formatter |
hcl |
tlint | Tighten linter for Laravel conventions | linter |
php |
tofu | The tofu fmt command is used to rewrite OpenTofu configuration files to a canonical format and style | formatter |
terraform , tofu |
topiary | Topiary aims to be a uniform formatter for simple languages, as part of the Tree-sitter ecosystem | formatter |
|
ts-standard | Typescript style guide, linter, and formatter using StandardJS | formatter , linter |
typescript |
tsqllint | Configurable linting for TSQL | linter |
sql |
twig-cs-fixer | A tool to automatically fix Twig Coding Standards issues | formatter , linter |
twig |
typos | Source code spell checker | autocorrection |
|
typstfmt | Basic formatter for the Typst language | formatter |
typst |
typstyle | Beautiful and reliable typst code formatter | formatter |
typst |
ufmt | Safe, atomic formatting with black and usort | formatter |
python |
uiua | A stack-based array programming language | formatter |
uiua |
unimport | The ultimate linter and formatter for removing unused import statements in your code | formatter |
python |
usort | Safe, minimal import sorting for Python projects | formatter |
python |
v | Tooling for V lang | formatter |
v |
veryl | Veryl: A Modern Hardware Description Language | formatter |
veryl |
vhdl-style-guide | Style guide enforcement for VHDL | formatter |
vhdl |
wfindent | Indents and optionally converts Fortran program sources | formatter |
fortran |
xmlformat | Format and compress XML documents | formatter |
xml |
xmllint | XML linter | linter |
xml |
xo | JavaScript/TypeScript linter (ESLint wrapper) with great defaults | linter |
javascript , typescript |
yamlfix | A simple opinionated yaml formatter that keeps your comments | formatter |
yaml |
yamlfmt | An extensible command line tool or library to format yaml files | formatter |
yaml |
yapf | A formatter for Python files | formatter |
python |
yew-fmt | Code formatter for the Yew framework | formatter |
rust |
zig | Reformat Zig source into canonical form | formatter |
zig |
ziggy | Formats Ziggy documents and Ziggy schemas | formatter |
ziggy |
zprint | Executables, uberjar, and library to beautifully format Clojure and Clojurescript source code and s-expressions | formatter |
clojure , clojurescript |
Commands
mdsf
currently supports 216 commands. Feel free to open an issue/pull-request if your favorite tool is missing! 😃
Name | Command |
---|---|
alejandra |
alejandra --quiet $PATH |
ameba |
ameba --fix $PATH |
asmfmt |
asmfmt -w $PATH |
astyle |
astyle --quiet $PATH |
auto-optional |
auto-optional $PATH |
autocorrect |
autocorrect --fix $PATH |
autoflake |
autoflake --quiet --in-place $PATH |
autopep8 |
autopep8 --in-place $PATH |
beancount-black |
bean-black $PATH |
beautysh |
beautysh $PATH |
bibtex-tidy |
bibtex-tidy -m $PATH |
bicep:format |
bicep format $PATH |
biome:check |
biome check --write $PATH |
biome:format |
biome format --write $PATH |
biome:lint |
biome lint --write $PATH |
black |
black --quiet $PATH |
blade-formatter |
blade-formatter --write $PATH |
blue |
blue --quiet $PATH |
bpfmt |
bpfmt -w $PATH |
brittany |
brittany --write-mode=inplace $PATH |
brunette |
brunette --quiet $PATH |
bsfmt |
bsfmt $PATH --write |
bslint |
bslint --fix $PATH |
buf:format |
buf format --write $PATH |
buildifier |
buildifier $PATH |
cabal-fmt |
cabal-fmt --inplace $PATH |
cabal-prettify |
cabal-prettify $PATH |
cabal:format |
cabal format $PATH |
caddy:fmt |
caddy fmt $PATH -w |
caramel:fmt |
caramel fmt $PATH |
clang-format |
clang-format -i $PATH |
clang-tidy |
clang-tidy --fix $PATH |
cljfmt:fix |
cljfmt fix $PATH |
cljstyle |
cljstyle fix $PATH |
codespell |
codespell $PATH --check-hidden --write-changes |
crlfmt |
crlfmt -w $PATH |
crystal:format |
crystal tool format $PATH |
csharpier |
dotnet csharpier $PATH |
css-beautify |
css-beautify -r --type css -f $PATH |
csscomb |
csscomb -t $PATH |
d2:fmt |
d2 fmt $PATH |
dart:fix |
dart fix --apply $PATH |
dart:format |
dart format $PATH |
dcm:fix |
dcm fix $PATH |
dcm:format |
dcm format $PATH |
deno:fmt |
deno fmt --quiet $PATH |
deno:lint |
deno lint --fix $PATH |
dfmt |
dfmt -i $PATH |
dhall |
dhall format $PATH |
djade |
djade $PATH |
djlint |
djlint $PATH --reformat |
docformatter |
docformatter --in-place $PATH |
dockfmt |
dockfmt fmt -w $PATH |
docstrfmt |
docstrfmt $PATH |
doctoc |
doctoc $PATH |
dotenv-linter:fix |
dotenv-linter fix $PATH |
dprint:fmt |
dprint fmt $PATH |
easy-coding-standard |
ecs check $PATH --fix --no-interaction |
efmt |
efmt -w $PATH |
elm-format |
elm-format --elm-version=0.19 --yes $PATH |
erb-formatter |
erb-format $PATH --write |
erlfmt |
erlfmt -w $PATH_STRING |
eslint |
eslint --fix $PATH |
fantomas |
fantomas $PATH |
fish_indent |
fish_indent -w $PATH |
fixjson |
fixjson -w $PATH |
floskell |
floskell $PATH |
fnlfmt |
fnlfmt $PATH |
forge:fmt |
forge fmt $PATH |
fourmolu |
fourmolu -i $PATH |
fprettify |
fprettify $PATH |
gci |
gci write --skip-generated --skip-vender $PATH |
gdformat |
gdformat $PATH |
gersemi |
gersemi -i -q $PATH |
gleam:format |
gleam format $PATH |
gluon:fmt |
gluon fmt $PATH |
gofmt |
gofmt -w $PATH |
gofumpt |
gofumpt -w $PATH |
goimports-reviser |
goimports-reviser -format $PATH |
goimports |
goimports -w $PATH |
golines |
golines -w $PATH |
google-java-format |
google-java-format -i $PATH |
grain:format |
grain format $PATH -o $PATH |
haml-lint |
haml-lint --auto-correct $PATH |
hfmt |
hfmt -w $PATH |
hindent |
hindent $PATH |
hlint |
hlint --refactor -i $PATH |
html-beautify |
html-beautify -r --type html -f $PATH |
htmlbeautifier |
htmlbeautifier $PATH |
imba:fmt |
imba fmt -f $PATH |
isort |
isort --quiet $PATH |
joker |
joker --format --write $PATH |
js-beautify |
js-beautify -r --type js -f $PATH |
json5format |
json5format -r $PATH |
jsona:format |
jsona format $PATH |
jsona:lint |
jsona lint $PATH |
jsonlint |
jsonlint -i $PATH |
jsonnetfmt |
jsonnetfmt -i $PATH |
juliaformatter.jl |
julia -E using JuliaFormatter;format_file(\"{$PATH_STRING}\") |
just |
just --fmt --unstable --justfile $PATH |
kcl:fmt |
kcl fmt $PATH |
kdlfmt |
kdlfmt format $PATH |
kdoc-formatter |
kdoc-formatter --quiet $PATH |
ktfmt |
ktfmt --format --log-level=error $PATH |
ktlint |
ktlint --format --log-level=error $PATH |
kulala-fmt |
kulala-fmt $PATH |
leptosfmt |
leptosfmt --quiet $PATH |
liquidsoap-prettier |
liquidsoap-prettier --write $PATH |
luaformatter |
lua-format -i $PATH |
markdownfmt |
markdownfmt -w $PATH |
markdownlint-cli2 |
markdownlint-cli2 --fix $PATH |
markdownlint |
markdownlint --fix $PATH |
markuplint |
markuplint --fix $PATH |
mdformat |
mdformat $PATH |
mdslw |
mdslw $PATH |
misspell |
misspell -w $PATH |
mix:format |
mix format $PATH |
mojo:format |
mojo format -q $PATH |
nginxbeautifier |
nginxbeautifier $PATH |
nickel:format |
nickel format $PATH |
nimpretty |
nimpretty $PATH |
nixfmt |
nixfmt $PATH |
nixpkgs-fmt |
nixpkgs-fmt $PATH |
nph |
nph $PATH |
npm-groovy-lint |
npm-groovy-lint --format $PATH |
ocamlformat |
ocamlformat --ignore-invalid-option --inplace --enable-outside-detected-project $PATH |
ocp-indent |
ocp-indent --inplace $PATH |
opa:fmt |
opa fmt $PATH -w |
ormolu |
ormolu --mode inplace $PATH |
oxlint |
oxlint --fix $PATH |
packer:fmt |
packer fmt $PATH |
perltidy |
perltidy -b $PATH |
pg_format |
pg_format --inplace $PATH |
php-cs-fixer:fix |
php-cs-fixer fix $PATH |
phpcbf |
phpcbf $PATH |
phpinsights:fix |
phpinsights fix $PATH --no-interaction --quiet |
pint |
pint $PATH |
prettier |
prettier --embedded-language-formatting off --log-level error --write $PATH |
pretty-php |
pretty-php $PATH |
prettypst |
prettypst $PATH |
protolint |
protolint lint -fix $PATH |
ptop |
ptop $PATH $PATH |
puppet-lint |
puppet-lint --fix $PATH |
purs-tidy |
purs-tidy format-in-place $PATH |
purty |
purty --write $PATH |
pycln |
pycln --no-gitignore --quiet $PATH |
pyink |
pyink --quiet $PATH |
pyment |
pyment -w $PATH |
qmlfmt |
qmlfmt -w $PATH |
raco:fmt |
raco fmt -i $PATH |
refmt |
refmt --in-place $PATH |
reformat-gherkin |
reformat-gherkin $PATH |
reorder-python-imports |
reorder-python-imports $PATH |
rescript:format |
rescript format $PATH |
roc:format |
roc format $PATH |
rstfmt |
rstfmt $PATH |
rubocop |
rubocop --fix-layout --autocorrect --format quiet $PATH |
rubyfmt |
rubyfmt -i $PATH |
ruff:check |
ruff check --fix --quiet $PATH |
ruff:format |
ruff format --quiet $PATH |
rufo |
rufo --simple-exit $PATH |
rune:fmt |
rune fmt $PATH |
rustfmt |
rustfmt --edition 2021 --quiet $PATH |
rustywind |
rustywind --write $PATH |
scalafmt |
scalafmt --quiet --mode any $PATH |
scalariform |
scalariform $PATH |
shellharden |
shellharden --transform --replace $PATH |
shfmt |
shfmt --write $PATH |
sleek |
sleek $PATH |
smlfmt |
smlfmt --force $PATH |
snakefmt |
snakefmt $PATH |
sql-formatter |
sql-formatter --fix $PATH |
sqlfluff:fix |
sqlfluff fix --dialect ansi $PATH |
sqlfluff:format |
sqlfluff format --dialect ansi $PATH |
sqlfmt |
sqlfmt $PATH |
sqruff |
sqruff fix $PATH |
standardjs |
standard --fix $PATH |
standardrb |
standardrb --fix $PATH |
stylefmt |
stylefmt $PATH |
stylelint |
stylelint --fix $PATH |
stylish-haskell |
stylish-haskell --inplace $PATH |
stylua |
stylua --verify $PATH |
superhtml:fmt |
superhtml fmt $PATH |
swift-format |
swift-format --in-place $PATH |
swiftformat |
swiftformat --quiet $PATH |
taplo |
taplo format $PATH |
templ:fmt |
templ fmt $PATH |
terraform:fmt |
terraform fmt -write=true $PATH |
terragrunt:hclfmt |
terragrunt hclfmt --terragrunt-hclfmt-file $PATH |
tlint:format |
tlint format $PATH |
tofu:fmt |
tofu fmt -write=true $PATH |
topiary |
topiary format $PATH |
ts-standard |
ts-standard --fix $PATH |
tsqllint |
tsqllint --fix $PATH |
twig-cs-fixer:lint |
twig-cs-fixer lint $PATH --fix --no-interaction --quiet |
typos |
typos -w --no-ignore --hidden $PATH |
typstfmt |
typstfmt $PATH |
typstyle |
typstyle -i $PATH |
ufmt |
ufmt format $PATH |
uiua:fmt |
uiua fmt $PATH |
unimport |
unimport -r $PATH |
usort |
usort format $PATH |
v:fmt |
v fmt -w $PATH |
veryl:fmt |
veryl fmt $PATH |
vhdl-style-guide |
vsg -f $PATH --fix |
wfindent |
wfindent $PATH |
xmlformat |
xmlformat --overwrite $PATH |
xmllint |
xmllint --format $PATH --output $PATH |
xo |
xo --fix $PATH |
yamlfix |
yamlfix $PATH |
yamlfmt |
yamlfmt -quiet $PATH |
yapf |
yapf --in-place $PATH |
yew-fmt |
yew-fmt --edition 2021 --quiet $PATH |
zig:fmt |
zig fmt $PATH |
ziggy:fmt |
ziggy fmt $PATH |
zprint |
zprint -w $PATH |
Shell completions
Shell completions can be generated using mdsf completions <SHELL>
.
Generate shell completion
Usage: mdsf completions <SHELL>
Arguments:
<SHELL> [possible values: bash, elvish, fish, powershell, zsh]
Options:
-h, --help Print help
-V, --version Print version
Bash
Add the following to your .bashrc
.
eval "$(mdsf completions bash)"
Bash
Add the following to your .zshrc
.
eval "$(mdsf completions zsh)"
Fish
Add the following to ~/.config/fish/config.fish
.
mdsf completions fish | source
PowerShell
Add the following to your PowerShell configuration (Can be found by running $PROFILE
).
Invoke-Expression (&mdsf completions powershell)
Elvish
Add the following to ~/.elvish/rc.elv
.
eval (mdsf completions elvish)
Acknowledgement
mdsf was inspired by the amazing neovim formatting plugin conform.nvim.
Alternatives to mdsf
- conform.nvim using
injected
mode. - mdformat.
Dependencies
~9–21MB
~302K SLoC