@biomejs/biome 2.0.6
2.0.6
Patch Changes
-
#6557
fd68458Thanks @ematipico! - Fixed a bug where Biome didn't provide all the available code actions when requested by the editor. -
#6511
72623faThanks @Conaclos! - Fixed #6492. TheorganizeImportsassist action no longer duplicates a comment at the start of the file when:BLANK_LINE:precedes the first import group. -
#6557
fd68458Thanks @ematipico! - Fixed #6287 where Biome Language Server didn't adhere to thesettings.requireConfigurationoption when pulling diagnostics and code actions. Note that for this configuration be correctly applied, your editor must support dynamic registration capabilities. -
#6551
0b63b1dThanks @Conaclos! - Fixed #6536.useSortedKeysno longer panics in some edge cases where object spreads are involved. -
#6503
9a8fe0fThanks @ematipico! - Fixed #6482 where nursery rules that belonged to a domain were incorrectly enabled. -
#6565
e85761cThanks @daivinhtran! - Fixed #4677: Now thenoUnusedImportsrule won't produce diagnostics for types used in JSDoc comment of exports. -
#6166
b8cbd83Thanks @mehm8128! - Added the nursery rule noExcessiveLinesPerFunction. This rule restrict a maximum number of lines of code in a function body.The following code is now reported as invalid when the limit of maximum lines is set to 2:
function foo() { const x = 0; const y = 1; const z = 2; }The following code is now reported as valid when the limit of maximum lines is set to 3:
const bar = () => { const x = 0; const z = 2; }; -
#6553
5f42630Thanks @denbezrukov! - Fixed #6547. Now the Biome CSS parser correctly parses@starting-stylewhen it's used inside other at-rules. The following example doesn't raise an error anymore:@layer my-demo-layer { @starting-style { div.showing { background-color: red; } } } -
#6458
05402e3Thanks @ematipico! - Fixed an issue where the ruleuseSemanticElementsused the incorrect range when positioning suppression comments. -
#6560
6d8a6b9Thanks @siketyan! - Fixed #6559: the error message on detected a large file was outdated and referred a removed configuration optionfiles.ignore. -
#6458
05402e3Thanks @ematipico! - Fixed #6384. The ruleuseAltTextnow emits a diagnostic with a correct range, so suppression comments can work correctly. -
#6518
7a56288Thanks @wojtekmaj! - Fixed #6508, where the rulenoUselessFragmentsincorrectly flagged Fragments containing HTML entities as unnecessary. -
#6517
c5217cfThanks @arendjr! - Fixed #6515. When using theextendsfield to extend a configuration from an NPM package, we now accept the condition names"biome"and"default"for exporting the configuration in thepackage.json.This means that where previously your
package.jsonhad to contain an export declaration similar to this:{ "exports": { ".": "./biome.json" } }You may now use one of these as well:
{ "exports": { ".": { "biome": "./biome.json" } } }Or:
{ "exports": { ".": { "default": "./biome.json" } } } -
#6219
a3a3715Thanks @huangtiandi1999! - Added new nursery rulenoUnassignedVariables, which disallowsletorvarvariables that are read but never assigned.The following code is now reported as invalid:
let x; if (x) { console.log(1); }The following code is now reported as valid:
let x = 1; if (x) { console.log(1); } -
#6395
f62e748Thanks @mdevils! - Added the new nursery rulenoImplicitCoercion, which disallows shorthand type conversions in favor of explicit type conversion functions.Example (Invalid): Boolean conversion using double negation:
!!foo; !!(foo + bar);Example (Invalid): Number conversion using unary operators:
+foo; -(-foo); foo - 0; foo * 1; foo / 1;Example (Invalid): String conversion using concatenation:
"" + foo; foo + ""; `` + foo; foo += "";Example (Invalid): Index checking using bitwise NOT:
~foo.indexOf(1); ~foo.bar.indexOf(2);Example (Valid): Using explicit type conversion functions:
Boolean(foo); Number(foo); String(foo); foo.indexOf(1) !== -1; -
#6544
f28b075Thanks @daivinhtran! - Fixed #6536. Now the rulenoUselessFragmentsproduces diagnostics for a top-level useless fragment that is in a return statement. -
#6320
5705f1aThanks @mdevils! - Added the new nursery ruleuseUnifiedTypeSignature, which disallows overload signatures that can be unified into a single signature.Overload signatures that can be merged into a single signature are redundant and should be avoided. This rule helps simplify function signatures by combining overloads by making parameters optional and/or using type unions.
Example (Invalid): Overload signatures that can be unified:
function f(a: number): void; function f(a: string): void;interface I { a(): void; a(x: number): void; }Example (Valid): Unified signatures:
function f(a: number | string): void {}interface I { a(x?: number): void; }Example (Valid): Different return types cannot be merged:
interface I { f(): void; f(x: number): number; } -
#6545
2782175Thanks @ematipico! - Fixed #6529, where the Biome Language Server would emit an error when the user would open a file that isn't part of its workspace (node_modulesor external files). Now the language server doesn't emit any errors and it exits gracefully. -
#6524
a27b825Thanks @vladimir-ivanov! - Fixed #6500: TheuseReadonlyClassPropertiesrule now correctly marks class properties asreadonlywhen they are assigned in a constructor, setter or method, even if the assignment occurs inside an if or else block.The following code is now correctly detected by the rule:
class Price { #price: string; @Input() set some(value: string | number) { if ( value === undefined || value === null || value === "undefined" || value === "null" || Number.isNaN(value) ) { this.#price = ""; } else { this.#price = "" + value; } } } -
#6355
e128ea9Thanks @anthonyshew! - Added a new nursery rulenoAlertthat disallows the use ofalert,confirmandprompt.The following code is deemed incorrect:
alert("here!"); -
#6548
37e9799Thanks @ematipico! - Fixed #6459, where the Biome LSP was not taking into account the correct settings when applyingsource.fixAll.biomecode action.
What's Changed
- fix(linter): don't enable nursery rules in domains by @ematipico in https://github.com/biomejs/biome/pull/6503
- fix(assist/organizeImports): don't duplicate header file comment by @Conaclos in https://github.com/biomejs/biome/pull/6511
- feat(biome_js_analyze): implement noExcessiveLinesPerFunction by @mehm8128 in https://github.com/biomejs/biome/pull/6166
- fix(core): allow condition names in configuration packages by @arendjr in https://github.com/biomejs/biome/pull/6517
- feat(linter): implement noUnassignedVariables rule by @huangtiandi1999 in https://github.com/biomejs/biome/pull/6219
- chore: add labels for resolver and type inference by @arendjr in https://github.com/biomejs/biome/pull/6526
- ci: add step to dispatch event for automated codegen by @ematipico in https://github.com/biomejs/biome/pull/6505
- fix(biome-js-analyze): add a check for if/ else and ternary operators… by @vladimir-ivanov in https://github.com/biomejs/biome/pull/6524
- fix(doc): typo in CONTRIBUTING.md by @daivinhtran in https://github.com/biomejs/biome/pull/6543
- docs: fix indenting in the CLI-reference by @CommanderStorm in https://github.com/biomejs/biome/pull/6542
- feat(lint): implement
useUnifiedTypeSignaturerule by @mdevils in https://github.com/biomejs/biome/pull/6320 - feat(lint): no-alert rule by @anthonyshew in https://github.com/biomejs/biome/pull/6355
- feat(lint): implement
noImplicitCoercionrule by @mdevils in https://github.com/biomejs/biome/pull/6395 - fix(js/useSortedKeys): don't compare named properties with nameless ones by @Conaclos in https://github.com/biomejs/biome/pull/6551
- fix(js/useSortedKeys): add sources by @Conaclos in https://github.com/biomejs/biome/pull/6552
- fix(lsp): fix all file features by @ematipico in https://github.com/biomejs/biome/pull/6548
- fix(linter): diagnostic range for
useAtlTextby @ematipico in https://github.com/biomejs/biome/pull/6458 - fix(lsp): code action error by @ematipico in https://github.com/biomejs/biome/pull/6545
- chore(editorconfig): remove max_line_length comment by @tatzyr in https://github.com/biomejs/biome/pull/6555
- refactor: attach rule source kind to rule source by @Conaclos in https://github.com/biomejs/biome/pull/6556
- fix(cli): replace
files.ignorewithfiles.includesin the error message by @siketyan in https://github.com/biomejs/biome/pull/6560 - chore: link packages differently by @ematipico in https://github.com/biomejs/biome/pull/6558
- fix(lint/complexity/noUselessFragments): fix Fragments containing HTML entities marked as unnecessary by @wojtekmaj in https://github.com/biomejs/biome/pull/6518
- fix(biome_js_analyze): produce diagnogstics for top-level useless fragment that is in a return statement by @daivinhtran in https://github.com/biomejs/biome/pull/6544
- fix(docs): mdx printing and missed diagnostic by @ematipico in https://github.com/biomejs/biome/pull/6561
- fix(lsp): require config and code actions by @ematipico in https://github.com/biomejs/biome/pull/6557
- fix(css_parser): use a conditional block for the @starting-style at-rule by @denbezrukov in https://github.com/biomejs/biome/pull/6553
- fix(biome_js_analyze): add JsExport to be walked by JsDocTypeCollectorVisitior by @daivinhtran in https://github.com/biomejs/biome/pull/6565
- ci: release by @github-actions in https://github.com/biomejs/biome/pull/6507
New Contributors
- @CommanderStorm made their first contribution in https://github.com/biomejs/biome/pull/6542
- @tatzyr made their first contribution in https://github.com/biomejs/biome/pull/6555
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/biome@2.0.5...@biomejs/biome@2.0.6