deno fmt 対応言語まとめ 2024

Deno 2 から deno fmt が HTML, CSS (SCSS, LESS も含む), YAML にも対応するようになりました。

https://github.com/denoland/deno/pull/25753

ちなみに、これら3言語のフォーマッターは @g-plane さんという人によって開発されています。

https://github.com/g-plane

`deno fmt` で対応できる言語が増えてきたため、どの拡張子でどの言語がフォーマットされるかを以下にまとめます。

| 言語                 | 拡張子                                                 | 備考                                                                                             |
| -------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| JavaScript           | `.js`, `.cjs`, `.mjs`                                  |                                                                                                  |
| TypeScript           | `.ts`, `.mts`, `.cts`                                  |                                                                                                  |
| JSX                  | `.jsx`                                                 |                                                                                                  |
| TSX                  | `.tsx`                                                 |                                                                                                  |
| Markdown             | `.md`, `.mkd`, `.mkdn`, `.mdwn`, `.mdown`, `.markdown` |                                                                                                  |
| JSON                 | `.json`                                                |                                                                                                  |
| JSONC                | `.jsonc`                                               |                                                                                                  |
| CSS                  | `.css`                                                 |                                                                                                  |
| HTML                 | `.html`                                                |                                                                                                  |
| [Nunjucks][Nunjucks] | `.njk`                                                 |                                                                                                  |
| [Vento][Vento]       | `.vto`                                                 |                                                                                                  |
| YAML                 | `.yml`, `.yaml`                                        |                                                                                                  |
| Sass                 | `.sass`                                                |                                                                                                  |
| SCSS                 | `.scss`                                                |                                                                                                  |
| LESS                 | `.less`                                                |                                                                                                  |
| Jupyter Notebook     | `.ipynb`                                               |                                                                                                  |
| Astro                | `.astro`                                               | `--unstable-component` フラグもしくは、deno.json で `"unstable": ["fmt-component"]` の設定が必要 |
| Svelte               | `.svelte`                                              | `--unstable-component` フラグもしくは、deno.json で `"unstable": ["fmt-component"]` の設定が必要 |
| Vue                  | `.vue`                                                 | `--unstable-component` フラグもしくは、deno.json で `"unstable": ["fmt-component"]` の設定が必要 |
| SQL                  | `.sql`                                                 | `--unstable-sql` フラグもしくは、deno.json で `"unstable": ["fmt-sql"]` の設定が必要             |

[Nunjucks]: https://mozilla.github.io/nunjucks/
[Vento]: https://github.com/ventojs/vento

Astro (`.astro`), Svelte (`.svelte`), Vue (`.vue`) などは、中身では html フォーマッターと共通の実装を使うようになっています。現状では unstable フラグつきで提供されています。

SQL (`.sql`) が最も最近追加された実装で、こちらも unstable フラグ付きで提供されています。

参考: https://docs.deno.com/runtime/reference/cli/fmt/#supported-file-types

Happy formatting!