Skip to content

Language support

Legend:

  • ✅: Supported
  • 🚫: Not in progress
  • ⌛️: In progress
  • ⚠️: Partially supported (with some caveats)
LanguageParsingFormattingLinting
JavaScript
TypeScript
JSX
TSX
JSON
JSONC
HTML⌛️🚫🚫
Vue⚠️⚠️⚠️
Svelte⚠️⚠️⚠️
Astro⚠️⚠️⚠️
CSS✅️⌛️🚫
Markdown🚫🚫🚫

Biome supports the ES2023 version of the language.

Biome supports only the official syntax. The team starts development of the new syntax when a proposal reaches Stage 3.

Biome supports TypeScript version 5.2.

As of version 1.6.0, these languages are partially supported. Biome will get better over time, and it will provide more options to tweak your project. As for today, there are some expectations and limitations to take in consideration:

  • For .astro files, only the frontmatter portion of the file is supported.

  • For .vue and .svelte files, only the <script> tags portion of the file is supported.

  • Diagnostics will only show code frames that belong to the portions mentioned above.

  • When formatting .vue and .svelte files, the indentation of the JavaScript/TypeScript code will start from the beginning.

    file.vue
    <script>
    import Component from "./Component.vue";
    import Component from "./Component.vue";
    </script>
  • When linting .astro files, you have to add "Astro" to linter.globals, to avoid possible false positives from some lint rules.

    biome.json
    {
    "linter": {
    "globals": "Astro"
    }
    }
  • When linting .svelte files, it’s advised to turn off useConst to prevent compiler errors. Use the option overrides for that:

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