github biomejs/biome cli/v1.1.0
CLI v1.1.0

Analyzer

Enhancements

  • Add a code action to replace rome-ignore with biome-ignore. Use biome check --apply-unsafe to update all the comments. The action is not bulletproof, and it might generate unwanted code, that's why it's unsafe action.

CLI

Enhancements

  • Biome now reports a diagnostics when a rome.json file is found.
  • biome migrate --write creates biome.json from rome.json, but it won't delete the rome.json file.

Bug fixes

  • Biome uses biome.json first, then it attempts to use rome.json.
  • Fix a case where Biome couldn't compute correctly the ignored files when the VSC integration is enabled.

Configuration

Editors

Bug fixes

  • The LSP now uses its own socket and won't rely on Biome's socket. This fixes some cases where users were seeing
    multiple servers in the rage output.

Formatter

Enhancements

  • You can use // biome-ignore as suppression comment.
  • The // rome-ignore suppression is deprecated.

JavaScript APIs

Linter

Enhancements

  • useTemplate now reports all string concatenations.

    Previously, the rule ignored concatenation of a value and a newline or a backquote.
    For example, the following concatenation was not reported:

    v + "\n";
    "`" + v + "`";

    The rule now reports these cases and suggests the following code fixes:

    - v + "\n";
    + `${v}\n`;
    - v + "`";
    + `\`${v}\``;
  • useExponentiationOperator suggests better code fixes.

    The rule now preserves any comment preceding the exponent,
    and it preserves any parenthesis around the base or the exponent.
    It also adds spaces around the exponentiation operator **,
    and always adds parentheses for pre- and post-updates.

    - Math.pow(a++, /**/ (2))
    + (a++) ** /**/ (2)
  • You can use // biome-ignore as suppression comment.

  • The // rome-ignore suppression is deprecated.

  • noUselessConstructor now ignores decorated classes and decorated parameters.
    The rule now gives suggestions instead of safe fixes when parameters are annotated with types.

Bug fixes

  • Fix #80, making noDuplicateJsxProps case-insensitive.

    Some frameworks, such as Material UI, rely on the case-sensitivity of JSX properties.
    For example, TextField has two properties with the same name, but distinct cases:

    <TextField inputLabelProps="" InputLabelProps=""></TextField>
  • Fix #138

    noCommaOperator now correctly ignores all use of comma operators inside the update part of a for loop.
    The following code is now correctly ignored:

    for (
      let i = 0, j = 1, k = 2;
      i < 100;
      i++, j++, k++
    ) {}
  • Fix rome#4713.

    Previously, useTemplate made the following suggestion:

    - a + b + "px"
    + `${a}${b}px`

    This breaks code where a and b are numbers.

    Now, the rule makes the following suggestion:

    - a + b + "px"
    + `${a + b}px`
  • Fix rome#4109

    Previously, useTemplate suggested an invalid code fix when a leading or trailing single-line comment was present:

      // leading comment
    - 1 /* inner comment */ + "+" + 2 // trailing comment
    + `${// leading comment
    + 1 /* inner comment */}+${2 //trailing comment}` // trailing comment

    Now, the rule correctly handle this case:

      // leading comment
    - 1 + "+" + 2 // trailing comment
    + `${1}+${2}` // trailing comment

    As a sideeffect, the rule also suggests the removal of any inner comments.

  • Fix rome#3850

    Previously useExponentiationOperator suggested invalid code in a specific edge case:

    - 1 +Math.pow(++a, 2)
    + 1 +++a**2

    Now, the rule properly adds parentheses:

    - 1 +Math.pow(++a, 2)
    + 1 +(++a) ** 2
  • Fix #106

    noUndeclaredVariables now correctly recognizes some TypeScript types such as Uppercase.

  • Fix rome#4616

    Previously noUnreachableSuper reported valid codes with complex nesting of control flow structures.

What's Changed

New Contributors

Full Changelog: cli/v1.0.0...cli/v1.1.0

Don't miss a new biome release

NewReleases is sending notifications on new releases.