-
Fix #4670, don't crash at empty default export.
-
Fix #4556, which correctly handles new lines in the
.gitignore
file across OS.
-
Add a new option to ignore unknown files --files-ignore-unknown
:
biome format --files-ignore-unknown ./src
Doing so, Biome won't emit diagnostics for files that doesn't know how to handle.
-
Add the new option --no-errors-on-unmatched
:
biome format --no-errors-on-unmatched ./src
Biome doesn't exit with an error code if no files were processed in the given paths.
-
Fix the diagnostics emitted when running the biome format
command.
-
Biome no longer warns when discovering (possibly infinite) symbolic links between directories.
This fixes #4193 which resulted in incorrect warnings
when a single file or directory was pointed at by multiple symbolic links. Symbolic links to other
symbolic links do still trigger warnings if they are too deeply nested.
-
Introduced a new command called biome lint
, which will only run lint rules against the code base.
-
Biome recognizes known files as "JSON files with comments allowed":
typescript.json
;tsconfig.json
;jsconfig.json
;tslint.json
;babel.config.json
;.babelrc.json
;.ember-cli
;typedoc.json
;.eslintrc.json
;.eslintrc
;.jsfmtrc
;.jshintrc
;.swcrc
;.hintrc
;.babelrc
;
-
Add support for biome.json
;
-
Add a new option to ignore unknown files:
{
"files": {
"ignoreUnknown": true
}
}
Doing so, Biome won't emit diagnostics for file that it doesn't know how to handle.
-
Add a new "javascript"
option to support the unsafe/experimental parameter decorators:
{
"javascript": {
"parser": {
"unsafeParameterDecoratorsEnabled": true
}
}
}
-
Add a new "extends"
option, useful to split the configuration file in multiple files:
{
"extends": ["../sharedFormatter.json", "linter.json"]
}
The resolution of the files is file system based, Biome doesn't know how to
resolve dependencies yet.
-
The commands biome check
and biome lint
now show the remaining diagnostics even when
--apply-safe
or --apply-unsafe
are passed.
-
Fix the commands biome check
and biome lint
,
they won't exit with an error code if no error diagnostics are emitted.
-
Add a new option --error-on-warnings
,
which instructs Biome to exit with an error code when warnings are emitted.
biome check --error-on-warnings ./src
-
Add a configuration to enable parsing comments inside JSON files:
{
"json": {
"parser": {
"allowComments": true
}
}
}
-
Improve noDuplicateParameters to manage constructor
parameters.
-
Improve noInnerDeclarations
Now, the rule doesn't report false-positives about ambient TypeScript declarations.
For example, the following code is no longer reported by the rule:
declare var foo;
-
Improve useEnumInitializers
The rule now reports all uninitialized members of an enum in a single diagnostic.
Moreover, ambient enum declarations are now ignored.
This avoids reporting ambient enum declarations in TypeScript declaration files.
declare enum Weather {
Rainy,
Sunny,
}
-
Relax noBannedTypes and improve documentation
The rule no longer reports a user type that reuses a banned type name.
The following code is now allowed:
import { Number } from "a-lib";
declare const v: Number;
The rule now allows the use of the type {}
to denote a non-nullable generic type:
function f<T extends {}>(x: T) {
assert(x != null);
}
And in a type intersection for narrowing a type to its non-nullable equivalent type:
type NonNullableMyType = MyType & {};
-
Improve noConstantCondition
The rule now allows while(true)
.
This recognizes a common pattern in the web community:
while (true) {
if (cond) {
break;
}
}
-
Improve the diagnostic and the code action
of useDefaultParameterLast.
The diagnostic now reports the last required parameter which should precede optional and default parameters.
The code action now removes any whitespace between the parameter name and its initialization.
-
Relax noConfusingArrow
All arrow functions that enclose its parameter with parenthesis are allowed.
Thus, the following snippet no longer trigger the rule:
var x = (a) => 1 ? 2 : 3;
The following snippet still triggers the rule:
var x = a => 1 ? 2 : 3;
-
Relax useLiteralEnumMembers
Enum members that refer to previous enum members are now allowed.
This allows a common pattern in enum flags like in the following example:
enum FileAccess {
None = 0,
Read = 1,
Write = 1 << 1,
All = Read | Write,
}
Arbitrary numeric constant expressions are also allowed:
enum FileAccess {
None = 0,
Read = 2**0,
Write = 2**1,
All = Read | Write,
}
-
Improve useLiteralKeys.
Now, the rule suggests simplifying computed properties to string literal properties:
{
- ["1+1"]: 2,
+ "1+1": 2,
}
It also suggests simplifying string literal properties to static properties:
{
- "a": 0,
+ a: 0,
}
These suggestions are made in object literals, classes, interfaces, and object types.
-
Improve noNewSymbol.
The rule now handles cases where Symbol
is namespaced with the global globalThis
or window
.
-
The rules useExhaustiveDependencies
and useHookAtTopLevel accept a different shape of options
Old configuration:
{
"linter": {
"rules": {
"nursery": {
"useExhaustiveDependencies": {
"level": "error",
"options": {
"hooks": [
["useMyEffect", 0, 1]
]
}
}
}
}
}
}
New configuration:
{
"linter": {
"rules": {
"nursery": {
"useExhaustiveDependencies": {
"level": "error",
"options": {
"hooks": [
{
"name": "useMyEffect",
"closureIndex": 0,
"dependenciesIndex": 1
}
]
}
}
}
}
}
}
-
noRedundantUseStrict check only 'use strict'
directive
to resolve false positive diagnostics.
React introduced new directives, "use client" and "use server".
The rule raises false positive errors about these directives.
-
Fix a crash in the NoParameterAssign rule that occurred when
there was a bogus binding. #4323
-
Fix useExhaustiveDependencies in the following
cases #4330:
- when the first argument of hooks is a named function
- inside an export default function
- for
React.use
hooks
-
Fix noInvalidConstructorSuper that erroneously
reported generic parents #4624.
-
Fix noDuplicateCase that erroneously reported as equals the
strings literals "'"
and '"'
#4706.
-
Fix NoUnreachableSuper's false positive
diagnostics (#4483) caused to nested if statement.
The rule no longer reports This constructor calls super() in a loop
when using nested if statements in a constructor.
-
Fix useHookAtTopLevel's false positive
diagnostics (#4637)
The rule no longer reports false positive diagnostics when accessing properties directly from a hook and calling a
hook inside function arguments.
-
Fix noUselessConstructor which erroneously reported
constructors with default parameters rome#4781
-
Fix noUselessFragments's panics when
running biome check --apply-unsafe
(#4637)
This rule's code action emits an invalid AST, so I fixed using JsxString instead of JsStringLiteral
-
Fix noUndeclaredVariables's false positive
diagnostics (#4675)
The semantic analyzer no longer handles this
reference identifier.
-
Fix noUnusedVariables's false positive
diagnostics (#4688)
The semantic analyzer handles ts export declaration clause correctly.