A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/helix-editor/helix/wiki/Formatter-configurations below:

Formatter Configurations · helix-editor/helix Wiki · GitHub

Helix can use external formatting programs available in the system $PATH.

You will also need to install https://www.npmjs.com/package/prettier-plugin-astro in your project

name = "astro"
formatter = { command = "prettier", args = ["--plugin", "prettier-plugin-astro", "--parser", "astro"] }
auto-format = true

GNU AWK can pretty-print scripts, which can be used as a formatter.

[[language]]
name = "awk"
formatter = { command = "awk", timeout = 5, args = [ "--file=/dev/stdin", "--pretty-print=/dev/stdout" ] }
auto-format = true

On macOS, GNU AWK installed via Homebrew is named gawk to not conflict with the system awk. Adjust the configuration accordingly.

Note

Since Bash Language Server 5.3.0 shfmt formatting is built into the language server, so you don't need this config if you have the shfmt binary installed

https://github.com/mvdan/sh#shfmt or https://github.com/patrickvane/shfmt

The following have been tested:

4 spaces:

[[language]]
name = "bash"
indent = { tab-width = 4, unit = "    " }
formatter = { command = 'shfmt', args = ["-i", "4"] }
auto-format = true

tabs:

[[language]]
name = "bash"
indent = { tab-width = 4, unit = "\t" }
formatter = { command = "shfmt" }
auto-format = true
[[language]]
name = "c"
file-types = ["c", "h"]
formatter = { command = 'clang-format' }
auto-format = true

[[language]]
name = "cpp"
file-types = ["cpp", "cc", "cxx", "hpp", "hcc", "hxx"]
formatter = { command = 'clang-format' }
auto-format = true

https://csharpier.com/

[[language]]
auto-format = true
name = "c-sharp"
formatter = { command = "csharpier" }

fish_indent is built into fish!

The following has been tested:

[[language]]
name = "fish"
formatter = { command = "fish_indent" }
auto-format = true

https://github.com/pseewald/fprettify

A formatter for modern Fortran code.

[[language]]
name = "fortran"
formatter = { command = "fprettify" , args = ["--stdout"] }
auto-format = true

https://github.com/Scony/godot-gdscript-toolkit

A formatter for GDScript.

[[language]]
name = "gdscript"
formatter = { command = "gdformat", args = ["-"] }
auto-format = true

Gofumpt support is built-in into gopls, which is Go's language server.

[language-server.gopls.config]
gofumpt = true

[[language]]
name = "go"
auto-format = true
[[language]]
name = "graphql"
formatter = { command = 'prettier', args = ["--parser", "graphql"] }
auto-format = true
[[language]]
name = "graphql"
formatter = { command = 'prettierd', args = [".graphql"] }
auto-format = true
[[language]]
name = "graphql"
formatter = { command = 'biome', args = ["format", "--stdin-file-path buffer.graphql"] }
auto-format = true

https://github.com/haskell/stylish-haskell

A simple Haskell code prettifier. This tool tries to help where necessary without getting in the way.

[[language]]
name = "haskell"
formatter = { command = "stylish-haskell", args = [] }
auto-format = true

https://github.com/fourmolu/fourmolu

Fourmolu is a formatter for Haskell source code. It is a fork of Ormolu, with the intention to continue to merge upstream improvements.

[[language]]
name = "haskell"
formatter = { command = "zsh", args = ["-c", "fourmolu --stdin-input-file $(pwd)" ] }
auto-format = true
[[language]]
name = "html"
formatter = { command = 'prettier', args = ["--parser", "html"] }
auto-format = true

[[language]]
name = "css"
formatter = { command = 'prettier', args = ["--parser", "css"] }
auto-format = true

[[language]]
name = "scss"
formatter = { command = 'prettier', args = ["--parser", "scss"] }
auto-format = true
[[language]]
name = "html"
formatter = { command = 'prettierd', args = [".html"] }
auto-format = true

[[language]]
name = "css"
formatter = { command = 'prettierd', args = [".css"] }
auto-format = true

[[language]]
name = "scss"
formatter = { command = 'prettierd', args = [".scss"] }
auto-format = true
[[language]]
name = "html"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "html" ] }
auto-format = true

[[language]]
name = "css"
formatter = { command = "deno", args = ["fmt", "-", "--ext", "css" ] }
auto-format = true
[[language]]
name = "css"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.css"] }
auto-format = true

https://github.com/google/google-java-format

Java code formatter. Reformats Java source code to comply with Google Java Style.

Create a shell script with the content below with execution permission, include it in the PATH to use four spaces instead of tabs.

#!/usr/bin/env bash

$JAVA_HOME/bin/java -jar <path-to-jar-file>/google-java-format-1.21.0-all-deps.jar -a $1

In languages.toml file:

[[language]]
name = "java"
indent = { tab-width = 4, unit = "    " }
formatter = { command = "google-java-format", args = ["-"] }
auto-format = true
JavaScript (JS), TypeScript (TS), JSX and TSX
[[language]]
name = "javascript"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true

[[language]]
name = "typescript"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true

[[language]]
name = "tsx"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true

Prettierd runs prettier as a daemon, with significant performance improvements

[[language]]
name = "javascript"
formatter = { command = 'prettierd', args = [".js"] }
auto-format = true

[[language]]
name = "typescript"
formatter = { command = 'prettierd', args = [".ts"] }
auto-format = true

[[language]]
name = "jsx"
formatter = { command = 'prettierd', args = [".jsx"] }
auto-format = true

[[language]]
name = "tsx"
formatter = { command = 'prettierd', args = [".tsx"] }
auto-format = true
[[language]]
name = "javascript"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "js" ] }
auto-format = true

[[language]]
name = "typescript"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "ts" ] }
auto-format = true

[[language]]
name = "jsx"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "jsx" ] }
auto-format = true

[[language]]
name = "tsx"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "tsx" ] }
auto-format = true
[[language]]
name = "javascript"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.js"] }
auto-format = true

[[language]]
name = "typescript"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.ts"] }
auto-format = true

[[language]]
name = "jsx"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.jsx"] }
auto-format = true

[[language]]
name = "tsx"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.tsx"] }
auto-format = true
[[language]]
name = "json"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "json" ] }
auto-format = true

[[language]]
name = "jsonc"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "jsonc" ] }
auto-format = true
[[language]]
name = "json"
formatter = { command = 'prettier', args = ["--parser", "json"] }
auto-format = true

[[language]]
name = "jsonc"
formatter = { command = 'prettier', args = ["--parser", "jsonc"] }
auto-format = true
[[language]]
name = "json"
formatter = { command = 'prettierd', args = [".json"] }
auto-format = true

[[language]]
name = "jsonc"
formatter = { command = 'prettierd', args = [".jsonc"] }
auto-format = true
[[language]]
name = "json"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.json"] }
auto-format = true

[[language]]
name = "json"
formatter = { command = 'biome', args = ["format", "--stdin-file-path", "buffer.jsonc"] }
auto-format = true
[[language]]
name = "just"
auto-format = true
formatter = { command = "just", args = ['--justfile', '/dev/stdin', '--dump'] }

Blade Formatter

[[language]]
name = "blade"
roots = ["composer.json", "index.php"]
formatter = { command = "blade-formatter", args = ["--write", "--stdin", "--wrap-line-length", "9999", "--wrap-attributes", "preserve-aligned"] }
auto-format = true

Format lua files using StyLua

[[language]]
name = "lua"
formatter = { command = "stylua", args = [ "-" ] }
auto-format = true
[[language]]
name = "markdown"
formatter = { command = 'deno', args = ["fmt", "-", "--ext", "md" ] }
auto-format = true
[[language]]
name = "markdown"
formatter = { command = "dprint", args = ["fmt", "--stdin", "md"] }
auto-format = true
[[language]]
name = "markdown"
formatter = { command = 'prettier', args = ["--parser", "markdown"] }
auto-format = true
[[language]]
name = "markdown"
formatter = { command = 'prettierd', args = [".md"] }
auto-format = true
[[language]]
name = "nix"
formatter = { command = "nixfmt" }
auto-format = true

https://github.com/ocaml-ppx/ocamlformat

[[language]]
name = "ocaml"
formatter = { command = "ocamlformat", args = ["-q", "--name=foo.ml", "-"] }
auto-format = true

The --name argument is required by ocamlformat when reading from stdin. foo.ml is a dummy value, the file does not have to exist for the formatter to work.

[[language]]
name = "python"
formatter = { command = "ruff", args = ["format", "--line-length", "88", "-"] }
auto-format = true
[[language]]
name = "python"
formatter = { command = "black", args = ["--quiet", "-"] }
auto-format = true

Another formatting option for Ruby is SyntaxTree, which is used "under the hood" by Prettier for Ruby. It provides a few configuration options, either passed in as arguments or with a local .streerc file.

[[language]]
name = "ruby"
formatter = { command = "bundle", args = ["exec", "stree", "format"] }
auto-format = true

A Ruby formatter that supports very little configuration so we can stop arguing about format and get on with our jobs. It's a wrapper around Rubocop so commands are basically identical.

[[language]]
name = "ruby"
formatter = { command = "bundle", args = ["exec", "standardrb", "--stdin", "foo.rb", "--fix", "--stderr"] }
auto-format = true

A Ruby static code analyzer and formatter, based on the community Ruby style guide.

[[language]]
name = "ruby"
config = { solargraph = { diagnostics = true, formatting = false } }
formatter = { command = "bundle", args = ["exec", "rubocop", "--stdin", "foo.rb", "-a", "--stderr", "--fail-level", "fatal"] }
auto-format = true

Argument explanations:

The "config" block will prevent diagnostics from also breaking if formatting fails.

If not using RuboCop via Bundler, you can modify the formatter command accordingly (omitting the bundle exec prepend):

formatter = { command = "rubocop", args = ["--stdin", "foo.rb", "-a", "--stderr", "--fail-level", "fatal"] }

dioxus fmt can format the rsx! macro:

[[language]]
name = "rust"
formatter = { command = "bash", args = ["-c", "rustfmt | dx fmt -f -"] }

https://github.com/andialbrecht/sqlparse

You can install sqlparse with pip to make the sqlformat command available.

[[language]]
name = "sql"
formatter = { command = "sqlformat", args = ["--reindent", "--indent_width", "2", "--keywords", "upper", "--identifiers", "lower", "-"] }
auto-format = true

You will also need to install https://www.npmjs.com/package/prettier-plugin-svelte in your project

name = "svelte"
formatter = { command = "prettier", args = ["--plugin", "prettier-plugin-svelte", "--parser", "svelte"] }
auto-format = true

https://github.com/apple/swift-format

swift-format provides the formatting technology for SourceKit-LSP and the building blocks for doing code formatting transformations.

[[language]]
name = "swift"
formatter = { command = "swift-format", args = ["format"] }
auto-format = true

Note

Older version of swift-format does not seem to work with helix (e.g. v0.50500.0). v509.0.0 verified as working.

https://github.com/tamasfe/taplo

A versatile, feature-rich TOML toolkit.

[[language]]
name = "toml"
formatter = { command = "taplo", args = ["format", "-"] }
auto-format = true

Note

taplo (with the lsp feature) can format files, but not buffers. And even the files that it should format, may trigger "this document has been excluded", which disables formatting. So that config is necessary if you always want formatting.

https://github.com/Enter-tainer/typstyle

Beautiful and reliable typst formatter

[[language]]
name = "typst"
formatter.command = "typstyle"
auto-format = true

https://github.com/astrale-sharp/typstfmt

Basic formatter for the Typst language with a future.

[[language]]
name = "typst"
formatter = { command = "typstfmt", args = ["--output", "-"] }
auto-format = true
[[language]]
name = "xml"
formatter = { command = "xmllint", args = ["--format", "-"] }
auto-format = true
[[language]]
name = "xml"
formatter = { command = "tidy", args = ["-q", "-xml", "--show-errors", "0", "--show-warnings", "0", "--force-output", "--indent", "auto",  "--vertical-space", "yes", "--tidy-mark", "no", "-wrap", "120"] }
auto-format = true
[[language]]
name = "yaml"
formatter = { command = "dprint", args = ["fmt", "--stdin", "yaml"] }
auto-format = true
[[language]]
name = "yaml"
formatter = { command = "prettier", args = ["--parser", "yaml"] }
auto-format = true
[[language]]
name = "yaml"
formatter = { command = "prettierd", args = [".yaml"] }
auto-format = true

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4