Biome

BiomeJS · BiomeJS.Biome

Biome is a toolchain for web projects, aimed at providing functionalities to maintain them. It offers a formatter and linter, usable via CLI and LSP.

winget install --id BiomeJS.Biome --exact --source winget

Latest 2.4.16

Release Notes

2.4.16

Patch Changes

  • #10329 ef764d5 Thanks @Conaclos! - Fixed an issue where diagnostics showed an incorrect location in Astro files.
  • #10363 50aa415 Thanks @dyc3! - Fixed HTML formatting for a case where comments could cause the formatter to split up a closing tag, which would cause the resulting HTML to be syntactically invalid. Input: <span
    </span
  • #10465 0c718da Thanks @dfedoryshchev! - Fixed diagnostics emitted by the noUntrustedLicenses rule.
  • #10358 05c2617 Thanks @dyc3! - Fixed #10356: biome rage --linter now displays rules enabled through linter domains in the enabled rules list.
  • #10300 950247c Thanks @dyc3! - Fixed #10265: Svelte function bindings such as bind:value={get, set} are now parsed more precisely, so noCommaOperator won't emit false positives for that syntax anymore.
  • #9786 e71f584 Thanks @MeGaNeKoS! - Fixed #8480: useDestructuring now provides variableDeclarator and assignmentExpression options to control which contexts enforce destructuring, matching ESLint's prefer-destructuring configuration. Both default to {array: true, object: true}. The diagnostic for object destructuring in assignment expressions now instructs users to wrap the assignment in parentheses.
  • #10425 1948b72 Thanks @sjh9714! - Fixed #10244: The useOptionalChain rule now detects negated guard inequality chains like !foo || foo.bar !== "x".
  • #10442 001f94f Thanks @ematipico! - Fixed #10411: noMisusedPromises no longer causes a stack overflow when a nested function returns an object with shorthand properties that shadow destructured variables from an outer scope.
  • #10318 9b1577f Thanks @dyc3! - Added support for formatter.trailingCommas in overrides. This option was previously available in the top-level formatter configuration but missing from formatter overrides.
  • #10319 2e37709 Thanks @dyc3! - Fixed Vue and Svelte formatting for standalone interpolations in inline elements. Biome now preserves existing newlines in cases like:
    • {{ value }}
    • {{ value }}
  • #10365 0a58eb0 Thanks @Netail! - Fixed #10361: noUnusedFunctionParameters now mentions the parameter name in the diagnostic.
  • #10439 df6b867 Thanks @denbezrukov! - Fixed CSS and SCSS formatting for comments around declaration colons so comments between property names, colons, and values stay at the same boundary as Prettier. .selector {
    • color: /* red, */
    • blue;
    • color: /* red, */ blue; }
  • #10344 b30208c Thanks @siketyan! - Fixed #10123: Corrected the noReactNativeDeepImports source rule to point to the proper upstream rule, so users can migrate from the original rule correctly.
  • #10328 b59133f Thanks @dyc3! - Fixed #10309: Biome no longer adds newlines to Astro frontmatter when linter or assist --write mode is enabled.
  • What's Changed

    • fix(format/html/vue): preserve newlines around standalone interpolations by @dyc3 in #10319
    • refactor(css_parser): remove allow_css_ratio from SCSS expression parsing functions by @denbezrukov in #10325
    • fix(astro): display diagnostic advices with the correct location by @Conaclos in #10329
    • fix: trim astro frontmatter content before processing it by @dyc3 in #10328
    • fix(config): support trailingCommas in overrides by @dyc3 in #10318
    • chore(deps): update rust:1.95.0-bullseye docker digest to b26cecc by @renovate[bot] in #10334
    • chore(deps): update rust:1.95.0-trixie docker digest to 5b1e348 by @renovate[bot] in #10335
    • chore(deps): update dependency @types/node to v24.12.3 by @renovate[bot] in #10336
    • chore(deps): update dependency tombi to v0.10.6 by @renovate[bot] in #10337
    • feat(css_parser): support for SCSS @include ... using clauses by @denbezrukov in #10327
    • chore(deps): update github-actions by @renovate[bot] in #10338
    • chore(deps): update pnpm to v10.33.4 by @renovate[bot] in #10339
    • chore(deps): update rust crate filetime to 0.2.28 by @renovate[bot] in #10340
    • chore(deps): update dependency @changesets/changelog-github to v0.7.0 by @renovate[bot] in #10342
    • feat(parse/tailwind): differentiate between number and non-number values by @dyc3 in #10332
    • chore(deps): update rust crate rayon to 1.12.0 by @renovate[bot] in #10343
    • fix(markdown_parser): parse tab-indented siblings by @jfmcdowell in #10333
    • fix(lint/js): correct the rule source of noReactNativeDeepImports by @siketyan in #10344
    • fix(markdown_parser): column-aware tab handling around block containers by @jfmcdowell in #10345
    • chore: update pnpm to the lateset by @ematipico in #10348
    • chore: fix renovate config by @dyc3 in #10352
    • feat(css_parser): support SCSS interpolated selector by @denbezrukov in #10351
    • feat(useDestructuring): add options for assignment/declaration and improve diagnostic for bare object assignments by @MeGaNeKoS in #9786
    • chore: remove benchmark from repository by @ematipico in #10355
    • fix(rage): print rules enabled by domains by @dyc3 in #10358
    • feat(css): support SCSS interpolation in attribute selectors by @denbezrukov in #10357
    • fix(js_analyze): noUnusedFunctionParameters mention parameter name by @Netail in #10365
    • feat(parse/html): parse svelte function bindings more precisely by @dyc3 in #10300
    • feat(css_formatter): add support for formatting SCSS keyframes selectors by @denbezrukov in #10362
    • fix: yaml linting panic fixes by @jjroush in #10287
    • feat(css_parser): add support for SCSS interpolated dashed identifiers and properties by @denbezrukov in #10367
    • fix(markdown_parser): handle ordered sublist continuation by @jfmcdowell in #10349
    • docs: fix duplicate-word typos in code comments by @dfedoryshchev in #10371
    • test(markdown_parser): add CST list invariants by @jfmcdowell in #10369
    • chore: yaml formatting infra by @ematipico in #10366
    • chore(goverance): cover expenses for representing Biome at a conference by @Conaclos in #10246
    • docs: clarify vcs.root description by @Dotify71 in #10379
    • Revert "docs: clarify vcs.root description" by @ematipico in #10381
    • feat(css_parser): add support for SCSS parent selectors by @denbezrukov in #10370
    • fix(css_parser): parse CSS custom functions in SCSS by @denbezrukov in #10387
    • feat(useSortedClasses): scaffold v4 parser-based sort module by @jiwon79 in #10291
    • fix(css_parser): support semicolonless SCSS statement at-rules by @denbezrukov in #10389
    • fix(format/html): fix case where comments cause invalid html by @dyc3 in #10363
    • fix(markdown_parser): break paragraph at sibling list marker without tab by @jfmcdowell in #10376
    • feat(css_formatter): preserve raw scss string interpolation by @denbezrukov in #10388
    • fix(service): correct FileExistsParams typo by @yanthomasdev in #10399
    • chore(deps): update rust crate bpaf to 0.9.26 by @renovate[bot] in #10403
    • chore(deps): update rust crate filetime to 0.2.29 by @renovate[bot] in #10404
    • chore(deps): update dependency tombi to v0.11.4 by @renovate[bot] in #10405
    • chore(deps): update rust crate dashmap to 6.2.1 by @renovate[bot] in #10406
    • chore: remove dashmap from project by @ematipico in #10407
    • chore(deps): update dependency @types/node to v24.12.4 by @renovate[bot] in #10400
    • chore(deps): update pnpm to v11.1.2 by @renovate[bot] in #10401
    • fix(css_formatter): preserve scss identifier interpolation spacing by @denbezrukov in #10398
    • chore(format/html): fix unused code warnings in release builds by @dyc3 in #10412
    • chore(service): make grit opt-in by @ematipico in #10410
    • feat(css_formatter): preserve source-tight scss binary edges by @denbezrukov in #10413
    • refactor: make yaml, md and graphql gated via rust features by @ematipico in #10416
    • feat(css_parser): add support for parsing and formatting unknown SCSS/CSS at-rules by @denbezrukov in #10397
    • refactor: make plugins opt-in via feature gate by @ematipico in #10418
    • feat(css_formatter): align SCSS map pair value layout by @denbezrukov in #10417
    • fix: incorrect build when using build or test by @ematipico in #10426
    • ci: agent scan, zizmor and reduce permissions by @ematipico in #10428
    • ci: remove checkout step from agentscan workflow by @MatteoGabriele in #10429
    • fix(css_parser): classify interpolated query feature ranges correctly by @denbezrukov in #10421
    • docs: remove outdated Caveats section in useImportExtensions by @Dotify71 in #10431
    • docs: remove redundant default phrase in useConsistentObjectDefinitions rule by @Dotify71 in #10430
    • fix(css_formatter): preserve blank lines between SCSS map pairs by @denbezrukov in #10427
    • ci: fix preview releases by @dyc3 in #10436
    • fix(useSortedClasses): sort Tailwind v4 arbitrary values by @jiwon79 in #10414
    • fix(css_parser): improve diagnostics for missing attribute names and empty selectors in SCSS by @denbezrukov in #10437
    • ci: remove corepack by @ematipico in #10440
    • fix(css_formatter): improve comment handling in generic CSS properties by @denbezrukov in #10439
    • fix(css_formatter): align commented SCSS map value layout by @denbezrukov in #10445
    • fix(css_formatter): handle control variable maps in SCSS map expressions by @denbezrukov in #10446
    • fix(inference): pass correct scope on return statements by @ematipico in #10442
    • feat(css_parser): parse interpolated scss nested properties by @denbezrukov in #10455
    • chore(deps): update rust:1.95.0-bullseye docker digest to 28afaeb by @renovate[bot] in #10457
    • fix(test): leaky CLI tests by @ematipico in #10463
    • fix(css_formatter): align SCSS map comment trailing commas by @denbezrukov in #10449
    • fix(markdown_parser): keep list blank-line separators inside the preceding item by @jfmcdowell in #10466
    • chore(deps): update rust crate jiff to 0.2.27 by @renovate[bot] in #10459
    • docs: fix duplicate "from" in noUntrustedLicenses diagnostic by @dfedoryshchev in #10465

    Installer type: portable

    Architecture Scope Download SHA256
    x64 Download 1247239DAE8F57AAFEAEB9914E30B92EFCC51C632EEE3BE4463A95969558F6A3
    arm64 Download FD0C02AD8B5BBBDD634B22D154B1076BA27624025B6AD1DD62838A179523E919

    Details

    Homepage
    https://biomejs.dev/
    License
    Apache-2.0
    Publisher
    BiomeJS
    Support
    https://github.com/biomejs/biome/issues
    Copyright
    Copyright (c) 2023-present Biome Developers and Contributors
    Moniker
    biome

    Tags

    cssformatterjavascriptjsonjsxlinterstatic-code-analysistypescriptweb

    Older versions (41)

    2.4.15
    Architecture Scope Download SHA256
    x64 Download A77A61537DFC6F923B5B1FC912BC2E0ED46A83C3303CA973695D7F4F8351C71E
    arm64 Download 52F859229094FB75198F3649036B38B4F6AAE48B4040C5DEC8D1F29A905C69F6
    2.4.14
    Architecture Scope Download SHA256
    x64 Download 6AAD48B69BB0699394F93C34FC700BF1B20130AEB7101E52FCCF5D306B65AB92
    arm64 Download 1F2D2F78DCF05EA708314608FF567B3412A85BFCD8C09EC555CEE0B8A60BF5AE
    2.4.13
    Architecture Scope Download SHA256
    x64 Download BC7D1F26BE936AEC1423F70ED94FD8C5AA80C3BA199D991DCAF13476DAA5F786
    arm64 Download 4EBFC108A649076B45D04EBB2A6B8A6642AB2180DA893B70A5C42B15D4154DA6
    2.4.12
    Architecture Scope Download SHA256
    x64 Download BB4309A0C05CAF7377FC071B770D503C5E052A45F8DDEA3C9DCA34890F202189
    arm64 Download DF8552B36007C4339BDA7D5328A5D41560F761FD24D53FFFE31F58B171483B66
    2.4.11
    Architecture Scope Download SHA256
    x64 Download 6C626FDF119215234CBE51455B07995EB67B24ADA85819D9273A02B7C6770FBD
    arm64 Download A0B928F3894DFAEA97906974E30785948E44E9FBAB8B3D86897FB7DA55AB36A9
    2.4.10
    Architecture Scope Download SHA256
    x64 Download A2BDC915914114C09A6F38EA092AF2E450953BF3ACE76BC143F2AB4D5A17B238
    arm64 Download 4285A020237CDB93E6C42CF8AF12B3BB2614ECCCAEEC283DC89F4E092577A3B7
    2.4.9
    Architecture Scope Download SHA256
    x64 Download B33519E33E6807E37D57767F7C49FC8FE5205819D267924A8FE8A20D7CE296CF
    arm64 Download 975F30393B2914D66E0D54EAC9573DD27704922A8361C462CBB0521543F67691
    2.4.8
    Architecture Scope Download SHA256
    x64 Download 5673D35901B8CA7FC0F6D70BBF5D7AFB28EBBEDB93D6D82244528AAD971EE10E
    arm64 Download F3BBA7CEF13191CEAB75B86DE29CC5E68D05E882DDC03E0FC4961A24D621C81A
    2.4.7
    Architecture Scope Download SHA256
    x64 Download 83D39E276EED2B1DC4724586F5783386AF565CE6EC3AF1E2ED1E74573BC75D75
    arm64 Download F08E8A77D47B32352707A3297DD327BF7ABB58761F5D4080361C9FB00B575F26
    2.4.6
    Architecture Scope Download SHA256
    x64 Download 4C1D9CB0A2D9442FF7FFDF3BD07654E5A8BB24F2236F596D0CC414653BBF91D5
    arm64 Download 0E9D1E4D3A90DBB354A6A10C7C8C44CDF2B9A11B5B192D389A1C58D23E5FF6CA
    2.4.5
    Architecture Scope Download SHA256
    x64 Download 8D382E6A5CD88F381EB7C2825BCCE4FEC0660FE366E93F95C8E6E2415FE16D21
    arm64 Download 12750283A136A1535BCD87E76C67D855D6452274144464AFE1C4E7184C1931C3
    2.4.4
    Architecture Scope Download SHA256
    x64 Download 8A09016CABAAC8575ABB42D19C55075FA7CA81C955F777604A2FB971A44A7ED5
    arm64 Download 321B5E64A06CF6ED3CBDB740FE35E758BFD3DC98DE269691A50653B8674CF26D
    2.4.3
    Architecture Scope Download SHA256
    x64 Download 532BC126838D76BF6F64A233956230B70447419E2CE9E3955CCD99EA08332AD4
    arm64 Download 446BB0972EA837CCAE4FB20E1D56157A68DD20C9757A57A04D06745DD982A5C1
    2.4.2
    Architecture Scope Download SHA256
    x64 Download 1681349A26746228670D74B714EF467A6F9D92B79260DDFDBFB4E75F6516A3F2
    arm64 Download 1CD7B11A342E47A39EB832A16C79068F4AFB79330B1258C3DA1F4D00483AABF1
    2.4.1
    Architecture Scope Download SHA256
    x64 Download FF162D9E8FF90B3C73E3A73F2F6E6157D830FA6A325F18D164872A6F643B4B07
    arm64 Download 61A0F15BC6D16BA64EFBDD53962C77B10A7B947D0DDBFF9ECF84DA52DF40F71F
    2.4.0
    Architecture Scope Download SHA256
    x64 Download 7B2FCE1A37FA0CA4218C2F4F0D624C0984CF44A63FA2FFBB926AAFBFB22DBB1A
    arm64 Download 26EF39358B31FA908A56B958B89D95AA3E625CC6CCAF818D83A86E1A5AE1CB40
    2.3.15
    Architecture Scope Download SHA256
    x64 Download 164EC196C874806CF91380B490DD7C7A4636E1509C055B827366E2703555CE43
    arm64 Download 3D3052FD2E29090F9AE419982D48DC32B2D3948B7E02C279D1741AA4ED53725D
    2.3.14
    Architecture Scope Download SHA256
    x64 Download B53639D382F224AB341655B5864871F367AE735080585B15C44251037146459B
    arm64 Download C2A9136A3874288BE59D2DBE6EB6A970528E935E51D4F9A2DF16DDBECEBC28D3
    2.3.13
    Architecture Scope Download SHA256
    x64 Download 41730B5F8CB75195C2F7234FF46FEE07088ADD0C50D9FB8A5F22A8CD6D267727
    arm64 Download BD270FA1E7C3124FAC0F0F651D9566C6908CA7FB786763090E1FF89B10C4AFDB
    2.3.12
    Architecture Scope Download SHA256
    x64 Download 6F38C5BEA40CB1C20E28A3B2B557689E68D9522B0E569D95087B917900DA6360
    arm64 Download 8397F3CDD340826B4960E7DC8F3D97B9D953651C87869AE1ED0618301EA62F92
    2.3.11
    Architecture Scope Download SHA256
    x64 Download 4950DC470DCBD1D975B80F8515471E805C05FD7199C5B30070306FC7FBA8C9B4
    arm64 Download 3AE37F345BBC8B7A682883D65A5C34AEA05B4E45E0216C4AF3094CA798BD59F9
    2.3.10
    Architecture Scope Download SHA256
    x64 Download 2E8EA8F4BEA4174F8515E515B1936E746B8783D889C8BDD4AA29E2AEBA8988F0
    arm64 Download B76A389786685B8517B93F7F3766B042B223423A40B9FC06117583EFD56B21E5
    2.3.9
    Architecture Scope Download SHA256
    x64 Download DE60C0FCC2B9FBA2F3FC9D7E995B3E6948F03335991654519A8D0FB2B93A7520
    arm64 Download 8DAC37537C4620FDB1B2E27BB1B8602A96FA6D94F15330270195E5398E612D37
    2.3.8
    Architecture Scope Download SHA256
    x64 Download E1F3AFC0C5EE0DE0C642C198DFA4D380D7C1A0003E370FBE7ED6A083E3985552
    arm64 Download D7E1B57393FE72AB390C91950119C129F82C86FF083FD43BC3E86FC674B7B5AE
    2.3.7
    Architecture Scope Download SHA256
    x64 Download DB86A696229E421D997123E584B3A121A73DB6E9F09ABFF19AD2AB59C69A9DDD
    arm64 Download 3040D3F7A18AE74EADE75E24207BCD60E9700FC990703692E0712066B2084FA3
    2.3.6
    Architecture Scope Download SHA256
    x64 Download BA2393F879E57A2860E419DF10FE412D11B48AA45A4C099A5943F446DC101723
    arm64 Download 13B976FC47DB35D2712B3DD90CA8D439AE7DE6F37955D6B5F7CD3339228D106B
    2.3.5
    Architecture Scope Download SHA256
    x64 Download BA3139FDE5C20E0A939C25286669A301FC886E840755E53B56C4A274A931F704
    arm64 Download 76EE73ED1D630E3AF963DF20BB9EE29AE84E8C1E37E7957D0CDE6D4123D66BFF
    2.3.4
    Architecture Scope Download SHA256
    x64 Download A866B518FB21A63330C9FF33989E4B453B04AC4B51F82A6770C659CAB6C96D96
    arm64 Download FF1E10DEC94D884EEC9B2C1914862E3A3DBD4F96F2D079ED1562626D7CA18919
    2.3.3
    Architecture Scope Download SHA256
    x64 Download 3D69BF4B5EA09B92EC9CB92C977FEAA2284529F4A725550728C3C12ED48D1267
    arm64 Download 0C9C145B1C81854A152207FDF46D347064927FCFD457D2D729F70165A60C0FE4
    2.3.2
    Architecture Scope Download SHA256
    x64 Download 7D51EC58E0B61AD8448AC3CB228C55063EB16A4356212DA7FBC0FB4FEAB3F19B
    arm64 Download 365D75380CF0D9D6901BE73535F14262EA8EA1F01506545FC40FF2B5C99B9FE3
    2.3.1
    Architecture Scope Download SHA256
    x64 Download 6305242A5B737EB34F9D4B2918AA1F60B98DCD909BBC7500B19D59998EE409A0
    arm64 Download 5202B2FBED4B0D84DC97B09B4BD32E605F8058D9E2AD9F6C59761E9CD01FD972
    2.3.0
    Architecture Scope Download SHA256
    x64 Download F082B9F783C786A230499D8EDAD12E74942DB0A84A1EB5455474A52423886DFB
    arm64 Download 18AC6D201D68CE369B154BDBD1AE65F3AFD2E1D5EDFBC45E2626D429E0491092
    2.2.7
    Architecture Scope Download SHA256
    x64 Download 70BA623D193E71A1AD55174666CBD6DEE828AC04BE4B2DF58C6084C91E733181
    arm64 Download FFFEE05BD89561D816FC258DCE7B96BC57D07BC4A84DB3B333EB69D06785ACD0
    2.2.6
    Architecture Scope Download SHA256
    x64 Download 157039ED9AA4817595BE54C7D929ACAB354A3284FBD05E78218E69FA5773E92B
    arm64 Download E2C2551EFB1961C2A3BCE6998B531E30B1AE6DEEF8E3C6DE01DF335F0B4502A3
    2.2.5
    Architecture Scope Download SHA256
    x64 Download AF268C382417B7FFA054F644CBF7CDEE8D324623AF5520BF51B7AAB95DB4EEDF
    arm64 Download 78CC287EBB69A85CA1A9C73964129090FB6B10767FBB485784A5E1F4820A25E4
    2.2.4
    Architecture Scope Download SHA256
    x64 Download 7EAA28A3782192B7C443FC50EAD097A56E4EDBC669B5963F2C2CAB3EAABBD94E
    arm64 Download 85D834055D8429728513023CFB63F327B5E5EECEEBE59BEFD4F7C736D8AF5924
    2.2.3
    Architecture Scope Download SHA256
    x64 Download 125F08B7F752CE24389A7F12D6D0F91E2CE232AC2603AE3DA40A04007DA0062B
    arm64 Download ED8FE3998CF481456912197BD9B8C6BB31C826D7160784BFE6F0A34902155371
    2.2.2
    Architecture Scope Download SHA256
    x64 Download 61E0D948020ACD78E8F4E311265A98057CD19E0633D942638561ACD369F1EA11
    arm64 Download E82200969484AC3072C8745179F3082DA5AD483AC3710D276B10F88CE86160AF
    2.2.0
    Architecture Scope Download SHA256
    x64 Download 87A13EFC6BC0A51EDA8370D1C4011A2B323EF10D06326E0BA2F75F8B594DAC37
    arm64 Download 0AB4FCAA8F18969D9F292457134538224C142EABB2CD4FF77624A91626CC1C0A
    2.1.4
    Architecture Scope Download SHA256
    x64 Download 7E38CC76B7E3683BBE50FF6C00545B90BA26931E410B2DF46192D932EC0B6A86
    arm64 Download B8911546FA6AD3191C11C3B5A5EAB6A9DD9DB138D5D28257E718A6AB40B4C4DA
    2.1.3
    Architecture Scope Download SHA256
    x64 Download 11331E52484F5C1EFE0670F118FB4227E0667C82352B7F23D51A59A430068F50
    arm64 Download 37CAE5AAD5D7E76BAEE1B57619E570D4627DA2A5ABA9933442C761ED28189076