Version History
Version 2.2.3
Patch Changes
-
#7353
4d2b719Thanks @JeetuSuthar! - Fixed #7340: The linter now allows thenavigationproperty for view-transition in CSS.Previously, the linter incorrectly flagged
navigation: autoas an unknown property. This fix addsnavigationto the list of known CSS properties, following the CSS View Transitions spec. -
#7275
560de1bThanks @arendjr! - Fixed #7268: Files that are explicitly passed as CLI arguments are now correctly ignored if they reside in an ignored folder. -
#7358
963a246Thanks @ematipico! - Fixed #7085, now the rulenoDescendingSpecificitycorrectly calculates the specificity of selectors when they are included inside a media query. -
#7387
923674dThanks @qraqras! - Fixed #7381, now theuseOptionalChainrule recognizes optional chaining using Yoda expressions (e.g.,undefined !== foo && foo.bar). -
#7316
f9636d5Thanks @Conaclos! - Fixed #7289. The ruleuseImportTypenow inlinesimport typeintoimport { type }when thestyleoption is set toinlineType.Example:
import type { T } from "mod";// becomesimport { type T } from "mod"; -
#7350
bb4d407Thanks @siketyan! - Fixed #7261: two characters・(KATAKANA MIDDLE DOT, U+30FB) and・(HALFWIDTH KATAKANA MIDDLE DOT, U+FF65) are no longer considered as valid characters in identifiers. Property keys containing these character(s) are now preserved as string literals. -
#7377
811f47bThanks @ematipico! - Fixed a bug where the Biome Language Server didn’t correctly compute the diagnostics of a monorepo setting, caused by an incorrect handling of the project status. -
#7245
fad34b9Thanks @kedevked! - Added the new lint ruleuseConsistentArrowReturn.This rule enforces a consistent return style for arrow functions.
Invalid
const f = () => {return 1;};This rule is a port of ESLint’s arrow-body-style rule.
-
#7370
e8032ddThanks @fireairforce! - Support dynamicimport deferandimport source. The syntax looks like:import.source("foo");import.source("x", { with: { attr: "val" } });import.defer("foo");import.defer("x", { with: { attr: "val" } }); -
#7369
b1f8cbdThanks @siketyan! - Range suppressions are now supported for Grit plugins.For JavaScript, you can suppress a plugin as follows:
// biome-ignore-start lint/plugin/preferObjectSpread: reasonObject.assign({ foo: "bar" }, baz);// biome-ignore-end lint/plugin/preferObjectSpread: reasonFor CSS, you can suppress a plugin as follows:
body {/* biome-ignore-start lint/plugin/useLowercaseColors: reason */color: #fff;/* biome-ignore-end lint/plugin/useLowercaseColors: reason */} -
#7384
099507eThanks @ematipico! - Reduced the severity of certain diagnostics emitted when Biome deserializes the configuration files. Now these diagnostics are emitted asInformationseverity, which means that they won’t interfere when running commands with--error-on-warnings -
#7302
2af2380Thanks @unvalley! - Fixed #7301:useReadonlyClassPropertiesnow correctly skips JavaScript files. -
#7288
94d85f8Thanks @ThiefMaster! - Fixed #7286. Files are now formatted with JSX behavior whenjavascript.parser.jsxEverywhereis explicitly set.Previously, this flag was only used for parsing, but not for formatting, which resulted in incorrect formatting of conditional expressions when JSX syntax is used in
.jsfiles. -
#7311
62154b9Thanks @qraqras! - Added the new nursery rulenoUselessCatchBinding. This rule disallows unnecessary catch bindings.try {// Do something} catch (unused) {}} catch {} -
#7349
45c1dfeThanks @ematipico! - Fixed #4298. Biome now correctly formats CSS declarations when it contains one single value:.bar {--123456789012345678901234567890: var(--1234567890123456789012345678901234567);--123456789012345678901234567890: var(--1234567890123456789012345678901234567);} -
#7295
7638e84Thanks @ematipico! - Fixed #7130. Removed the emission of a false-positive diagnostic. Biome no longer emits the following diagnostic:lib/main.ts:1:5 suppressions/unused ━━━━━━━━━━━━━━━━━━━━━━━━━⚠ Suppression comment has no effect because the tool is not enabled.> 1 │ /** biome-ignore-all assist/source/organizeImports: For the lib root file, we don't want to organize exports */│ ^^^^^^^^^^^^^^^^ -
#7377
811f47bThanks @ematipico! - Fixed #7371 where the Biome Language Server didn’t correctly recompute the diagnostics when updating a nested configuration file. -
#7348
ac27fc5Thanks @ematipico! - Fixed #7079. Now the ruleuseSemanticElementsdoesn’t trigger components and custom elements. -
#7389
ab06a7eThanks @Conaclos! - Fixed #7344.useNamingConventionno longer reports interfaces defined in global declarations.Interfaces declared in global declarations augment existing interfaces. Thus, they must be ignored.
In the following example,
useNamingConventionreportedHTMLElement. It is now ignored.export {};declare global {interface HTMLElement {foo(): void;}} -
#7315
4a2bd2fThanks @vladimir-ivanov! - Fixed #7310:useReadonlyClassPropertiescorrectly handles nested assignments, avoiding false positives when a class property is assigned within another assignment expression.Example of code that previously triggered a false positive but is now correctly ignored:
class test {private thing: number = 0; // incorrectly flaggedpublic incrementThing(): void {const temp = { x: 0 };temp.x = this.thing++;}}
Copyright (c) 2023-present Biome Developers and Contributors.