Biome scores 96% compatibility with Prettier! Read our announcement on our blog.
CLI
-
Remove the CLI options from the
lsp-proxy
, as they were never meant to be passed to that command. Contributed by @ematipico -
Add option
--config-path
tolsp-proxy
andstart
commands. It's now possible to tell the Daemon server to loadbiome.json
from a custom path. Contributed by @ematipico -
Add new
--diagnostic-level
option to let users control the level of diagnostics printed by the CLI. Possible values are:"info"
,"warn"
,"hint"
. Contributed by @simonxabris -
Add option
--line-feed
to theformat
command. Contributed by @SuperchupuDev -
Add option
--bracket-same-line
to theformat
command. Contributed by @faultyserve -
Add option
--bracket-spacing
to theformat
command. Contributed by @faultyserve
Bug fixes
- Fix the command
format
, now it returns a non-zero exit code when if there pending diffs. Contributed by @ematipico
Configuration
- Add option
formatter.lineFeed
. Contributed by @SuperchupuDev - Add option
javascript.formatter.bracketSameLine
. Contributed by @faultyserve - Add option
javascript.formatter.bracketSpacing
. Contributed by @faultyserve
Formatter
New features
- Add a new option
--line-ending
. This option allows changing the type of line endings. Contributed by @SuperchupuDev - Added a new option called
--bracket-spacing
to the formatter. This option allows you to control whether spaces are inserted around the brackets of object literals. #627. Contributed by @faultyserver - Added a new option called
--bracket-same-line
to the formatter. This option allows you to control whether spaces are inserted around the brackets of object literals. #627. Contributed by @faultyserver
Bug fixes
-
Fix #832, the formatter no longer keeps an unnecessary trailing comma in type parameter lists. Contributed by @Conaclos
-
Fix #301, the formatter should not break before the
in
keyword. Contributed by @ematipico
Linter
Promoted rules
- a11y/noInteractiveElementToNoninteractiveRole
- complexity/noThisInStatic
- complexity/useArrowFunction
- correctness/noEmptyCharacterClassInRegex
- correctness/noInvalidNewBuiltin
- style/noUselessElse
- style/useAsConstAssertion
- style/useShorthandAssign
- suspicious/noApproximativeNumericConstant
- suspicious/noMisleadingInstantiator
- suspicious/noMisrefactoredShorthandAssign
The following rules are now recommended:
The following rules are now deprecated:
- correctness/noNewSymbol
The rule is replaced by correctness/noInvalidNewBuiltin
New features
-
Add noDefaultExport which disallows
export default
. Contributed by @Conaclos -
Add noAriaHiddenOnFocusable which reports hidden and focusable elements. Contributed by @vasucp1207
-
Add noImplicitAnyLet that reports variables declared with
let
and without initialization and type annotation. Contributed by @TaKO8Ki and @b4s36t4 -
Add useAwait that reports
async
functions that don't use anawait
expression. -
Add useValidAriaRole. Contributed by @vasucp1207
-
Add useRegexLiterals that suggests turning call to the regex constructor into regex literals. COntributed by @Yuiki
Enhancements
- Add an unsafe code fix for a11y/useAriaActivedescendantWithTabindex
Bug fixes
-
Fix #639 by ignoring unused TypeScript's mapped key. Contributed by @Conaclos
-
Fix #565 by handling several
infer
with the same name in extends clauses of TypeScript's conditional types. Contributed by @Conaclos -
Fix #653. noUnusedImports now correctly removes the entire line where the unused
import
is. Contributed by @Conaclos -
Fix #607
useExhaustiveDependencies
, ignore optional chaining, Contributed by @msdlisper -
Fix #676, by using the correct node for the
"noreferrer"
when applying the code action. Contributed by @ematipico -
Fix #455. The CLI can now print complex emojis to the console correctly.
-
Fix #727. noInferrableTypes now correctly keeps type annotations when the initialization expression is
null
. Contributed by @Conaclos -
Fix #784, noSvgWithoutTitle fixes false-positives to
aria-label
and reports svg's role attribute is implicit. Contributed by @unvalley -
Fix #834 that made noUselessLoneBlockStatements reports block statements of switch clauses. Contributed by @vasucp1207
-
Fix #783 that made noUselessLoneBlockStatements reports block statements of
try-catch
structures. Contributed by @hougesen -
Fix #69 that made correctness/noUnnecessaryContinue incorrectly reports a
continue
used to break a switch clause. Contributed by @TaKO8Ki -
Fix #664 by improving the diagnostic of style/useNamingConvention when double capital are detected in strict camel case mode. Contributed by @vasucp1207
-
Fix #643 that erroneously parsed the option of complexity/useExhaustiveDependencies. Contributed by @arendjr
Parser
Bug fixes
- Fix #846 that erroneously parsed
<const T,>() => {}
as a JSX tag instead of an arrow function when both TypeScript and JSX are enabled.
VSCode
What's Changed
Other changes
- fix: avoid escape for jsx by @Gumichocopengin8 in #842
- feat(js_formatter): es5 trailing comma revision by @Conaclos in #848
- chore: upgrade prettier to v3.1.0 by @seitarof in #855
- fix(formatter): fix wrong Indentation for leading comments in empty statement by @TaKO8Ki in #858
- fix(matcher): fix wrongly ignored paths by @TaKO8Ki in #859
- chore: Add TaKO8Ki to Maintainers team by @TaKO8Ki in #862
- chore: use the same
Prettier
version in Biome by @Gumichocopengin8 in #864 - docs: clarify
organizeImports
is opt-out by @kt3k in #866 - feat(css_parser): CSS Parser pseudo element selector #268 by @denbezrukov in #839
- feat: add more ignored files by @Gumichocopengin8 in #875
- fix(formatter): Line breaking after
extends
in type parameters by @Yuiki in #876 - challenge: update reports by @Conaclos in #877
- fix(tooling): update the script to bump the nightly version by @chansuke in #874
- chore: Add myself as a maintainer in CONTRIBUTING.md by @faultyserver in #884
- chore: upgrade Rust to 1.74.0 by @togami2864 in #889
- docs: fix link to playground instrunctions by @chansuke in #888
- docs: fix link to technical principals by @yoshi2no in #890
- fix: cargo build for publishing by @nissy-dev in #886
- feat: i18n setup and some Japanese translation by @Gumichocopengin8 in #887
- fix: update the crate publishing order in scripts/publish-crates.sh by @nissy-dev in #891
- refactor(lint/noUselessTypeCOnstraint): add required trailing comma in arrow functions by @Conaclos in #893
- refactor(js_formatter): adjust mandatory trailing comma in arrow functions by @Conaclos in #892
- refactor(lint/noExplicitAny): ignore type constraint clauses by @Conaclos in #894
- challenge: update reports by @Conaclos in #898
- fix(js_formatter): keep parens for some optional chains by @Conaclos in #897
- chore(doc): Add japanese-translation-reviewers to CODEOWNERS by @TaKO8Ki in #902
- doc(ja): translate
Analyzer
into Japanese by @Gumichocopengin8 in #901 - doc(ja): translate
language-support
into Japanese by @yossydev in #900 - challenge: update reports by @Conaclos in #907
- docs(README): make more epxlicit the benefits of Biome by @Conaclos in #908
New Contributors
- @seitarof made their first contribution in #855
- @kt3k made their first contribution in #866
- @Yuiki made their first contribution in #843
- @chansuke made their first contribution in #874
- @togami2864 made their first contribution in #889
- @yoshi2no made their first contribution in #890
- @yossydev made their first contribution in #900
Full Changelog: cli/v1.3.3-nightly.38797b7...cli/v1.4.0