Releases: biomejs/biome
Intellij Plugin v0.0.3
Analyzer
Enhancements
- Import sorting is safe to apply now, and it will be applied when running
check --apply
instead ofcheck --apply-unsafe
.
CLI
Bug fixes
-
Fix #319. The command
biome lint
now shows the correct options. Contributed by @ematipico -
Fix #312. Running
biome --version
now exits with status code0
instead of1
. Contributed by @nhedger
Configuration
Editors
Formatter
Enhancements
- Use
OnceCell
for the Memoized memory because that's what theRefCell<Option>
implemented. Contributed by @denbezrukov
JavaScript APIs
Linter
New features
-
Add noMisleadingInstantiator rule. The rule reports the misleading use of the
new
andconstructor
methods. Contributed by @unvalley -
Add noUselessElse rule.
The rule reportselse
clauses that can be omitted because theirif
branches break.
Contributed by @Conaclos
Enhancements
-
The following rules have now safe code fixes:
Bug fixes
- Fix #294. noConfusingVoidType no longer reports false positives for return types. Contributed by @b4s36t4
Parser
- Enhance diagnostic for infer type handling in the parser. The 'infer' keyword can only be utilized within the 'extends' clause of a conditional type. Using it outside of this context will result in an error. Ensure that any type declarations using 'infer' are correctly placed within the conditional type structure to avoid parsing issues. Contributed by @denbezrukov
VSCode
What's Changed
Other changes
- chore: upgrade prettier to v3 in website/playground by @DerTimonius in #311
- fix(cli): fix ci tests by @denbezrukov in #316
- ci: remove checks in bench workflows by @ematipico in #317
- docs: add recommended rules to the docs by @ematipico in #314
- refactor: rename
rome
tobiome
in js apis by @Vivalldi in #320 - docs: new guide on how to use biome in big projects by @ematipico in #318
- feat: basic class selector parsing by @ematipico in #307
- fix: rome to biome on big-projects page by @unvalley in #324
- fix(website): remove formatter options from biome lint by @unvalley in #325
- fix: code highlighting in playground by @DerTimonius in #328
- Change default complexity by @arendjr in #337
- chore: add governance by @ematipico in #288
- feat(editors/intellij): IntelliJ Platform LSP by @victor-teles in #185
- docs: add homebrew installation instructions by @nhedger in #329
- docs(website): include rule path in rule pages by @Vivalldi in #321
- fix(workflows): Update plugin version must export version by @victor-teles in #347
- fix(workflow): updated artifect name by @victor-teles in #349
- fix(intellij): updated release-lsp env variables by @victor-teles in #356
- docs(governance): fix typos by @nhedger in #357
- chore: remove
atty
by @ematipico in #363 - chore(governance): add lead by @Conaclos in #351
- docs(CONTRIBUTING): add
nhedger
to maintainers by @nhedger in #365 - chore: add unvalley to core contributors team by @unvalley in #371
- fix(workflow/release_lsp): added distributionFile parameter by @victor-teles in #370
- Fix/release lsp workflows by @victor-teles in #376
- fix(workflow/release_lsp): added missing double quotes by @victor-teles in #377
New Contributors
- @DerTimonius made their first contribution in #311
- @b4s36t4 made their first contribution in #309
- @arendjr made their first contribution in #337
Full Changelog: cli/v1.2.2...lsp-intellij/v0.0.3
VSCode Extension v1.4.2
What's Changed
- fix(formatter): suppress
default_constructed_unit_structs
on formatter generated code by @unvalley in #298 - docs: documentation for new configuration fields by @ematipico in #295
Full Changelog: cli/v1.2.1...lsp/v1.4.2
CLI v1.2.2
CLI
Bug fixes
- Fix a condition where import sorting wasn't applied when running
biome check --apply
What's Changed
Other changes
- fix(formatter): suppress
default_constructed_unit_structs
on formatter generated code by @unvalley in #298 - docs: documentation for new configuration fields by @ematipico in #295
Full Changelog: cli/v1.2.1...cli/v1.2.2
VSCode Extension v1.4.1
What's Changed
Full Changelog: cli/v1.2.0...lsp/v1.4.1
VSCode Extension v1.4.0
CLI
New features
- Add new options to customize the behaviour the formatter based on the language of the file
--json-formatter-enabled
--json-formatter-indent-style
--json-formatter-indent-size
--json-formatter-line-width
--javascript-formatter-enabled
--javascript-formatter-indent-style
--javascript-formatter-indent-size
--javascript-formatter-line-width
Bug fixes
- Fix a bug where
--errors-on-warning
didn't work when runningbiome ci
command.
Configuration
New features
- Add new options to customize the behaviour of the formatter based on the language of the file
json.formatter.enabled
json.formatter.indentStyle
json.formatter.indentSize
json.formatter.lineWidth
javascript.formatter.enabled
javascript.formatter.indentStyle
javascript.formatter.indentSize
javascript.formatter.lineWidth
Linter
Promoted rules
New rules are incubated in the nursery group.
Once stable, we promote them to a stable group.
The following rules are promoted:
- a11y/noAriaUnsupportedElements
- a11y/noNoninteractiveTabindex
- a11y/noRedundantRoles
- a11y/useValidAriaValues
- complexity/noBannedTypes
- complexity/noStaticOnlyClass
- complexity/noUselessEmptyExport
- complexity/noUselessThisAlias
- correctness/noConstantCondition
- correctness/noNonoctalDecimalEscape
- correctness/noSelfAssign
- style/useLiteralEnumMembers
- style/useNamingConvention
- suspicious/noControlCharactersInRegex
- suspicious/noUnsafeDeclarationMerging
- suspicious/useGetterReturn
New rules
- Add noConfusingVoidType rule. The rule reports the unusual use of the
void
type. Contributed by @shulandmimi
Removed rules
-
Remove noConfusingArrow.
Code formatters, such as prettier and Biome, always adds parentheses around the parameter or the body of an arrow function.
This makes the rule useless.Contributed by @Conaclos
Enhancements
-
noFallthroughSwitchClause now relies on control flow analysis to report most of switch clause fallthrough. Contributed by @Conaclos
-
noAssignInExpressions no longer suggests code fixes. Most of the time the suggestion didn't match users' expectations. Contributed by @Conaclos
-
noUselessConstructor no longer emits safe code fixes. Contributed by @Conaclos
All code fixes are now emitted as unsafe code fixes.
Removing a constructor can change the behavior of a program. -
useCollapsedElseIf now only provides safe code fixes. Contributed by @Conaclos
-
noUnusedVariables now reports more cases.
The rule is now able to ignore self-writes.
For example, the rule reports the following unused variable:let a = 0; a++; a += 1;
The rule is also capable of detecting an unused declaration that uses itself.
For example, the rule reports the following unused interface:interface I { instance(): I }
Finally, the rule now ignores all TypeScript declaration files,
including global declaration files.Contributed by @Conaclos
Bug fixes
-
Fix #182, making useLiteralKeys retains optional chaining. Contributed by @denbezrukov
-
Fix #168, fix useExhaustiveDependencies false positive case when stable hook is on a new line. Contributed by @denbezrukov
-
Fix #137, fix noRedeclare false positive case with TypeScript module declaration:
declare module '*.gif' { const src: string; } declare module '*.bmp' { const src: string; }
Contributed by @denbezrukov
-
Fix #258, fix noUselessFragments the case where the rule removing an assignment. Contributed by @denbezrukov
-
Fix #266, where
complexity/useLiteralKeys
emitted a code action with an invalid AST. Contributed by @ematipico -
Fix #105, removing false positives reported by noUnusedVariables.
The rule no longer reports the following used variable:
const a = f(() => a);
Contributed by @Conaclos
VSCode
Enhancements
-
Improve server binary resolution when using certain package managers, notably pnpm.
The new strategy is to point to
node_modules/.bin/biome
path,
which is consistent for all package managers.Contributed by @nhedger
What's Changed
- chore: rename
rome_flags
tobiome_flags
,rome_aria_metadata
tobiome_aria_metadata
androme_aria
tobiome_aria
#88 by @kyu08 in #170 - feat: rename rome_analyze -> biome_analyze #88 by @ekusiadadus in #192
- Updated the linter rules link by @buntured in #189
- Update NumberOfRules.astro by @buntured in #176
- docs: add bun commands to getting started guide by @jakeboone02 in #188
- fix: code generation by @ematipico in #194
- chore: rename rome_text_* to biome_text_* by @nissy-dev in #198
- feat(lint/noConfusingVoidType): add no-confusing-void-type by @shulandmimi in #184
- chore: rename
rome_js_unicode_table
tobiome_js_unicode_table
#88 by @kyu08 in #205 - chore: rename some crates by @nissy-dev in #201
- chore: rename rome_diagnostics by @nissy-dev in #207
- fix useLiteralKeys bug with empty string key by @ssssota in #203
- fix(vscode): disable extension if required config file is missing by @nhedger in #210
- chore: rename
rome_cli
tobiome_cli
by @nhedger in #211 - chore: rename some crates by @nissy-dev in #212
- chore: update links displayed in
biome init
, the previous were broken by @WagnerMoreira in #213 - feat(lint/useIsNan): add code fix action by @victor-teles in #125
- chore: rename some crates by @nissy-dev in #216
- chore: rename some crates by @nissy-dev in #218
- chore: rename some crates by @nissy-dev in #220
- chore: rename
rome_js_transform
androme_js_parser
tobiome_*
by @kyu08 in #224 - Update configuration.mdx by @dinckelman in #226
- fix(lint/noConfusingVoidType): separate invalid examples by @Conaclos in #233
- feat(vscode): lower minimum engine version to
1.80.0
by @nhedger in #235 - chore: improve vscode extension debug dx by @nhedger in #221
- chore: rename
rome_formatter
androme_formatter_test
tobiome_*
by @nhedger in #223 - chore(vscode): switch from
npm
topnpm
by @nhedger in #219 - docs: add section for Vue and Svelte by @ematipico in #238
- fix(analyzer): add external module declaration by @denbezrukov in #242
- chore: rename some crates by @nissy-dev in #241
- docs: rename rome to biome by @DavidSint in #246
- ci(release_lsp): fix vscode extension build by @...
CLI v1.2.1
Configuration
- Fix an edge case where the formatter language configuration wasn't picked.
- Fix the configuration schema, where
json.formatter
properties weren't transformed in camel case.
What's Changed
Other changes
Full Changelog: cli/v1.2.0...cli/v1.2.1
CLI v1.2.0
CLI
New features
- Add new options to customize the behaviour the formatter based on the language of the file
--json-formatter-enabled
--json-formatter-indent-style
--json-formatter-indent-size
--json-formatter-line-width
--javascript-formatter-enabled
--javascript-formatter-indent-style
--javascript-formatter-indent-size
--javascript-formatter-line-width
Bug fixes
- Fix a bug where
--errors-on-warning
didn't work when runningbiome ci
command.
Configuration
New features
- Add new options to customize the behaviour of the formatter based on the language of the file
json.formatter.enabled
json.formatter.indentStyle
json.formatter.indentSize
json.formatter.lineWidth
javascript.formatter.enabled
javascript.formatter.indentStyle
javascript.formatter.indentSize
javascript.formatter.lineWidth
Linter
Promoted rules
New rules are incubated in the nursery group.
Once stable, we promote them to a stable group.
The following rules are promoted:
- a11y/noAriaUnsupportedElements
- a11y/noNoninteractiveTabindex
- a11y/noRedundantRoles
- a11y/useValidAriaValues
- complexity/noBannedTypes
- complexity/noStaticOnlyClass
- complexity/noUselessEmptyExport
- complexity/noUselessThisAlias
- correctness/noConstantCondition
- correctness/noNonoctalDecimalEscape
- correctness/noSelfAssign
- style/useLiteralEnumMembers
- style/useNamingConvention
- suspicious/noControlCharactersInRegex
- suspicious/noUnsafeDeclarationMerging
- suspicious/useGetterReturn
New rules
- Add noConfusingVoidType rule. The rule reports the unusual use of the
void
type. Contributed by @shulandmimi
Removed rules
-
Remove noConfusingArrow.
Code formatters, such as prettier and Biome, always adds parentheses around the parameter or the body of an arrow function.
This makes the rule useless.Contributed by @Conaclos
Enhancements
-
noFallthroughSwitchClause now relies on control flow analysis to report most of switch clause fallthrough. Contributed by @Conaclos
-
noAssignInExpressions no longer suggests code fixes. Most of the time the suggestion didn't match users' expectations. Contributed by @Conaclos
-
noUselessConstructor no longer emits safe code fixes. Contributed by @Conaclos
All code fixes are now emitted as unsafe code fixes.
Removing a constructor can change the behavior of a program. -
useCollapsedElseIf now only provides safe code fixes. Contributed by @Conaclos
-
noUnusedVariables now reports more cases.
The rule is now able to ignore self-writes.
For example, the rule reports the following unused variable:let a = 0; a++; a += 1;
The rule is also capable of detecting an unused declaration that uses itself.
For example, the rule reports the following unused interface:interface I { instance(): I }
Finally, the rule now ignores all TypeScript declaration files,
including global declaration files.Contributed by @Conaclos
Bug fixes
-
Fix #182, making useLiteralKeys retains optional chaining. Contributed by @denbezrukov
-
Fix #168, fix useExhaustiveDependencies false positive case when stable hook is on a new line. Contributed by @denbezrukov
-
Fix #137, fix noRedeclare false positive case with TypeScript module declaration:
declare module '*.gif' { const src: string; } declare module '*.bmp' { const src: string; }
Contributed by @denbezrukov
-
Fix #258, fix noUselessFragments the case where the rule removing an assignment. Contributed by @denbezrukov
-
Fix #266, where
complexity/useLiteralKeys
emitted a code action with an invalid AST. Contributed by https://github.com/ematipico -
Fix #105, removing false positives reported by noUnusedVariables.
The rule no longer reports the following used variable:
const a = f(() => a);
Contributed by @Conaclos
VSCode
Enhancements
-
Improve server binary resolution when using certain package managers, notably pnpm.
The new strategy is to point to
node_modules/.bin/biome
path,
which is consistent for all package managers.Contributed by @nhedger
What's Changed
- chore: rename
rome_flags
tobiome_flags
,rome_aria_metadata
tobiome_aria_metadata
androme_aria
tobiome_aria
#88 by @kyu08 in #170 - feat: rename rome_analyze -> biome_analyze #88 by @ekusiadadus in #192
- Updated the linter rules link by @buntured in #189
- Update NumberOfRules.astro by @buntured in #176
- docs: add bun commands to getting started guide by @jakeboone02 in #188
- fix: code generation by @ematipico in #194
- chore: rename rome_text_* to biome_text_* by @nissy-dev in #198
- feat(lint/noConfusingVoidType): add no-confusing-void-type by @shulandmimi in #184
- chore: rename
rome_js_unicode_table
tobiome_js_unicode_table
#88 by @kyu08 in #205 - chore: rename some crates by @nissy-dev in #201
- chore: rename rome_diagnostics by @nissy-dev in #207
- fix useLiteralKeys bug with empty string key by @ssssota in #203
- fix(vscode): disable extension if required config file is missing by @nhedger in #210
- chore: rename
rome_cli
tobiome_cli
by @nhedger in #211 - chore: rename some crates by @nissy-dev in #212
- chore: update links displayed in
biome init
, the previous were broken by @WagnerMoreira in #213 - feat(lint/useIsNan): add code fix action by @victor-teles in #125
- chore: rename some crates by @nissy-dev in #216
- chore: rename some crates by @nissy-dev in #218
- chore: rename some crates by @nissy-dev in #220
- chore: rename
rome_js_transform
androme_js_parser
tobiome_*
by @kyu08 in #224 - Update configuration.mdx by @dinckelman in #226
- fix(lint/noConfusingVoidType): separate invalid examples by @Conaclos in #233
- feat(vscode): lower minimum engine version to
1.80.0
by @nhedger in #235 - chore: improve vscode extension debug dx by @nhedger in #221
- chore: rename
rome_formatter
androme_formatter_test
tobiome_*
by @nhedger in #223 - chore(vscode): switch from
npm
topnpm
by @nhedger in #219 - docs: add section for Vue and Svelte by @ematipico in #238
- fix(analyzer): add external module declaration by @denbezrukov in #242
- chore: rename some crates by @nissy-dev in #241
- docs: rename rome to biome by @DavidSint in #246
- ci(release_lsp): fix vscode e...
VSCode Extension v1.3.20230915
Analyzer
CLI
Features
- Add new options to customize the behaviour the formatter based on the language of the file
--json-formatter-enabled
--json-formatter-indent-style
--json-formatter-indent-size
--json-formatter-line-width
--javascript-formatter-enabled
--javascript-formatter-indent-style
--javascript-formatter-indent-size
--javascript-formatter-line-width
Bug fixes
- Fix a bug where
--errors-on-warning
didn't work when runningbiome ci
command.
Configuration
Features
- Add new options to customize the behaviour of the formatter based on the language of the file
json.formatter.enabled
json.formatter.indentStyle
json.formatter.indentSize
json.formatter.lineWidth
javascript.formatter.enabled
javascript.formatter.indentStyle
javascript.formatter.indentSize
javascript.formatter.lineWidth
Editors
Formatter
JavaScript APIs
Linter
New features
- Add noConfusingVoidType rule. The rule reports the unusual use of the
void
type. Contributed by @shulandmimi
Enhancements
-
noFallthroughSwitchClause now relies on control flow analysis to report most of switch clause fallthrough. Contributed by @Conaclos
-
noAssignInExpressions no longer suggest code fixes. Most of the time the suggestion didn't match users' expectations. Contributed by @Conaclos
-
noUselessConstructor no longer emits safe code fixes. Contributed by @Conaclos
All code fixes are now emitted as unsafe code fixes.
Removing a constructor can change the behavior of a program. -
useCollapsedElseIf now only provides safe code fixes. Contributed by @Conaclos
-
noUnusedVariables now reports more cases.
The rule is now able to ignore self-writes.
For example, the rule reports the following unused variable:let a = 0; a++; a += 1;
The rule is also capable of detecting an unused declaration that uses itself.
For example, the rule reports the following unused interface:interface I { instance(): I }
Finally, the rule now ignores all TypeScript declaration files,
including global declaration files.Contributed by @Conaclos
-
Remove noConfusingArrow.
Code formatters, such as prettier and Biome, always adds parentheses around the parameter or the body of an arrow function.
This makes the rule useless.Contributed by @Conaclos
Bug fixes
-
Fix #182, making useLiteralKeys retains optional chaining. Contributed by @denbezrukov
-
Fix #168, fix useExhaustiveDependencies false positive case when stable hook is on a new line. Contributed by @denbezrukov
-
Fix #137, fix noRedeclare false positive case with TypeScript module declaration:
declare module '*.gif' { const src: string; } declare module '*.bmp' { const src: string; }
Contributed by @denbezrukov
-
Fix #258, fix noUselessFragments the case where the rule removing an assignment. Contributed by @denbezrukov
-
Fix #266, where
complexity/useLiteralKeys
emitted a code action with an invalid AST. Contributed by @ematipico -
Fix #105, removing false positives reported by noUnusedVariables.
The rule no longer reports the following used variable:
const a = f(() => a);
Contributed by @Conaclos
Parser
VSCode
What's Changed
Other changes
- chore: rename
rome_flags
tobiome_flags
,rome_aria_metadata
tobiome_aria_metadata
androme_aria
tobiome_aria
#88 by @kyu08 in #170 - feat: rename rome_analyze -> biome_analyze #88 by @ekusiadadus in #192
- Updated the linter rules link by @buntured in #189
- Update NumberOfRules.astro by @buntured in #176
- docs: add bun commands to getting started guide by @jakeboone02 in #188
- fix: code generation by @ematipico in #194
- chore: rename rome_text_* to biome_text_* by @nissy-dev in #198
- feat(lint/noConfusingVoidType): add no-confusing-void-type by @shulandmimi in #184
- chore: rename
rome_js_unicode_table
tobiome_js_unicode_table
#88 by @kyu08 in #205 - chore: rename some crates by @nissy-dev in #201
- chore: rename rome_diagnostics by @nissy-dev in #207
- fix useLiteralKeys bug with empty string key by @ssssota in #203
- fix(vscode): disable extension if required config file is missing by @nhedger in #210
- chore: rename
rome_cli
tobiome_cli
by @nhedger in #211 - chore: rename some crates by @nissy-dev in #212
- chore: update links displayed in
biome init
, the previous were broken by @WagnerMoreira in #213 - feat(lint/useIsNan): add code fix action by @victor-teles in #125
- chore: rename some crates by @nissy-dev in #216
- chore: rename some crates by @nissy-dev in #218
- chore: rename some crates by @nissy-dev in #220
- chore: rename
rome_js_transform
androme_js_parser
tobiome_*
by @kyu08 in #224 - Update configuration.mdx by @dinckelman in #226
- fix(lint/noConfusingVoidType): separate invalid examples by @Conaclos in #233
- feat(vscode): lower minimum engine version to
1.80.0
by @nhedger in #235 - chore: improve vscode extension debug dx by @nhedger in #221
- chore: rename
rome_formatter
androme_formatter_test
tobiome_*
by @nhedger in #223 - chore(vscode): switch from
npm
topnpm
by @nhedger in #219 - docs: add section for Vue and Svelte by @ematipico in #238
- fix(analyzer): add external module declaration by @denbezrukov in #242
- chore: rename some crates by @nissy-dev in #241
- refactor(lint/useCollapsedElseIf): remove unsafe code fixes by @Conaclos in #244
- docs: rename rome to biome by @DavidSint in #246
- ci(release_lsp): fix vscode extension build by @nhedger in #249
- fix(biome-lsp): only filter quickactions when action category is 'quickfix.biome' by @victor-teles in #248
- chore: rename rome_js_analyze to biome_js_analyze by @Conaclos in #250
- chore: rename some crates by @nissy-dev in #251
- ci(release_lsp): fix extension packaging by @nhedger in #253
- ci: update workflow deps and cancel jobs on PR update by @Conaclos in #261
- ci: cleanup cache when a PR is closed by @Conaclos in #262
- Revert "ci: cleanup cache when a PR is closed (#262)" by @Conaclos in #272
- chore: update contribution links by @ematipico in #277
- fix(vscode): server bin path resolution by @nhedger in #227
- fix(cli): set the right name for binary executable by @NumberOneBot in #278
New Contributors
- @kyu08 made their first contribution in #170
- @buntured made their first contribution in #189
- @jakeboone02 made their first contribution in #188
- @shulandmimi made their first contribution in #184
- @ssssota made their first contributi...
VSCode Extension v1.2.2
Analyzer
CLI
Configuration
Editors
Formatter
JavaScript APIs
Linter
Parser
VSCode
What's Changed
- refactor(lint/useNamingConvention): allow import namespace in PascalCase by @Conaclos in #174
- ci: install taplo binary by @ematipico in #181
- chore: rename rome_css_* to biome_css__* by @nissy-dev in #183
- release: 1.1.2 by @ematipico in #186
Full Changelog: cli/v1.1.1...lsp/v1.2.2
VSCode Extension v1.2.1
Analyzer
CLI
Configuration
Editors
Formatter
JavaScript APIs
Linter
Parser
VSCode
What's Changed
- fix: fix website links by @matejkrajcovic in #172
- feat: rename markup, test_utils... -> biome #88 by @ekusiadadus in #169
- docs: update 1.1.0 changelog entries by @Vivalldi in #173
- release: 1.1.1 by @ematipico in #179
New Contributors
- @matejkrajcovic made their first contribution in #172
- @ekusiadadus made their first contribution in #169
Full Changelog: cli/v1.1.0...lsp/v1.2.1