Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
a04c8df
feat(lsp): report progress while scanning the project (#7961)
siketyan Nov 5, 2025
96e2888
feat(formatter/yaml): setup stub implementation (#8000)
siketyan Nov 6, 2025
e90b14f
feat(biome_js_analyze): custom jsxFactory and jsxFragmentFactory (#7847)
Jagget Nov 6, 2025
1c59333
fix(lint): improve `useHookAtTopLevel` lint (#7749)
andogq Nov 12, 2025
7f5bcf4
feat(core): watcher options (#8071)
ematipico Nov 13, 2025
5901d79
feat(js/useImportExtensions): add `extensionMappings` option (#7762)
dyc3 Nov 14, 2025
1d25856
feat: sort interface members (#8164)
ematipico Nov 19, 2025
e0b3f62
feat(lint/html): add `noAccessKey` (#8165)
lucasweng Nov 19, 2025
4291ff3
feat(biome_html_analyze): add useButtonType rule (#8241) (#8243)
ashnewmanjones Nov 24, 2025
4186b83
feat(lint/html): add `useHtmlLang` (#8262)
lucasweng Nov 26, 2025
ce40337
Merge branch 'main' into next
dyc3 Nov 26, 2025
a248e88
feat(lint/html): implement noDistractingElements for html (#8287)
mehm8128 Nov 27, 2025
da85e3c
feat(css): add support for the typed `attr` CSS function (#8255)
ryan-m-walker Nov 28, 2025
7207eff
feat(lsp): provide inline configuration (#8278)
ematipico Nov 29, 2025
4f7909d
feat(lint/html): add `useIframeTitle` (#8270)
lucasweng Nov 29, 2025
e2e6e66
feat(css): update CSS properties order to align with stylelint-config…
ongyuxing Dec 4, 2025
789b0e7
feat(lint/html): implement useValidAriaRole for html (#8307)
mehm8128 Dec 4, 2025
4460388
Merge branch 'main' into next
siketyan Dec 7, 2025
c6afa4a
test: fix recent failures on `next` (#8388)
dyc3 Dec 8, 2025
50c3513
feat(lint/html): implement useAriaPropsForRole for html (#8381)
mehm8128 Dec 8, 2025
bc0e8b4
feat: support formatting embedded CSS in JS (#7973)
siketyan Dec 8, 2025
1538985
Merge branch 'main' into next
ematipico Dec 8, 2025
36d3764
Merge remote-tracking branch 'origin/main' into next
ematipico Dec 8, 2025
54682aa
feat(useSortedKeys): add groupByNesting option (#7799)
PaulRBerg Dec 9, 2025
6c5f368
chore: fix compiling issue
ematipico Dec 9, 2025
1a9334c
feat: support formatting GraphQL in JS (#8376)
siketyan Dec 9, 2025
c61892d
Merge remote-tracking branch 'origin/main' into next
ematipico Dec 16, 2025
8eb3f19
feat(html/noPositiveTabindex): port noPositiveTabindex rule to HTML (…
tt-a1i Dec 18, 2025
bf02ba6
refactor(cli): make commands more generic (#8485)
ematipico Dec 19, 2025
ab88099
feat(html): support CSS modules syntax and vue css syntax (#8399)
ematipico Dec 20, 2025
73f4f53
feat(lint/html): implement noSvgWithoutTitle for html (#8412)
mehm8128 Dec 22, 2025
8aa5f5b
feat(lint): add options from `typescript-eslint` to `useUnifiedTypeSi…
Bertie690 Dec 25, 2025
c4bbc7d
Merge remote-tracking branch 'origin/main' into next
ematipico Dec 26, 2025
6ada22a
fix merge
ematipico Dec 26, 2025
cf81b4d
Merge remote-tracking branch 'refs/remotes/origin/next' into next
ematipico Dec 26, 2025
36d4165
fix merge
ematipico Dec 26, 2025
857d450
chore: merge main to next (#8585)
ematipico Dec 27, 2025
3fc8cc5
Merge branch 'main' into next
siketyan Jan 2, 2026
fe3d424
chore: merges `main` into `next` (#8650)
ematipico Jan 2, 2026
4d8f19d
feat(cli): add SARIF reporter (#8631)
Netail Jan 2, 2026
4c7c06f
feat(cli): show backtrace on panic if available (#8647)
siketyan Jan 2, 2026
1dc8dc2
feat(linter): add noAutofocus rule for HTML (#8641)
tt-a1i Jan 2, 2026
a9025d4
feat: add the checkForEach option to useIterableCallbackReturn (#8289)
theshadow27 Jan 3, 2026
b36ff03
feat(html): add `useAltText` a11y rule (#8661)
tt-a1i Jan 3, 2026
683f50d
fix(lint): fix useComponentExportOnlyModules false positive with TanS…
tt-a1i Jan 4, 2026
adcce82
feat(lint): types domain and optional inference (#8564)
ematipico Jan 4, 2026
7733f90
feat(html): implement noRedundantAlt (#8666)
ematipico Jan 5, 2026
46f33a7
feat(core): improved bindings detection (#8642)
ematipico Jan 5, 2026
3dfea16
feat(core): hidden files and config dirs (#8663)
ematipico Jan 6, 2026
ae8ac8e
feat(formatter): trailing newline (#8334)
ematipico Jan 6, 2026
d8f0309
feat(formatter): top-level suppression (#8695)
ematipico Jan 6, 2026
01bccc8
feat(cli): add --skip and --only to check and ci commands (#8532)
jonaylor89 Jan 6, 2026
e06e5d1
feat(html/analyze): add useValidLang (#8690)
ematipico Jan 6, 2026
0f5a05b
fix(lint): correctly track embedded bindings in rules (#8700)
ematipico Jan 7, 2026
a215408
feat(html): directives parsing and formatting (#8719)
ematipico Jan 9, 2026
fe2c642
feat(grit): add JSON GritQL support (#8723)
cbstns Jan 11, 2026
c594a36
feat: apply code fixes to embedded snippets in JS (#8662)
siketyan Jan 12, 2026
6340ce6
feat(biome_html_analyze): add useMediaCaption rule for HTML (#8742)
rahuld109 Jan 15, 2026
d0358b0
feat(biome_html_analyze): implement useAnchorContent rule for HTML (#…
rahuld109 Jan 15, 2026
47a79f1
fix(lint): improve noSvgWithoutTitle so that it reports more invalid …
mehm8128 Jan 16, 2026
3c8ea6e
Merge branch 'main' into next
dyc3 Jan 20, 2026
62dc6d7
chore: accept some snapshots from main merge
dyc3 Jan 21, 2026
cb112ce
refactor(format/html): overhaul HTML formatter (#8806)
dyc3 Jan 21, 2026
883ea1d
chore: tweak changeset (#8834)
dyc3 Jan 22, 2026
375792e
fix(format/html): break if >2 children, and at least one is not white…
dyc3 Jan 23, 2026
4d9c676
feat(css_analyze): add an ignore option to `noUnknownFunction`, `noUn…
Netail Jan 23, 2026
fe81000
feat(parser/markdown): parser implementation (#8525)
jfmcdowell Jan 23, 2026
5701ead
feat(parse/css): add support for vue's `v-bind()` function (#8846)
dyc3 Jan 23, 2026
0e8e623
Merge remote-tracking branch 'origin/main' into next
ematipico Jan 24, 2026
730fb06
chore(coverage): move CommonMark conformance tests to xtask/coverage …
jfmcdowell Jan 25, 2026
3d427b8
fix(biome_html_analyze): consolidate a11y helpers and fix aria-hidden…
rahuld109 Jan 25, 2026
39e7fd9
feat(core): improve useImportTypes detection (#8824)
ematipico Jan 26, 2026
1469968
fix(core): workspace formatting (#8854)
ematipico Jan 27, 2026
361350e
feat(cli): rule profiler (#8562)
dyc3 Jan 27, 2026
fda74af
refactor(html): component parsing (#8886)
ematipico Jan 28, 2026
79b38aa
feat(css): add support for the `@function` CSS at rule (#8839)
ryan-m-walker Jan 28, 2026
6bf1b09
feat(html): improved parsing spread attributes (#8894)
ematipico Jan 28, 2026
bdd3b6e
Merge remote-tracking branch 'origin/main' into next
ematipico Jan 28, 2026
7e48bd4
feat(linter): add e18e rules (#8898)
ematipico Jan 30, 2026
c409d2a
Merge branch 'main' into next
dyc3 Jan 31, 2026
f953815
chore: format
dyc3 Jan 31, 2026
7e5e098
update snapshots
ematipico Feb 2, 2026
d11130b
feat(cli): multi reporters (#8621)
Netail Feb 3, 2026
0353fa0
feat(useHookAtTopLevel): add `ignore` option (#8964)
dyc3 Feb 4, 2026
b5dd9ce
fix(core): improve bindings detection (#8918)
ematipico Feb 6, 2026
38c3fd7
fix(markdown): improve CommonMark conformance and parser structure (#…
jfmcdowell Feb 6, 2026
dc1f94e
feat(assist): add noDuplicateClasses assist action (#8623)
mldangelo Feb 8, 2026
821c417
refactor(useButtonType): simplify and some related docs (#8994)
dyc3 Feb 8, 2026
839c160
fix(core): snippets ts (#8991)
ematipico Feb 8, 2026
1b37c60
feat(formatter): set up boiletplate for markdown formatter (#8962)
tidefield Feb 9, 2026
0a147f1
feat(scss): add basic SCSS declaration support and comments (#8721)
denbezrukov Feb 9, 2026
63a4abe
chore: fix incorrect link
ematipico Feb 10, 2026
426de98
fix(html): parsing of directives in svelte (#9021)
ematipico Feb 10, 2026
1da1356
fix(useButtonType): better default behavior in Vue and Svelte (#8995)
dyc3 Feb 13, 2026
7e33fd5
Merge remote-tracking branch 'origin/main' into next
ematipico Feb 13, 2026
b8c1cc8
fix: merge with main
ematipico Feb 13, 2026
5483570
fix(service): don't duplicate snippet's trivia when updating snippets…
dyc3 Feb 13, 2026
c047e86
fix: merge main to next (#9054)
ematipico Feb 13, 2026
0e47f5a
fix(analyze): apply diagnostic offsets to raw diagnostics as well as …
dyc3 Feb 14, 2026
66ef5ba
fix(core): tracking vue bindings inside directives (#9053)
ematipico Feb 14, 2026
e014336
feat: promote rules for v2.4 (#9011)
ematipico Feb 14, 2026
4804acf
fix(service): include embedded bindings and value reference services …
dyc3 Feb 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 3 additions & 3 deletions biome.json → .biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@
"noUndeclaredDependencies": "error"
},
"suspicious": {
"noVar": "on"
"noVar": "on",
"noImportCycles": "error"
},
"nursery": {
"noFloatingPromises": "error",
"noImportCycles": "error"
"noFloatingPromises": "error"
}
}
},
Expand Down
5 changes: 5 additions & 0 deletions .changeset/add-e18e-rule-source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": patch
---

Added e18e ESLint plugin as a recognized rule source. Six Biome rules now reference their e18e equivalents: `useAtIndex`, `useExponentiationOperator`, `noPrototypeBuiltins`, `useDateNow`, `useSpread`, and `useObjectSpread`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

Add documentation links for the rules.

The six rules should include links to their documentation pages. As per coding guidelines, reference rules with links to the website documentation.

📚 Suggested improvement
-Added e18e ESLint plugin as a recognized rule source. Six Biome rules now reference their e18e equivalents: `useAtIndex`, `useExponentiationOperator`, `noPrototypeBuiltins`, `useDateNow`, `useSpread`, and `useObjectSpread`.
+Added e18e ESLint plugin as a recognised rule source. Six Biome rules now reference their e18e equivalents: [useAtIndex](https://biomejs.dev/linter/rules/use-at-index), [useExponentiationOperator](https://biomejs.dev/linter/rules/use-exponentiation-operator), [noPrototypeBuiltins](https://biomejs.dev/linter/rules/no-prototype-builtins), [useDateNow](https://biomejs.dev/linter/rules/use-date-now), [useSpread](https://biomejs.dev/linter/rules/use-spread), and [useObjectSpread](https://biomejs.dev/linter/rules/use-object-spread).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Added e18e ESLint plugin as a recognized rule source. Six Biome rules now reference their e18e equivalents: `useAtIndex`, `useExponentiationOperator`, `noPrototypeBuiltins`, `useDateNow`, `useSpread`, and `useObjectSpread`.
Added e18e ESLint plugin as a recognised rule source. Six Biome rules now reference their e18e equivalents: [useAtIndex](https://biomejs.dev/linter/rules/use-at-index), [useExponentiationOperator](https://biomejs.dev/linter/rules/use-exponentiation-operator), [noPrototypeBuiltins](https://biomejs.dev/linter/rules/no-prototype-builtins), [useDateNow](https://biomejs.dev/linter/rules/use-date-now), [useSpread](https://biomejs.dev/linter/rules/use-spread), and [useObjectSpread](https://biomejs.dev/linter/rules/use-object-spread).
🤖 Prompt for AI Agents
In @.changeset/add-e18e-rule-source.md at line 5, Update the six rule mentions
to include their documentation links: for each rule name useAtIndex,
useExponentiationOperator, noPrototypeBuiltins, useDateNow, useSpread, and
useObjectSpread, append or replace the plain text with a Markdown link to the
official e18e/website docs (e.g. [useAtIndex](https://.../rules/use-at-index)
style). Ensure each rule reference points to its corresponding rule page on the
public docs site so all six entries become clickable documentation links.

25 changes: 25 additions & 0 deletions .changeset/add-ignore-option-use-hook-at-top-level.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
"@biomejs/biome": minor
---

Added `ignore` option to the [`useHookAtTopLevel`](https://biomejs.dev/linter/rules/use-hook-at-top-level/) rule.

You can now specify function names that should not be treated as hooks, even if they follow the `use*` naming convention.

Example configuration:

```json
{
"linter": {
"rules": {
"correctness": {
"useHookAtTopLevel": {
"options": {
"ignore": ["useDebounce", "useCustomUtility"]
}
}
}
}
}
}
```
5 changes: 5 additions & 0 deletions .changeset/add-use-anchor-content-html.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added the rule [`useAnchorContent`](https://biomejs.dev/linter/rules/use-anchor-content/) for HTML to enforce that anchor elements have accessible content for screen readers. The rule flags empty anchors, anchors with only whitespace, and anchors where all content is hidden with `aria-hidden`. Anchors with `aria-label` or `title` attributes providing a non-empty accessible name are considered valid.
5 changes: 5 additions & 0 deletions .changeset/add-use-media-caption-html.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added the rule [`useMediaCaption`](https://biomejs.dev/linter/rules/use-media-caption/) to the HTML language. Enforces that `audio` and `video` elements have a `track` element with `kind="captions"` for accessibility. Muted videos are allowed without captions.
31 changes: 31 additions & 0 deletions .changeset/all-pumas-stop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
"@biomejs/biome": minor
---

Added support for multiple reporters, and the ability to save reporters on arbitrary files.

#### Combine two reporters in CI

If you run Biome on GitHub, take advantage of the reporter and still see the errors in console, you can now use both reporters:

```shell
biome ci --reporter=default --reporter=github
```

#### Save reporter output to a file

With the new `--reporter-file` CLI option, it's now possible to save the output of all reporters to a file. The file is a path,
so you can pass a relative or an absolute path:

```shell
biome ci --reporter=rdjson --reporter-file=/etc/tmp/report.json
biome ci --reporter=summary --reporter-file=./reports/file.txt
```

You can combine these two features. For example, have the `default` reporter written on terminal, and the `rdjson` reporter written on file:

```shell
biome ci --reporter=default --reporter=rdjson --reporter-file=/etc/tmp/report.json
```

**The `--reporter` and `--reporter-file` flags must appear next to each other, otherwise an error is thrown.**
7 changes: 7 additions & 0 deletions .changeset/angry-women-accept.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@biomejs/biome": minor
---
Comment on lines +1 to +3
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Change type should be patch for main.

This changeset is marked minor, but the guideline says main branch changesets must be patch. Please align the front matter accordingly. As per coding guidelines, “Use 'patch' for bug fixes and non-breaking changes targeting the main branch, 'minor' for new features targeting the next branch, and 'major' for breaking changes targeting the next branch.”

🔧 Suggested front matter update
 "@biomejs/biome": minor
+"@biomejs/biome": patch
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
"@biomejs/biome": minor
---
---
"@biomejs/biome": patch
---
🤖 Prompt for AI Agents
In @.changeset/angry-women-accept.md around lines 1 - 3, Update the changeset
front matter to use "patch" instead of "minor" for the "@biomejs/biome" entry so
it aligns with main-branch rules; locate the YAML front matter block in the
changeset (the top lines showing "@biomejs/biome": minor) and change the value
from minor to patch, keeping the rest of the front matter intact.


The Biome CSS parser is now able to parse Vue SFC syntax such as `:slotted` and `:deep`. These pseudo functions are only correctly parsed when the CSS is defined inside `.vue` components. Otherwise, Biome will a emit a parse error.

This capability is only available when `experimentalFullHtmlSupportedEnabled` is set to `true`.
9 changes: 9 additions & 0 deletions .changeset/blue-buttons-own.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@biomejs/biome": minor
---

Added support for Cursor files. When Biome sees a Cursor JSON file, it will parse it with comments enabled and trailing commas enabled:
- `$PROJECT/.cursor/`
- `%APPDATA%\Cursor\User\` on Windows
- `~/Library/Application Support/Cursor/User/` on macOS
- `~/.config/Cursor/User/` on Linux
30 changes: 30 additions & 0 deletions .changeset/bright-foxes-glow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
"@biomejs/biome": minor
---
Comment on lines +1 to +3
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Use a patch changeset on main (unless this is staying on next).

The front matter marks this as minor, which conflicts with the guidance for changesets targeting main. If this merge PR is landing on main, please switch to patch, or confirm this changeset remains only on next. As per coding guidelines, “Use 'patch' for bug fixes and non-breaking changes targeting the main branch, 'minor' for new features targeting the next branch, and 'major' for breaking changes targeting the next branch.”

🤖 Prompt for AI Agents
In @.changeset/bright-foxes-glow.md around lines 1 - 3, The changeset front
matter currently marks the release type as "minor" which conflicts with
main-branch guidance; update the front matter in .changeset/bright-foxes-glow.md
to use "patch" if this PR is targeting main, or keep "minor" only if you confirm
this changeset will remain on the next release branch; ensure the YAML key
"@biomejs/biome": minor is changed to "@biomejs/biome": patch when targeting
main and commit that change.


Added JSON as a target language for GritQL pattern matching. You can now write Grit plugins for JSON files.

This enables users to write GritQL patterns that match against JSON files, useful for:
- Searching and transforming JSON configuration files
- Enforcing patterns in `package.json` and other JSON configs
- Writing custom lint rules for JSON using GritQL

**Example patterns:**

Match all key-value pairs:
```grit
language json

pair(key = $k, value = $v)
```

Match objects with specific structure:
```grit
language json

JsonObjectValue()
```

Supports both native Biome AST names (`JsonMember`, `JsonObjectValue`) and TreeSitter-compatible names (`pair`, `object`, `array`) for compatibility with existing Grit patterns.

For more details, see the [GritQL documentation](https://biomejs.dev/reference/gritql/).
5 changes: 5 additions & 0 deletions .changeset/brown-dryers-spend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added `ignore` option to [`noUnknownProperty`](https://biomejs.dev/linter/rules/no-unknown-property). If an unknown property name matches any of the items provided in `ignore`, a diagnostic won't be emitted.
5 changes: 5 additions & 0 deletions .changeset/brown-women-jump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Add a new reporter `--reporter=sarif`, that emits diagnostics using the [SARIF](https://sarifweb.azurewebsites.net/) format.
18 changes: 18 additions & 0 deletions .changeset/calm-goats-talk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
"@biomejs/biome": minor
---

Added the `useIframeTitle` lint rule for HTML. The rule enforces the usage of the `title` attribute for the `iframe` element.

Invalid:

```html
<iframe></iframe>
<iframe title=""></iframe>
```

Valid:

```html
<iframe title="title"></iframe>
```
29 changes: 29 additions & 0 deletions .changeset/chilly-jokes-decide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
"@biomejs/biome": minor
---

Added a new assist action `useSortedInterfaceMembers` that sorts TypeScript interface members, for readability.

It includes an autofix.

Invalid example.

```ts,expect_diagnostic
interface MixedMembers {
z: string;
a: number;
(): void;
y: boolean;
}
```

Valid example (after using the assist).

```ts
interface MixedMembers {
a: number;
y: boolean;
z: string;
(): void;
}
```
9 changes: 9 additions & 0 deletions .changeset/chubby-buttons-lie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@biomejs/biome": minor
---

It's now possible to provide the stacktrace for a fatal error. The stacktrace is only available when the environment variable `RUST_BACKTRACE=1` is set, either via the CLI or exported `$PATH`. This is useful when providing detailed information for debugging purposes:

```shell
RUST_BACKTRACE=1 biome lint
```
5 changes: 5 additions & 0 deletions .changeset/clever-clocks-decide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

The Biome Language Server now reports progress while scanning files and dependencies in the project.
5 changes: 5 additions & 0 deletions .changeset/cruel-candles-grab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": patch
---

Added proper parsing and formatting for Svelte directives when the `html.experimentalFullSupportEnabled` is set to `true`.
48 changes: 48 additions & 0 deletions .changeset/curly-facts-kick.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
"@biomejs/biome": patch
---

Revamped the logging options for all Biome commands. Now the commands `format`, `lint`, `check`, `ci`, `search`, `lsp-proxy` and `start` accept the following CLI options.

Some options might have been present before, but they were inconsistent. Plus, all new options have an environment variable as aliases.

#### `--log-file`

Optional path/file to redirect log messages to. This option is applicable only to the CLI. If omitted, logs are printed to stdout.

Environment variable alias: `BIOME_LOG_FILE`

#### `--log-prefix-name`

Allows changing the prefix applied to the file name of the logs. This option is applicable only to the daemon.

Environment variable alias: `BIOME_LOG_PREFIX_NAME`

#### `--log-path`

Allows changing the folder where logs are stored. This option is applicable only to the daemon.

Environment variable alias: `BIOME_LOG_PATH`

#### `--log-level`

The level of logging. In order, from the most verbose to the least verbose: `debug`, `info`, `warn`, `error`

The value `none` won't show any logging.

Environment variable alias: `BIOME_LOG_LEVEL`

#### `--log-kind`

What the log should look like.

Environment variable alias: `BIOME_LOG_KIND`

#### Reduce dumping of LSP logs

When you use a Biome editor extension, Biome's Daemon dumps its logs using the `debug` level. If you want to reduce
the quantity of these logs, you can now customize it:

```shell
BIOME_LOG_LEVEL=info biome lsp-proxy
```
5 changes: 5 additions & 0 deletions .changeset/dirty-beans-flash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Fixed [#8024](https://github.com/biomejs/biome/issues/8024). The rule [`useIterableCallbackReturn`](https://biomejs.dev/linter/rules/use-iterable-callback-return/) now supports a `checkForEach` option. When set to `false`, the rule will skip checking for `forEach()` callbacks for returning values.
5 changes: 5 additions & 0 deletions .changeset/eight-bars-unite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added the rule [`useValidLang`](https://biomejs.dev/linter/rules/use-valid-lang) to the HTML language.
25 changes: 25 additions & 0 deletions .changeset/eight-eels-pull.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
"@biomejs/biome": minor
---

Added support for `jsxFactory` and `jsxFragmentFactory`.Biome now respects `jsxFactory` and `jsxFragmentFactory` settings from `tsconfig.json` when using the classic JSX runtime, preventing false positive [noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports/) errors for custom JSX libraries like Preact.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix spacing in description text.

Line 5 has a missing space after the closing backtick. Should be:

-Added support for `jsxFactory` and `jsxFragmentFactory`.Biome now respects...
+Added support for `jsxFactory` and `jsxFragmentFactory`. Biome now respects...

Otherwise, the changeset is well-structured with good examples and a helpful rule link. Nice work! ✓

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Added support for `jsxFactory` and `jsxFragmentFactory`.Biome now respects `jsxFactory` and `jsxFragmentFactory` settings from `tsconfig.json` when using the classic JSX runtime, preventing false positive [noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports/) errors for custom JSX libraries like Preact.
Added support for `jsxFactory` and `jsxFragmentFactory`. Biome now respects `jsxFactory` and `jsxFragmentFactory` settings from `tsconfig.json` when using the classic JSX runtime, preventing false positive [noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports/) errors for custom JSX libraries like Preact.
🤖 Prompt for AI Agents
In .changeset/eight-eels-pull.md around line 5, the sentence "Added support for
`jsxFactory` and `jsxFragmentFactory`.Biome now respects..." is missing a space
after the closing backtick; edit that line to insert a space after the backtick
so it reads "...`jsxFragmentFactory`. Biome now respects..." to fix the spacing.


```json5
// tsconfig.json
{
"compilerOptions": {
"jsx": "react",
"jsxFactory": "h",
"jsxFragmentFactory": "Fragment"
}
}
```

```jsx
// Component.jsx
import { h, Fragment } from 'preact';

function App() {
return <div>Hello</div>;
}
```
24 changes: 24 additions & 0 deletions .changeset/every-beers-sleep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
"@biomejs/biome": minor
---

Added new CLI options to the commands `lsp-proxy` and `start` that allow to control the Biome file watcher.

#### `--watcher-kind`

Controls how the Biome file watcher should behave. By default, Biome chooses the best watcher strategy for the
current OS, however sometimes this could result in some issues, such as folders locked.

The option accepts the current values:
- `recommended`: the default option, which chooses the best watcher for the current platform.
- `polling`: uses the polling strategy.
- `none`: it doesn't enable the watcher. When the watcher is disabled, changes to files aren't recorded anymore by Biome. This might have
repercussions on some lint rules that might rely on updated types or updated paths.

The environment variable `BIOME_WATCHER_KIND` can be used as alias.

#### `--watcher-polling-interval`

The polling interval in milliseconds. This is only applicable when using the `polling` watcher. It defaults to `2000` milliseconds.

The environment variable `BIOME_WATCHER_POLLING_INTERVAL` can be used as alias.
5 changes: 5 additions & 0 deletions .changeset/fast-months-move.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": patch
---

Fixed [#901](https://github.com/biomejs/biome-vscode/issues/901). Biome now allows trailing commas in inside Zed `settings.json` and VSCode `settings.json`.
19 changes: 19 additions & 0 deletions .changeset/fifty-webs-sneeze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@biomejs/biome": minor
---

Added the `useHtmlLang` lint rule for HTML. The rule enforces that the `html` element has a `lang` attribute.

Invalid:

```html
<html></html>
<html lang></html>
<html lang=""></html>
```

Valid:

```html
<html lang="en"></html>
```
13 changes: 13 additions & 0 deletions .changeset/fix-component-export-tanstack-router.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
"@biomejs/biome": patch
---

Fixed [#8628](https://github.com/biomejs/biome/issues/8628): [`useComponentExportOnlyModules`](https://biomejs.dev/linter/rules/use-component-export-only-modules/) now allows components referenced as object property values in exported expressions. This fixes false positives for TanStack Router patterns.

```jsx
export const Route = createFileRoute('/')({
component: HomeComponent,
})

function HomeComponent() { ... } // no longer reported as "should be exported"
```
5 changes: 5 additions & 0 deletions .changeset/fix-diagnostic-offset-in-embedded-files.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": patch
---

Fixed [#9057](https://github.com/biomejs/biome/issues/9057): Incorrect diagnostic spans for suppression comments and other raw diagnostics in HTML-ish files (Vue, Svelte, Astro). Previously, diagnostics like "unused suppression" pointed to the wrong location in the document due to the diagnostic offset not being applied.
Loading
Loading