コンテンツにスキップ

言語サポート

凡例:

  • ✅: 対応済み
  • 🚫: 進行中ではない
  • ⌛️: 進行中
  • ⚠️: 一部サポート(いくつかの注意点あり)
LanguageParsingFormattingLinting
JavaScript
TypeScript
JSX
TSX
JSON
JSONC
HTML⌛️🚫🚫
Vue⚠️⚠️⚠️
Svelte⚠️⚠️⚠️
Astro⚠️⚠️⚠️
CSS✅️✅️✅️
YAML⌛️🚫🚫
GraphQL✅️✅️✅️
Markdown⌛️🚫🚫

Biomeは、JavaScript(ES2023)をサポートしています。 また、公式の構文のみをサポートしています。新しい構文に対する機能の開発は、その構文の提案がStage 3に達したときに開始されます。

Biomeは、TypeScriptバージョン5.6をサポートしています。

JSONCは「コメント付きJSON」の略です。この形式は、VS CodeTypeScriptBabelなどのさまざまなツールで広く使用されています。JSONCは、構成ファイルにコメントを追加できるため便利です。ただし、JSONCは厳密な標準ではないため、ツールごとに末尾のカンマの扱いが異なる場合があります。これに対応するために、Biomeは専用のJSONC言語設定を提供する代わりに、JSONのパースおよびformat機能を拡張し、 json.parser.allowCommentsjson.parser.allowTrailingCommasjson.formatter.trailingCommas などのオプションを提供しています。このアプローチにより、BiomeはさまざまなバリエーションのJSONファイルを効果的にサポートできます。

.jsonc 拡張子を持つファイルや言語識別子に従って jsonc として識別されるファイルに対して、Biomeは自動的に次のデフォルト設定を適用してパースおよびformatを行います:

  • json.parser.allowComments: true
  • json.parser.allowTrailingCommas: true
  • json.formatter.trailingCommas: none

tsconfig.json.babelrc などのよく知られたファイルは .jsonc 拡張子を使用しませんが、コメントや末尾のカンマを許可するものもあります。一方、 .eslintrc.json のようなファイルはコメントのみを許可します。Biomeはこれらのファイルを識別し、適切に json.parser.allowTrailingCommas オプションを調整して正しくパースできるようにします。

このセクションでは、Biomeが認識できる既知のファイルの完全なリストを提供しています。

HTML拡張言語のサポート

Section titled HTML拡張言語のサポート

バージョン 1.6.0 以降、これらの言語は部分的にサポートされています。Biomeは時間とともに改善され、プロジェクトを調整するためのオプションが増えていく予定です。しかし、現在ではいくつかの期待と制限を考慮する必要があります:

  • .astro ファイルでは、フロントマター部分のみがサポートされています。

  • .vue および .svelte ファイルでは、<script>タグ部分のみがサポートされています。

  • 診断は上記の部分に属するコードフレームのみを表示します。

  • .vue および .svelte ファイルをformatする際、JavaScript/TypeScriptコードのインデントは最初から始まります。

    file.vue
    <script>
    import Component from "./Component.vue";
    import Component from "./Component.vue";
    </script>
  • .astro ファイルを静的解析する際、誤検知を避けるために javascript.globals"Astro" を追加する必要があります。

    biome.json
    {
    "javascript": {
    "globals": ["Astro"]
    }
    }
  • .svelte ファイルを静的解析する際、コンパイラエラーを防ぐために useConst をオフにすることをお勧めします。オプション overrides を使用します:

    {
    "overrides": [
    {
    "include": ["*.svelte"],
    "linter": {
    "rules": {
    "style": {
    "useConst": "off"
    }
    }
    }
    }
    ]
    }