Skip to content

Supported Languages ​

gruft supports a variety of languages and markup types. Below is a list of supported languages and the formatters and linters used for each.

Key ​

  • ✅: Supported
  • 🚫: Not in progress
  • ⌛️: In progress
  • ⚠️: Partially supported (with some caveats)

Formatters ​

Language/MarkupFormatterExtensionDefaultStatus
Astromarkup_fmt.astro✅⌛️
CSSBiome.css🚫
CSSMalva.css✅🚫
Gogofumpt.go✅🚫
HTMLmarkup_fmt.html,.htm✅⌛️
JavaScriptBiome.js,.cjs,.mjs✅✅
JavaScriptdprint.js,.cjs,.mjs🚫
Jinjamarkup_fmt.jinja, .jinja2✅⌛️
JSONBiome.json✅✅
JSONdprint.json⌛️
JSONCBiome.jsonc✅✅
JSONCdprint.jsonc⌛️
JSXBiome.jsx✅✅
JSXdprint.jsx⌛️
Jupyterdprint✅🚫
LessMalva✅🚫
Markdowndprint✅🚫
Nunjucksmarkup_fmt.njk✅⌛️
PythonRuff✅🚫
SassMalva✅🚫
SCSSMalva✅🚫
Shell (Bash)shfmt.bash,.sh✅✅
Shell (Bats)shfmt.bats,.sh✅✅
Shell (POSIX)shfmt.sh✅✅
Shell (MirBSD Korn)shfmt.mksh,.sh✅✅
SQLsqlformat-rs.sql✅✅
Sveltemarkup_fmt✅⌛️
TOMLtaplo.toml✅✅
Twigmarkup_fmt.twig✅⌛️
TypeScriptBiome.ts,.cts,.mts✅✅
TypeScriptdprint.ts,.cts,.mts🚫
TSXBiome✅🚫
TSXdprint🚫
Ventomarkup_fmt.vto✅⌛️
Vuemarkup_fmt.vue✅⌛️
YAMLyamlfmt✅🚫

Linters ​

Currently, linting is not supported but is on the roadmap. Track progress on GitHub.

Language/MarkupLinterDefaultStatus
JavaScriptBiome✅🚫
JavaScriptoxlint🚫
JSONBiome✅🚫
JSONCBiome✅🚫
JSXBiome✅🚫
JSXoxlint🚫
PythonRuff✅🚫
Shellshellcheck✅🚫
TypeScriptBiome✅🚫
TypeScriptoxlint🚫
TSXBiome✅🚫
TSXoxlint🚫

Special Files ​

Certain well-known files or extensions are specially included into our language matcher to ensure they are formatted correctly.

NameFile/ExtensionLanguage
dotenv.env,.env.*Shell (Bash)
hostshostsShell (Bash)
JvmOptionsjvm.options,*.vmoptionsShell (Bash)
nvmrc.node-version,.nvmrcShell (Bash)
properties.propertiesShell (Bash)

Contributing ​

For any issues regarding formatters and linters, please make an issue in the gruft repository and we'll upstream any source issues.

Also, consider starring any tools used to support them as well!