Skip to content
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
a3e3369
feat(resolver): support `baseUrl` in `tsconfig.json` (#7263)
arendjr Aug 19, 2025
f66b0c5
feat(parse/css): add option to parse Tailwind v4 directives (#7164)
dyc3 Aug 20, 2025
0d4661f
feat(format/css): implement formatters for new tailwind nodes (#7241)
dyc3 Aug 23, 2025
72a8b02
fix(parse/css): let `@utility` parse declarations and rules (#7314)
dyc3 Aug 24, 2025
272632f
feat: indentation for vue and svelte files (#7330)
ematipico Aug 26, 2025
de0d2d6
feat(htmlish): implement `indentScriptAndStyle` option (#7333)
dyc3 Aug 27, 2025
87b2cf6
Merge branch 'main' into next
arendjr Aug 29, 2025
ebbddc4
feat(core): add force-ignore syntax to `files.includes` (#7359)
arendjr Aug 31, 2025
e4feb8e
feat(cli): --skip/--only with domains (#7392)
ematipico Sep 7, 2025
ed025cd
chore: ensure force-ignore syntax works with nested biome.json (#7444)
arendjr Sep 8, 2025
564f023
feat(core): embedded formatting in html files (#7467)
ematipico Sep 13, 2025
b23bbee
Merge branch 'main' into next
siketyan Sep 15, 2025
b13e524
feat: add react library aliases (#7488)
kpapa05 Sep 16, 2025
0bccd34
chore: add .oxlintrc.json to well-known files (#7536)
TheAlexLichter Sep 20, 2025
6bc556d
chore: introduce ruledoc utils (#7541)
arendjr Sep 20, 2025
ea23d15
fix: resolve parse errors in ruledoc code blocks (#7544)
arendjr Sep 20, 2025
85d3a3a
feat(lint): move some rules to the `react` domain (#7548)
siketyan Sep 21, 2025
8ab8b6c
perf: optimise embedded formatter (#7567)
arendjr Sep 22, 2025
f890861
feat: implemented embedded JSON parsing (#7571)
arendjr Sep 24, 2025
e51dd55
perf: only query settings once (#7593)
arendjr Sep 25, 2025
98ad5a9
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 2, 2025
09445c8
feat: add 'auto' mode to lineEndings (#7599)
anaisbetts Oct 3, 2025
6dc74da
chore: fix failure inside website
ematipico Oct 2, 2025
f1b825e
chore: add .zed to gitignore (#7634)
tidefield Oct 2, 2025
85d3381
fix(lint/noUselessEscapeInString): avoid false positive for $\{ escap…
lucasweng Oct 2, 2025
2ab15d9
fix(lint): only highlight function names in useMaxParams rule (#7608)
ritoban23 Oct 2, 2025
74fb8ca
docs: add Polish translation of Biome README (#7630)
SzymCode Oct 2, 2025
ae6e8fd
fix(linter): `useImportExtensions` handles queries and hashes (#7640)
arendjr Oct 2, 2025
a85f807
ci: breakdown benchmarks (#7641)
ematipico Oct 2, 2025
24d471f
ci: fix permission for benchmarks
ematipico Oct 2, 2025
a4e9064
chore: upgrade to rust 1.90.0 (#7642)
ematipico Oct 2, 2025
a85a8f5
fix(css_parser): add support for parsing :state() (#7619) (#7665)
ryan-m-walker Oct 3, 2025
357b8f7
feat: emit diagnostics from embedded nodes (#7632)
ematipico Oct 3, 2025
aa9dd92
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 3, 2025
acf6389
chore: merge with main
ematipico Oct 3, 2025
a1d4b6b
chore: `AnyEmbeddedSnippet` terminology (#7674)
arendjr Oct 3, 2025
480909a
feat(cli): print info count (#7667)
ematipico Oct 4, 2025
837f3f3
feat(core): apply code fixes in snippets (#7670)
ematipico Oct 5, 2025
461c478
feat(html): analyzer (#5814)
ematipico Oct 6, 2025
6bd1e3b
fix: incorrect logic for CSS fix all (#7699)
ematipico Oct 6, 2025
296627d
feat(reporter): add checkstyle (#6356)
wrick17 Oct 7, 2025
3b6f5e3
feat(cli): rdjson reporter (#7698)
ematipico Oct 7, 2025
188a767
feat(cli): expose formatWithErrors via --format-with-errors flag (#7719)
cadunass Oct 9, 2025
d3aac63
feat(cli): add parsing arguments (#7723)
ematipico Oct 10, 2025
28e8860
feat(core): full experimental support htmlish languages (#7702)
ematipico Oct 13, 2025
d523500
fix: typescript types generation (#7743)
ematipico Oct 13, 2025
6fcbc07
feat(noUnknownAtRule): add `ignore` option (#7745)
dyc3 Oct 13, 2025
6b3483c
chore: add migration for ignores scanner (#7751)
ematipico Oct 14, 2025
6ed4d16
feat(biome_js_analyze): added support for React 19.2 (#7669)
barklund Oct 14, 2025
d67c7e9
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 14, 2025
0086309
chore: fix regression in tests
ematipico Oct 14, 2025
a05866e
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 15, 2025
8229ef9
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 20, 2025
1b037e3
chore: merge main and fix compilation
ematipico Oct 20, 2025
63cb7ff
feat(cli): enhance init command (#7753)
ematipico Oct 20, 2025
cea002f
feat: promote lint rules (#7758)
ematipico Oct 22, 2025
bc8ac2b
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 22, 2025
32d0173
[autofix.ci] apply automated fixes
autofix-ci[bot] Oct 22, 2025
6bf88fe
chore: remove empty source from JSON rules
ematipico Oct 22, 2025
c9033de
Merge remote-tracking branch 'origin/main' into next
ematipico Oct 23, 2025
a8188b5
chore: regenerate files
ematipico Oct 23, 2025
27a5838
chore: fix incorrect configuration
ematipico Oct 23, 2025
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
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .changeset/based-bears-brawl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
"@biomejs/biome": minor
---

Biome's resolver now supports `baseUrl` if specified in `tsconfig.json`.

#### Example

Given the following file structure:

**`tsconfig.json`**
```json
{
"compilerOptions": {
"baseUrl": "./src",
}
}
```
Comment on lines +12 to +18
Copy link
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 the invalid JSON syntax in the example.

The JSON example has a trailing comma before the closing brace on line 16, which is not valid JSON. This will confuse users trying to replicate the example.

Apply this diff to fix the JSON:

 **`tsconfig.json`**
 ```json
 {
     "compilerOptions": {
-        "baseUrl": "./src",
+        "baseUrl": "./src"
     }
 }

<details>
<summary>🤖 Prompt for AI Agents</summary>

In .changeset/based-bears-brawl.md around lines 12 to 18 the JSON example
contains an invalid trailing comma after "baseUrl": "./src",; remove the
trailing comma so the object closes properly (i.e., change "baseUrl": "./src",
to "baseUrl": "./src") and ensure the JSON block is valid before committing.


</details>

<!-- This is an auto-generated comment by CodeRabbit -->


**`src/foo.ts`**
```ts
export function foo() {}
```

In this scenario, `import { foo } from "foo";` should work regardless of the
location of the file containing the `import` statement.

Fixes [#6432](https://github.com/biomejs/biome/issues/6432).
5 changes: 5 additions & 0 deletions .changeset/breezy-suns-leave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added `ignore` option to `noUnknownAtRules`. If an unknown at-rule matches any of the items provided in `ignore`, a diagnostic won't be emitted.
26 changes: 26 additions & 0 deletions .changeset/busy-pens-send.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
"@biomejs/biome": minor
---

Enhanced the `init` command. The `init` command now checks if the existing project contains known ignore files and known generated folders.

If Biome finds `.gitignore` or `.ignore` files, it will add the following configuration to `biome.json`:
```diff
{
+ "vcs": {
+ "enabled": true,
+ "clientKind": "git",
+ "useIgnoreFile": true
+ }
}
```

If Biome finds a `dist/` folder, it will exclude it automatically using the double-exclude syntax:

```diff
{
+ "files": {
+ "includes": ["**", "!!**/dist"]
+ }
}
```
Comment on lines +5 to +26
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add periods to sentences.

Per the coding guidelines, every sentence in a changeset must end with a period. Lines 5, 7, and 18 are missing periods.

As per coding guidelines.

Apply this diff:

-Enhanced the `init` command. The `init` command now checks if the existing project contains known ignore files and known generated folders
+Enhanced the `init` command. The `init` command now checks if the existing project contains known ignore files and known generated folders.

-If Biome finds `.gitignore` or `.ignore` files, it will add the following configuration to `biome.json`:
+If Biome finds `.gitignore` or `.ignore` files, it will add the following configuration to `biome.json`:

-If Biome finds a `dist/` folder, it will exclude it automatically using the double-exclude syntax:
+If Biome finds a `dist/` folder, it will exclude it automatically using the double-exclude syntax:

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
.changeset/busy-pens-send.md around lines 5 to 26: several sentences in the
changeset lack terminal periods (specifically lines 5, 7, and 18); edit those
lines to add a trailing period to each sentence so every sentence in the file
ends with a period, preserving existing wording and spacing.

5 changes: 5 additions & 0 deletions .changeset/crazy-steaks-mix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

The rules in a domain are no longer enabled automatically by the installed dependencies unless the rule is recommended.
14 changes: 14 additions & 0 deletions .changeset/css-parse-modules-flag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@biomejs/biome": minor
---

Added `--css-parse-css-modules` CLI flag to control whether CSS Modules syntax is enabled.

You can now enable or disable CSS Modules parsing directly from the command line:

```shell
biome check --css-parse-css-modules=true file.module.css
biome format --css-parse-css-modules=true file.module.css
biome lint --css-parse-css-modules=true file.module.css
biome ci --css-parse-css-modules=true file.module.css
```
14 changes: 14 additions & 0 deletions .changeset/css-parse-tailwind-flag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@biomejs/biome": minor
---

Added `--css-parse-tailwind-directives` CLI flag to control whether Tailwind CSS 4.0 directives and functions are enabled.

You can now enable or disable Tailwind CSS 4.0 directive parsing directly from the command line:

```shell
biome check --css-parse-tailwind-directives=true file.css
biome format --css-parse-tailwind-directives=true file.css
biome lint --css-parse-tailwind-directives=true file.css
biome ci --css-parse-tailwind-directives=true file.css
```
12 changes: 12 additions & 0 deletions .changeset/dull-drinks-switch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@biomejs/biome": minor
---

Updated the formatting of `.svelte` and `.vue` files. Now the indentation of the JavaScript blocks matches Prettier's:

```diff
<script>
- import Component from "./Component"
+ import Component from "./Component"
</script>
```
Comment on lines +1 to +12
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a header and fix sentence punctuation.

Changesets require #### or ##### headers and must end all sentences with periods. Adjust the colon after "Prettier's" to a period.

 ---
 "@biomejs/biome": minor
 ---

+#### Updates
+
-Updated the formatting of `.svelte` and `.vue` files. Now the indentation of the JavaScript blocks matches Prettier's:
+Updated the formatting of `.svelte` and `.vue` files. Now the indentation of the JavaScript blocks matches Prettier's.

 ```diff
 <script>
 - import Component from "./Component"
 +   import Component from "./Component"
 </script>

As per coding guidelines.

<details>
<summary>🤖 Prompt for AI Agents</summary>

In .changeset/dull-drinks-switch.md around lines 1 to 12, the changeset body
lacks the required header and has punctuation issues: add a header line starting
with "####" or "#####", replace the colon after "Prettier's" with a period,
ensure every sentence ends with a period, remove the stray standalone "diff"
token, and make sure the fenced code block is properly opened and closed so the
file conforms to changeset formatting rules.


</details>

<!-- This is an auto-generated comment by CodeRabbit -->

5 changes: 5 additions & 0 deletions .changeset/eager-suns-smoke.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": patch
---

Fixed an issue where the JUnit reporter returned a zero-based location. Now the location returned is one-based.
24 changes: 24 additions & 0 deletions .changeset/few-bees-reply.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
"@biomejs/biome": minor
---

Implemented the `indentScriptAndStyle` option for vue and svelte files, with the default set to `false` to match [Prettier's `vueIndentScriptAndStyle` option](https://prettier.io/docs/options#vue-files-script-and-style-tags-indentation). When enabled, this option indents the content within `<script>` and `<style>` tags to align with the surrounding HTML structure.

It can be enabled with this configuration:

```json
{
"html": {
"formatter": {
"indentScriptAndStyle": true
}
}
}
```

Which will format this code to:
```vue
<script>
import Component from "./Component.vue";
</script>
```
44 changes: 44 additions & 0 deletions .changeset/forced-files-forget.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
"@biomejs/biome": minor
---

Deprecated the option `files.experimentalScannerIgnores` in favour of **force-ignore** syntax in `files.includes`.

`files.includes` supports ignoring files by prefixing globs with an exclamation mark (`!`). With this change, it also supports _force_-ignoring globs by prefixing them with a double exclamation mark (`!!`).

The effect of force-ignoring is that the scanner will not index files matching the glob, even in project mode, even if those files are imported by other files, and even if they are files that receive special treatment by Biome, such as nested `biome.json` files.

#### Example

Let's take the following configuration:

```json
{
"files": {
"includes": [
"**",
"!**/generated",
"!!**/dist",
"fixtures/example/dist/*.js"
]
},
"linter": {
"domains": {
"project": "all"
}
}
}
```

This configuration achieves the following:

- Because the [project domain](https://biomejs.dev/linter/domains/#project) is enabled, all supported files in the project are indexed _and_ processed by the linter, _except_:
- Files inside a `generated` folder are not processed by the linter, but they will get indexed _if_ a file outside a `generated` folder imports them.
- Files inside a `dist` folder are never indexed nor processed, not even if they are imported for any purpose, _except_:
- When the `dist` folder is inside `fixtures/example/`, its `.js` files _do_ get both indexed and processed.

In general, we now recommend using the force-ignore syntax for any folders that contain _output_ files, such as `build/` and `dist/`. For such folders, it is highly unlikely that indexing has any useful benefits. For folders containing generated files, you may wish to use the regular ignore syntax so that type information can still be extracted from the files.

`experimentalScannerIgnores` will continue to work for now, but you'll see a deprecation warning if you still use it.

Run the `biome migrate --write` command to automatically update the configuration file.
64 changes: 64 additions & 0 deletions .changeset/gentle-pots-hunt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
"@biomejs/biome": minor
---

Added a new reporter named `rdjson`. This reporter prints diagnostics following the [RDJSON format](https://deepwiki.com/reviewdog/reviewdog/3.2-reviewdog-diagnostic-format):
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

End sentences with a period.

This line should end with a period per the changeset guidelines.

Apply this diff:

-Added a new reporter named `rdjson`. This reporter prints diagnostics following the [RDJSON format](https://deepwiki.com/reviewdog/reviewdog/3.2-reviewdog-diagnostic-format):
+Added a new reporter named `rdjson`. This reporter prints diagnostics following the [RDJSON format](https://deepwiki.com/reviewdog/reviewdog/3.2-reviewdog-diagnostic-format).
📝 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 a new reporter named `rdjson`. This reporter prints diagnostics following the [RDJSON format](https://deepwiki.com/reviewdog/reviewdog/3.2-reviewdog-diagnostic-format):
Added a new reporter named `rdjson`. This reporter prints diagnostics following the [RDJSON format](https://deepwiki.com/reviewdog/reviewdog/3.2-reviewdog-diagnostic-format).
🤖 Prompt for AI Agents
In .changeset/gentle-pots-hunt.md around line 5, the sentence "Added a new
reporter named `rdjson`. This reporter prints diagnostics following the [RDJSON
format](https://deepwiki.com/reviewdog/reviewdog/3.2-reviewdog-diagnostic-format):"
is missing a terminal period; append a period to the end of the line so it ends
with a period per changeset guidelines.


The following command:

```shell
biome check --reporter=rdjson
```

Will emit diagnostics in the following format:

```json
{
"source": {
"name": "Biome",
"url": "https://biomejs.dev"
},
"diagnostics": [
{
"code": {
"url": "https://biomejs.dev/linter/rules/no-unused-imports",
"value": "lint/correctness/noUnusedImports"
},
"location": {
"path": "index.ts",
"range": {
"end": {
"column": 11,
"line": 0
},
"start": {
"column": 7,
"line": 0
}
}
},
"message": "This import is unused."
},
{
"code": {
"url": "https://biomejs.dev/linter/rules/no-unused-imports",
"value": "lint/correctness/noUnusedImports"
},
"location": {
"path": "index.ts",
"range": {
"end": {
"column": 10,
"line": 1
},
"start": {
"column": 9,
"line": 1
}
}
},
"message": "Several of these imports are unused."
}
]
}
```
14 changes: 14 additions & 0 deletions .changeset/icy-views-lick.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@biomejs/biome": minor
---

The `formatWithErrors` option can now be set via CLI using the `--format-with-errors` flag.

This flag was previously only available in the configuration file. It allows formatting to proceed on files with syntax errors, which is useful during development when you want to auto-format code while fixing syntax issues.

#### Example

```shell
biome format --format-with-errors=true --write file.js
```

14 changes: 14 additions & 0 deletions .changeset/json-parse-comments-flag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@biomejs/biome": minor
---

Added `--json-parse-allow-comments` CLI flag to control whether comments are allowed in JSON files.

You can now enable or disable comment parsing in JSON files directly from the command line:

```shell
biome check --json-parse-allow-comments=true file.json
biome format --json-parse-allow-comments=true file.json
biome lint --json-parse-allow-comments=true file.json
biome ci --json-parse-allow-comments=true file.json
```
14 changes: 14 additions & 0 deletions .changeset/json-parse-trailing-commas-flag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@biomejs/biome": minor
---

Added `--json-parse-allow-trailing-commas` CLI flag to control whether trailing commas are allowed in JSON files.

You can now enable or disable trailing comma parsing in JSON files directly from the command line:

```shell
biome check --json-parse-allow-trailing-commas=true file.json
biome format --json-parse-allow-trailing-commas=true file.json
biome lint --json-parse-allow-trailing-commas=true file.json
biome ci --json-parse-allow-trailing-commas=true file.json
```
13 changes: 13 additions & 0 deletions .changeset/large-lands-brush.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
"@biomejs/biome": minor
---

Promoted new lint rules:
- Promoted `noNonNullAssertedOptionalChain` to the suspicious group
- Promoted `useReactFunctionComponents` to the `style` group
- Promoted `useImageSize` to the `correctness` group
- Promoted `useConsistentTypeDefinitions` to the `style` group
- Promoted `useQwikClasslist` to the `correctness` group
- Promoted `noSecrets` to the `security` group
Comment on lines +5 to +11
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Add periods to the end of each list item and the introductory line.

According to the coding guidelines, every sentence in a changeset must end with a period. The introductory line (line 5) and each bullet item (lines 6–11) should have terminal periods.

Apply this diff:

-Promoted new lint rules:
-- Promoted `noNonNullAssertedOptionalChain` to the suspicious group
-- Promoted `useReactFunctionComponents` to the `style` group
-- Promoted `useImageSize` to the `correctness` group
-- Promoted `useConsistentTypeDefinitions` to the `style` group
-- Promoted `useQwikClasslist` to the `correctness` group
-- Promoted `noSecrets` to the `security` group
+Promoted new lint rules:
+- Promoted `noNonNullAssertedOptionalChain` to the suspicious group.
+- Promoted `useReactFunctionComponents` to the `style` group.
+- Promoted `useImageSize` to the `correctness` group.
+- Promoted `useConsistentTypeDefinitions` to the `style` group.
+- Promoted `useQwikClasslist` to the `correctness` group.
+- Promoted `noSecrets` to the `security` group.
📝 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
Promoted new lint rules:
- Promoted `noNonNullAssertedOptionalChain` to the suspicious group
- Promoted `useReactFunctionComponents` to the `style` group
- Promoted `useImageSize` to the `correctness` group
- Promoted `useConsistentTypeDefinitions` to the `style` group
- Promoted `useQwikClasslist` to the `correctness` group
- Promoted `noSecrets` to the `security` group
Promoted new lint rules:
- Promoted `noNonNullAssertedOptionalChain` to the suspicious group.
- Promoted `useReactFunctionComponents` to the `style` group.
- Promoted `useImageSize` to the `correctness` group.
- Promoted `useConsistentTypeDefinitions` to the `style` group.
- Promoted `useQwikClasslist` to the `correctness` group.
- Promoted `noSecrets` to the `security` group.
🤖 Prompt for AI Agents
In .changeset/large-lands-brush.md around lines 5 to 11, the introductory
sentence and each bullet item are missing terminal periods; edit line 5 to end
with a period and append a period to the end of each list item on lines 6–11 so
every sentence in the changeset ends with a period.


Removed the lint rule `useAnchorHref`, because its use case is covered by `useValidAnchor`.
Comment on lines +5 to +13
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add links to rule documentation for each referenced rule.

Per the coding guidelines, when referencing a rule in a changeset, include a link to its page on the website. Each rule should be linked to its documentation page, for example: [useValidAnchor](https://biomejs.dev/linter/rules/use-valid-anchor/).

Consider updating the rules to include their documentation links:

-Promoted new lint rules:
-- Promoted `noNonNullAssertedOptionalChain` to the suspicious group.
-- Promoted `useReactFunctionComponents` to the `style` group.
-- Promoted `useImageSize` to the `correctness` group.
-- Promoted `useConsistentTypeDefinitions` to the `style` group.
-- Promoted `useQwikClasslist` to the `correctness` group.
-- Promoted `noSecrets` to the `security` group.
-
-Removed the lint rule `useAnchorHref`, because its use case is covered by `useValidAnchor`.
+Promoted new lint rules:
+- Promoted [`noNonNullAssertedOptionalChain`](https://biomejs.dev/linter/rules/no-non-null-asserted-optional-chain/) to the suspicious group.
+- Promoted [`useReactFunctionComponents`](https://biomejs.dev/linter/rules/use-react-function-components/) to the `style` group.
+- Promoted [`useImageSize`](https://biomejs.dev/linter/rules/use-image-size/) to the `correctness` group.
+- Promoted [`useConsistentTypeDefinitions`](https://biomejs.dev/linter/rules/use-consistent-type-definitions/) to the `style` group.
+- Promoted [`useQwikClasslist`](https://biomejs.dev/linter/rules/use-qwik-classlist/) to the `correctness` group.
+- Promoted [`noSecrets`](https://biomejs.dev/linter/rules/no-secrets/) to the `security` group.
+
+Removed the lint rule [`useAnchorHref`](https://biomejs.dev/linter/rules/use-anchor-href/), as its use case is covered by [`useValidAnchor`](https://biomejs.dev/linter/rules/use-valid-anchor/).
🧰 Tools
🪛 LanguageTool

[formatting] ~13-~13: If the ‘because’ clause is essential to the meaning, do not use a comma before the clause.
Context: ...p Removed the lint rule useAnchorHref, because its use case is covered by `useValidAnc...

(COMMA_BEFORE_BECAUSE)

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove the comma before "because".

The clause following "because" is essential to the meaning of the sentence, so the comma should be removed. Additionally, consider using "as" instead of "because" for a more concise phrasing.

Apply this diff:

-Removed the lint rule `useAnchorHref`, because its use case is covered by `useValidAnchor`.
+Removed the lint rule `useAnchorHref` as its use case is covered by `useValidAnchor`.
📝 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
Removed the lint rule `useAnchorHref`, because its use case is covered by `useValidAnchor`.
Removed the lint rule `useAnchorHref` as its use case is covered by `useValidAnchor`.
🧰 Tools
🪛 LanguageTool

[formatting] ~13-~13: If the ‘because’ clause is essential to the meaning, do not use a comma before the clause.
Context: ...p Removed the lint rule useAnchorHref, because its use case is covered by `useValidAnc...

(COMMA_BEFORE_BECAUSE)

🤖 Prompt for AI Agents
.changeset/large-lands-brush.md around line 13: remove the comma before
"because" in the sentence "Removed the lint rule `useAnchorHref`, because its
use case is covered by `useValidAnchor`" so it reads "Removed the lint rule
`useAnchorHref` because its use case is covered by `useValidAnchor`"; optionally
replace "because" with "as" for a more concise phrasing if desired.

39 changes: 39 additions & 0 deletions .changeset/light-women-live.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
"@biomejs/biome": minor
---

Added the new `checkstyle` reporter. When `--reporter=checkstyle` is passed to the CLI, Biome will emit diagnostics for [Checkstyle format](https://checkstyle.org/):

```xml
<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
<file name="index.ts">
<error line="1" column="8" severity="warning" message="This import is unused." source="lint/correctness/noUnusedImports" />
<error line="2" column="10" severity="warning" message="Several of these imports are unused." source="lint/correctness/noUnusedImports" />
<error line="8" column="5" severity="warning" message="This variable f is unused." source="lint/correctness/noUnusedVariables" />
<error line="9" column="7" severity="warning" message="This variable f is unused." source="lint/correctness/noUnusedVariables" />
<error line="1" column="1" severity="error" message="The imports and exports are not sorted." source="assist/source/organizeImports" />
<error line="4" column="3" severity="error" message="Using == may be unsafe if you are relying on type coercion." source="lint/suspicious/noDoubleEquals" />
<error line="6" column="1" severity="error" message="This is an unexpected use of the debugger statement." source="lint/suspicious/noDebugger" />
<error line="8" column="5" severity="error" message="This variable implicitly has the any type." source="lint/suspicious/noImplicitAnyLet" />
<error line="9" column="7" severity="error" message="This variable implicitly has the any type." source="lint/suspicious/noImplicitAnyLet" />
<error line="2" column="10" severity="error" message="Shouldn&apos;t redeclare &apos;z&apos;. Consider to delete it or rename it." source="lint/suspicious/noRedeclare" />
<error line="9" column="7" severity="error" message="Shouldn&apos;t redeclare &apos;f&apos;. Consider to delete it or rename it." source="lint/suspicious/noRedeclare" />
<error line="0" column="0" severity="error" message="Formatter would have printed the following content:" source="format" />
</file>
<file name="main.ts">
<error line="1" column="8" severity="warning" message="This import is unused." source="lint/correctness/noUnusedImports" />
<error line="2" column="10" severity="warning" message="Several of these imports are unused." source="lint/correctness/noUnusedImports" />
<error line="8" column="5" severity="warning" message="This variable f is unused." source="lint/correctness/noUnusedVariables" />
<error line="9" column="7" severity="warning" message="This variable f is unused." source="lint/correctness/noUnusedVariables" />
<error line="1" column="1" severity="error" message="The imports and exports are not sorted." source="assist/source/organizeImports" />
<error line="4" column="3" severity="error" message="Using == may be unsafe if you are relying on type coercion." source="lint/suspicious/noDoubleEquals" />
<error line="6" column="1" severity="error" message="This is an unexpected use of the debugger statement." source="lint/suspicious/noDebugger" />
<error line="8" column="5" severity="error" message="This variable implicitly has the any type." source="lint/suspicious/noImplicitAnyLet" />
<error line="9" column="7" severity="error" message="This variable implicitly has the any type." source="lint/suspicious/noImplicitAnyLet" />
<error line="2" column="10" severity="error" message="Shouldn&apos;t redeclare &apos;z&apos;. Consider to delete it or rename it." source="lint/suspicious/noRedeclare" />
<error line="9" column="7" severity="error" message="Shouldn&apos;t redeclare &apos;f&apos;. Consider to delete it or rename it." source="lint/suspicious/noRedeclare" />
<error line="0" column="0" severity="error" message="Formatter would have printed the following content:" source="format" />
</file>
</checkstyle>
```
5 changes: 5 additions & 0 deletions .changeset/max-managers-mandate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": patch
---

Fixed an issue with the `files.maxSize` setting. Previously the setting would always be looked up in the root settings, even in monorepos where a closer `biome.json` is available. It now correctly uses the nearest configuration.
5 changes: 5 additions & 0 deletions .changeset/new-signs-tie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added "@rbxts/react" as an alias for "react" for handling the reactClassic jsxRuntime.
5 changes: 5 additions & 0 deletions .changeset/polite-pets-serve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added `.oxlintrc.json` to well-known files.
12 changes: 12 additions & 0 deletions .changeset/seven-beans-cough.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@biomejs/biome": minor
---

The following rules are now a part of the `react` domain, and they won't be enabled automatically unless you enabled the domain, or Biome detects `react` as a dependency of your closest `package.json`:
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

End the introductory sentence with a period, not a colon.

Line 5 ends with : instead of .. Per coding guidelines, every sentence in a changeset must end with a period.

Apply this diff to fix:

-The following rules are now a part of the `react` domain, and they won't be enabled automatically unless you enabled the domain, or Biome detects `react` as a dependency of your closest `package.json`:
+The following rules are now a part of the `react` domain, and they won't be enabled automatically unless you enabled the domain, or Biome detects `react` as a dependency of your closest `package.json`.
📝 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
The following rules are now a part of the `react` domain, and they won't be enabled automatically unless you enabled the domain, or Biome detects `react` as a dependency of your closest `package.json`:
The following rules are now a part of the `react` domain, and they won't be enabled automatically unless you enabled the domain, or Biome detects `react` as a dependency of your closest `package.json`.
🤖 Prompt for AI Agents
In .changeset/seven-beans-cough.md around line 5, the introductory sentence ends
with a colon instead of a period; change the trailing ":" to "." so the sentence
ends with a period per the changeset style guide.


- [`lint/correctness/noChildrenProp`](https://biomejs.dev/linter/rules/no-children-prop/) (recommended)
- [`lint/correctness/noReactPropAssignments`](https://biomejs.dev/linter/rules/no-react-prop-assignments/)
- [`lint/security/noDangerouslySetInnerHtml`](https://biomejs.dev/linter/rules/no-dangerously-set-inner-html/) (recommended)
- [`lint/security/noDangerouslySetInnerHtmlWithChildren`](https://biomejs.dev/linter/rules/no-dangerously-set-inner-html-with-children/) (recommended)
- [`lint/style/useComponentExportOnlyModules`](https://biomejs.dev/linter/rules/use-component-export-only-modules/)
- [`lint/suspicious/noArrayIndexKey`](https://biomejs.dev/linter/rules/no-array-index-key/) (recommended)
12 changes: 12 additions & 0 deletions .changeset/social-hornets-wait.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@biomejs/biome": minor
---

Added the ability to show severity `Information` diagnostics in reporter outputs.

If one or more rules are triggered, and they are configured to emit an `Information` diagnostic, now they're counted in the final output:

```bash
Checked 1 file in <TIME>. No fixes applied.
Found 1 info.
```
Loading
Loading