Language support
Legend:
- ✅: Supported
- 🚫: Not in progress
- ⌛️: In progress
- ⚠️: Partially supported (with some caveats)
Language | Parsing | Formatting | Linting |
---|---|---|---|
JavaScript | ✅ | ✅ | ✅ |
TypeScript | ✅ | ✅ | ✅ |
JSX | ✅ | ✅ | ✅ |
TSX | ✅ | ✅ | ✅ |
JSON | ✅ | ✅ | ✅ |
JSONC | ✅ | ✅ | ✅ |
HTML | ⌛️ | 🚫 | 🚫 |
Vue | ⚠️ | ⚠️ | ⚠️ |
Svelte | ⚠️ | ⚠️ | ⚠️ |
Astro | ⚠️ | ⚠️ | ⚠️ |
CSS | ✅️ | ⌛️ | ⌛️ |
Markdown | 🚫 | 🚫 | 🚫 |
JavaScript support
Section titled JavaScript supportBiome 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.
TypeScript support
Section titled TypeScript supportBiome supports TypeScript version 5.2.
HTML super languages support
Section titled HTML super languages supportAs 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"
tojavascript.globals
, to avoid possible false positives from some lint rules.biome.json {"javascript": {"globals": ["Astro"]}} -
When linting
.svelte
files, it’s advised to turn offuseConst
to prevent compiler errors. Use the optionoverrides
for that:{"overrides": [{"include": ["*.svelte"],"linter": {"rules": {"style": {"useConst": "off"}}}}]}