言語サポート
凡例:
- ✅: 対応済み
- 🚫: 進行中ではない
- ⌛️: 進行中
- 🟡: 実験的
| 言語 | パース | フォーマット | リント | プラグインサポート |
|---|---|---|---|---|
| JavaScript | ✅ | ✅ | ✅ | ✅ |
| TypeScript | ✅ | ✅ | ✅ | ✅ |
| JSX | ✅ | ✅ | ✅ | ✅ |
| TSX | ✅ | ✅ | ✅ | ✅ |
| JSON | ✅ | ✅ | ✅ | ✅ |
| JSONC | ✅ | ✅ | ✅ | ✅ |
| HTML* | ✅ | ✅ | ✅ | ✅ |
| Vue | 🟡 | 🟡 | 🟡 | 🟡 |
| Svelte | 🟡 | 🟡 | 🟡 | 🟡 |
| Astro | 🟡 | 🟡 | 🟡 | 🟡 |
| CSS | ✅️ | ✅️ | ✅️ | ✅ |
| SCSS | ⌛️ | ⌛️ | 🚫 | 🚫 |
| YAML | ⌛️ | ⌛️ | 🚫 | 🚫 |
| GraphQL | ✅️ | ✅️ | ✅️ | 🚫 |
| Markdown | ⌛️ | ⌛️ | 🚫 | 🚫 |
| GritQL | ✅️ | ✅️ | 🚫 | 🚫 |
* 現在、明示的なオプトインが必要です。
JavaScriptのサポート
Section titled “JavaScriptのサポート”BiomeはES2024バージョンの言語をサポートしています。
Biomeは公式の構文のみをサポートしています。新しい構文の開発は、提案が Stage 3に達したときに開始されます。
埋め込み言語のサポート(実験的)
Section titled “埋め込み言語のサポート(実験的)”BiomeはJavaScriptのテンプレートリテラル内に埋め込まれた以下の言語をサポートしています:
- CSS(
cssまたはstyledタグ) - GraphQL(
gqlまたはgraphqlタグ)
この機能はまだ実験的で、デフォルトでは無効になっています。この機能を有効にするには、javascript.experimentalEmbeddedSnippetsEnabled オプションを設定してください。
{ "javascript": { "experimentalEmbeddedSnippetsEnabled": true }}TypeScriptのサポート
Section titled “TypeScriptのサポート”Biomeは、TypeScriptバージョン5.6をサポートしています。
JSONCサポート
Section titled “JSONCサポート”JSONCは「コメント付きJSON」の略です。この形式は、VS Code、TypeScript、Babelなどのさまざまなツールで広く使用されています。JSONCは、構成ファイルにコメントを追加できるため便利です。ただし、JSONCは厳密な標準ではないため、ツールごとに末尾のカンマの扱いが異なる場合があります。これに対応するために、Biomeは専用のJSONC言語設定を提供する代わりに、JSONのパースおよびフォーマット機能を拡張し、 json.parser.allowComments 、 json.parser.allowTrailingCommas 、 json.formatter.trailingCommas などのオプションを提供しています。このアプローチにより、BiomeはさまざまなバリエーションのJSONファイルを効果的にサポートできます。
.jsonc 拡張子を持つファイルや言語識別子に従って jsonc として識別されるファイルに対して、Biomeは自動的に次のデフォルト設定を適用してパースおよびフォーマットを行います:
json.parser.allowComments:truejson.parser.allowTrailingCommas:truejson.formatter.trailingCommas:none
tsconfig.json や .babelrc などのよく知られたファイルは .jsonc 拡張子を使用しませんが、コメントや末尾のカンマを許可するものもあります。一方、 .eslintrc.json のようなファイルはコメントのみを許可します。Biomeはこれらのファイルを識別し、適切に json.parser.allowTrailingCommas オプションを調整して正しくパースできるようにします。
このセクションでは、Biomeが認識できる既知のファイルの完全なリストを提供しています。
HTML拡張言語のサポート
Section titled “HTML拡張言語のサポート”バージョン v2.3.0 以降、BiomeはVue、Svelte、Astroファイルをすぐにサポートしています。これは、Biomeがファイル内のHTML、CSS、JavaScriptの部分をフォーマットおよびリントできることを意味します。
ただし、このサポートは実験的なものと見なす必要があり、変更や改善の対象となります。v2.3.0 では、この機能を可能にするアーキテクチャが導入されましたが、いくつかのフォーマットおよびリントルールは調整が必要です。
特に、v2.3.0 の時点では、Biomeは言語固有の構文(例:Svelteの制御フロー構文 {#if } {/if})に対して特別なパースを行いません。これは、フォーマットが期待される結果と一致しない場合があり、リントルールが一部のケースを検出できない可能性があることを意味します。
埋め込み言語をまたいで動作するリントルールはまだサポートされていません。
HTML系言語のリント
Section titled “HTML系言語のリント”html.experimentalFullSupportEnabled が false の場合に .svelte、.astro、または .vue ファイルをリントする際は、部分的なサポートによって引き起こされる誤検出のリントエラーを防ぐために、いくつかの追加ルールをオフにすることをお勧めします。そのために overrides オプションを使用します:
{ "overrides": [ { "includes": ["**/*.svelte", "**/*.astro", "**/*.vue"], "linter": { "rules": { "style": { "useConst": "off", "useImportType": "off" }, "correctness": { "noUnusedVariables": "off", "noUnusedImports": "off" } } } } ]}異なる設定でのフォーマット
Section titled “異なる設定でのフォーマット”Biomeでは、異なる言語のフォーマットを制御できます。Biomeが同じファイル内で複数の言語を処理できるようになったため、設定によっては不整合が発生する可能性が高まります。
例えば、完全サポートが有効になっていると仮定した場合、JavaScriptとCSSコードを含むHTML系ファイルをフォーマットする際に、次の例のようにタブとスペースが混在するファイルになるリスクがあります:
{ "javascript": { "format": { "indentStyle": "tab" } }, "css": { "format": { "indentStyle": "space", "indentWidth": 4 } }}この問題に対処するためのGitHubディスカッションを作成しました。ディスカッションに参加して、ご意見をお聞かせください。
Copyright (c) 2023-present Biome Developers and Contributors.