mirror of
https://github.com/alecthomas/chroma.git
synced 2026-06-20 11:35:42 +02:00
master
1070
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ad9051e9fe |
chore: delete hcl lexer
The terraform lexer is more comprehensive. Fixes #1281 |
||
|
|
900164f7f4 |
fix: use v3 version in cmd go.mod require lines
Goreleaser builds without the replace directive, so the require version must be valid for the v3 module path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>v3.0.0-alpha.3 |
||
|
|
ad6e131bfd |
feat!: unexport html.Formatter.Classes field
Use WithClasses() option to set it. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>v3.0.0-alpha.2 |
||
|
|
ac8cad13c3 |
feat!: make formatter and style registries private
Replace direct map access with Get/Names/Lookup functions. Add styles.Lookup() for callers that need to distinguish unknown styles from the fallback. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
cf4561606a |
feat!: remove deprecated RegexLexer.Trace method
Use SetTracing() instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
bfbca1dd2e |
feat!: remove deprecated style compat vars
Use styles.Get(name) instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
af5ff8916c |
feat!: replace custom Iterator with iter.Seq[Token]
BREAKING CHANGE: Bump module to v3. Replace the custom Iterator type with Go's built-in iter.Seq[Token]. Remove EOF sentinel and EOFType. Callers should use range loops and slices.Collect() instead of .Tokens()/.Stdlib().v3.0.0-alpha.1 |
||
|
|
976b215e98 |
chore(deps): update dependency binaryen to v130 (#1288)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [binaryen](https://redirect.github.com/WebAssembly/binaryen) | major | `129` → `130` | --- ### Release Notes <details> <summary>WebAssembly/binaryen (binaryen)</summary> ### [`v130`](https://redirect.github.com/WebAssembly/binaryen/blob/HEAD/CHANGELOG.md#v130) - MarkJSCalled pass, to help configureAll users. ([#​8733](https://redirect.github.com/WebAssembly/binaryen/issues/8733)) - RemoveExports pass, to allow easy export removal (e.g. after merge) ([#​8670](https://redirect.github.com/WebAssembly/binaryen/issues/8670)) - Wide Arithmetic support ([#​8544](https://redirect.github.com/WebAssembly/binaryen/issues/8544)) - New fuzzer mode: PreserveImportsExportsJS ([#​8592](https://redirect.github.com/WebAssembly/binaryen/issues/8592)) - New fuzzer mode: Fuzz against JavaScript ([#​8655](https://redirect.github.com/WebAssembly/binaryen/issues/8655)) - Increase Alpine stack size to 8MB for release builds ([#​8595](https://redirect.github.com/WebAssembly/binaryen/issues/8595)) - Rename relaxed SIMD instructions to prepend the `relaxed_` prefix. ([#​8673](https://redirect.github.com/WebAssembly/binaryen/issues/8673)) - Rename C and JS API operations to prepend the `Relaxed` prefix: - `LaneselectI8x16` to `RelaxedLaneselectI8x16` - `LaneselectI16x8` to `RelaxedLaneselectI16x8` - `LaneselectI32x4` to `RelaxedLaneselectI32x4` - `LaneselectI64x2` to `RelaxedLaneselectI64x2` - `DotI8x16I7x16AddSToVecI32x4` to `RelaxedDotI8x16I7x16AddSToVecI32x4` - `DotI8x16I7x16SToVecI16x8` to `RelaxedDotI8x16I7x16SToVecI16x8` - \[JS & C API] Rename MemorySegment functions to DataSegment ([#​8576](https://redirect.github.com/WebAssembly/binaryen/issues/8576)) - Rename `BinaryenGetNumMemorySegments` to `BinaryenGetNumDataSegments` in c api. - Rename `BinaryenGetMemorySegmentByteOffset` to `BinaryenGetDataSegmentByteOffset` in c api. - Rename `BinaryenGetMemorySegmentByteLength` to `BinaryenGetDataSegmentByteLength` in c api. - Rename `BinaryenGetMemorySegmentPassive` to `BinaryenGetDataSegmentPassive` in c api. - Rename `BinaryenCopyMemorySegmentData` to `BinaryenCopyDataSegmentData` in c api. - Rename `module.getNumMemorySegments` to `module.getNumDataSegments` in js api. - Rename `module.getMemorySegmentInfo` to `module.getDataSegmentInfo` in js api. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
d44c33804e |
chore(deps): update actions/checkout digest to df4cb1c (#1284)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) ([changelog](https://redirect.github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd..df4cb1c069e1874edd31b4311f1884172cec0e10)) | action | digest | `de0fac2` → `df4cb1c` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
f954f077eb |
Add Hyprlang lexer (#1286)
Adds a Hyprlang lexer for Hyprland configuration files. Closes #1046. The lexer covers common Hyprland config syntax including variables, assignments, sections and device sections, exec/source directives, colors, monitor dimensions, booleans, modifiers, and window-rule command lists. Test fixtures were generated for the lexer and analyser. Validation run locally: - `RECORD=true go test ./lexers` - `go test ./lexers -count=1` - `go test ./... -count=1` - `./bin/golangci-lint run` |
||
|
|
a6d00fe2cd |
fix(html): make mode class output opt-in via WithModeClasses
Fixes #1287 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>v2.27.0 |
||
|
|
f52d0150b8 | chore: some house-keeping | ||
|
|
f08a9ab463 | chore: add fmt + test to BUILD.bit | ||
|
|
6da8f88144 |
fix(yaml): comments can be key-values (#1289)
This fixes a bug where comments that come after a name tag and contain a colon character are parsed as key-value pair instead of as comment. For example, the following YAML is parsed as having the key `version: 2 # Required`: ```yaml version: 2 # Required: Configuration format version ``` Therefore, this makes the `NameTag` regex stricter and doesn't allow the hash character in name tags, avoiding the bad parsing. ## Example A current example of how this breaks in practice is our [GitLab Caproni docs site](https://gitlab-org.gitlab.io/caproni/config/), which uses [imfing/hextra](https://github.com/imfing/hextra), which uses Chroma. The YAML comments are treated partially as keys instead of comments. <img width="568" height="155" alt="image" src="https://github.com/user-attachments/assets/9d026526-de3f-4ff6-b6f6-cdbfb2af673e" /> Co-authored-by: Kev Kloss <kkloss@gitlab.com> |
||
|
|
67785a4c2d |
chore(deps): update all non-major dependencies (#1285)
> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | alpine | final | minor | `3.23` → `3.24` |  |  | | [biome](https://redirect.github.com/biomejs/biome) | | minor | `2.4.16` → `2.5.0` |  |  | | [esbuild](https://redirect.github.com/evanw/esbuild) | | patch | `0.28.0` → `0.28.1` |  |  | | [github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2) | require | minor | `v2.1.2` → `v2.2.1` |  |  | | [just](https://redirect.github.com/casey/just) | | minor | `1.51.0` → `1.52.0` |  |  | | [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.11.19` → `0.11.21` |  |  | --- ### Release Notes <details> <summary>biomejs/biome (biome)</summary> ### [`v2.5.0`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.0): Biome CLI v2.5.0 #### 2.5.0 ##### Minor Changes - [#​9539](https://redirect.github.com/biomejs/biome/pull/9539) [`f0615fd`](https://redirect.github.com/biomejs/biome/commit/f0615fdae80fa7257fc1d0448d2027cb1acff46e) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added a new reporter called `concise`. When `--reporter=concise` is passed the commands `format`, `lint`, `check` and `ci`, the diagnostics are printed in a compact manner: ``` ! index.ts:2:10: lint/correctness/noUnusedImports: Several of these imports are unused. ! main.ts:9:7: lint/correctness/noUnusedVariables: This variable f is unused. × index.ts:8:5: lint/suspicious/noImplicitAnyLet: This variable implicitly has the any type. × main.ts:2:10: lint/suspicious/noRedeclare: Shouldn't redeclare 'z'. Consider to delete it or rename it. ``` - [#​9495](https://redirect.github.com/biomejs/biome/pull/9495) [`2056b23`](https://redirect.github.com/biomejs/biome/commit/2056b23812a17f9c9a9015e5b725faecb04647b5) Thanks [@​aviraldua93](https://redirect.github.com/aviraldua93)! - Added the [`useKeyWithClickEvents`](https://biomejs.dev/linter/rules/use-key-with-click-events/) a11y lint rule for HTML files (`.html`, `.vue`, `.svelte`, `.astro`). This is a port of the existing JSX rule. The rule enforces that elements with an `onclick` handler also have at least one keyboard event handler (`onkeydown`, `onkeyup`, or `onkeypress`) to ensure keyboard accessibility. Inherently keyboard-accessible elements (`<a>`, `<button>`, `<input>`, `<select>`, `<textarea>`, `<option>`) are excluded, as are elements hidden from assistive technologies (`aria-hidden`) or with `role="presentation"` / `role="none"`. ```html <!-- Invalid: no keyboard handler --> <div onclick="handleClick()">Click me</div> <!-- Valid: has keyboard handler --> <div onclick="handleClick()" onkeydown="handleKeyDown()">Click me</div> <!-- Valid: inherently keyboard-accessible --> <button onclick="handleClick()">Submit</button> ``` - [#​9152](https://redirect.github.com/biomejs/biome/pull/9152) [`9ec8500`](https://redirect.github.com/biomejs/biome/commit/9ec8500dabc7305cbe04ecf27a84a1450f012c0b) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added new nursery lint rule [`noUndeclaredClasses`](https://biomejs.dev/linter/rules/no-undeclared-classes/) for HTML, JSX, and SFC files (Vue, Astro, Svelte). The rule detects CSS class names used in `class="..."` (or `className`) attributes that are not defined in any `<style>` block or linked stylesheet reachable from the file. ```html <!-- .typo is used but never defined --> <html> <head> <style> .button { color: blue; } </style> </head> <body> <div class="button typo"></div> </body> </html> ``` - [#​9152](https://redirect.github.com/biomejs/biome/pull/9152) [`9ec8500`](https://redirect.github.com/biomejs/biome/commit/9ec8500dabc7305cbe04ecf27a84a1450f012c0b) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added new nursery lint rule [`noUnusedClasses`](https://biomejs.dev/linter/rules/no-unused-classes/) for CSS. The rule detects CSS class selectors that are never referenced in any HTML or JSX file that imports the stylesheet. This is a project-domain rule that requires the module graph. ```css /* styles.css — .ghost is never used in any importing file */ .button { color: blue; } .ghost { color: red; } ``` ```jsx /* App.jsx */ import "./styles.css"; export default () => <div className="button" />; ``` - [#​9546](https://redirect.github.com/biomejs/biome/pull/9546) [`6567efa`](https://redirect.github.com/biomejs/biome/commit/6567efa51ba074436b017e49b1d2d369e7252e74) Thanks [@​nhedger](https://redirect.github.com/nhedger)! - Added a `biome upgrade` command for standalone installations. It upgrades Homebrew installs with `brew upgrade biome`, updates manually installed binaries from the latest GitHub release, and tells npm users to upgrade with their package manager instead. - [#​9716](https://redirect.github.com/biomejs/biome/pull/9716) [`701767a`](https://redirect.github.com/biomejs/biome/commit/701767a3c4de8bce032933588ef2b6e5e252919f) Thanks [@​faizkhairi](https://redirect.github.com/faizkhairi)! - Added the HTML version of the [`useHeadingContent`](https://biomejs.dev/linter/rules/use-heading-content/) rule. The rule now enforces that heading elements (`h1`-`h6`) have content accessible to screen readers in HTML, Vue, Svelte, and Astro files. ```html <!-- Invalid: empty heading --> <h1></h1> <!-- Invalid: heading hidden from screen readers --> <h1 aria-hidden="true">invisible content</h1> <!-- Valid: heading with text content --> <h1>heading</h1> <!-- Valid: heading with accessible name --> <h1 aria-label="Screen reader content"></h1> ``` - [#​9582](https://redirect.github.com/biomejs/biome/pull/9582) [`f437ef8`](https://redirect.github.com/biomejs/biome/commit/f437ef8b6b0eb8f909d523950cf2c543042083d5) Thanks [@​rahuld109](https://redirect.github.com/rahuld109)! - Added the HTML version of the [`useKeyWithMouseEvents`](https://biomejs.dev/linter/rules/use-key-with-mouse-events/) rule. The rule now enforces that `onmouseover` is accompanied by `onfocus` and `onmouseout` is accompanied by `onblur` in HTML, Vue, Svelte, and Astro files. ```html <!-- Invalid: onmouseover without onfocus --> <div onmouseover="handleMouseOver()"></div> <!-- Valid: onmouseover paired with onfocus --> <div onmouseover="handleMouseOver()" onfocus="handleFocus()"></div> ``` - [#​9275](https://redirect.github.com/biomejs/biome/pull/9275) [`1fdbcee`](https://redirect.github.com/biomejs/biome/commit/1fdbceea62d373f24da9c1e5cc0cdd169b573e84) Thanks [@​ff1451](https://redirect.github.com/ff1451)! - Added the new assist action [`useSortedTypeFields`](https://biomejs.dev/assist/actions/use-sorted-type-fields/), which sorts the fields of GraphQL object types, interface types and input object types alphabetically, e.g. `name, age, id` becomes `age, id, name`. - [#​10561](https://redirect.github.com/biomejs/biome/pull/10561) [`78075b7`](https://redirect.github.com/biomejs/biome/commit/78075b7c7cb7490c730a96f4ee9776c9e77826e7) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Added a new `style` option to [useExportType](https://biomejs.dev/linter/rules/use-export-type/), which enforces a style for exporting types. This is the same option as the one provided by `useImportType`. - [#​8987](https://redirect.github.com/biomejs/biome/pull/8987) [`d16e32b`](https://redirect.github.com/biomejs/biome/commit/d16e32b5b971a4ed9cd3bf5098782c8b752af69a) Thanks [@​DerTimonius](https://redirect.github.com/DerTimonius)! - Ported the [`useValidAnchor`](https://biomejs.dev/linter/rules/use-valid-anchor/) rule to HTML. This rule enforces that all anchors are valid and that they are navigable elements. - [#​9533](https://redirect.github.com/biomejs/biome/pull/9533) [`4d251d4`](https://redirect.github.com/biomejs/biome/commit/4d251d489cfd33a83e42d425476f8d6c66b72d9b) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - The `init` command now prints the Biome logo. - [#​10069](https://redirect.github.com/biomejs/biome/pull/10069) [`0eb9310`](https://redirect.github.com/biomejs/biome/commit/0eb93109e1f9bfbb20744961681b4f0b9b781ad5) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the HTML lint rule [`noStaticElementInteractions`](https://biomejs.dev/linter/rules/no-static-element-interactions/), which enforces that static, visible elements (such as `<div>`) that have click handlers use the valid role attribute. **Invalid**: ```html <div onclick="myFunction()"></div> ``` - [#​9134](https://redirect.github.com/biomejs/biome/pull/9134) [`2a43488`](https://redirect.github.com/biomejs/biome/commit/2a434882746d31e1bd3c8e0d711372a539ce88f8) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added the assist action [`useSortedPackageJson`](https://biomejs.dev/assist/actions/use-sorted-package-json). This action organizes package.json fields according to the same conventions as the popular [sort-package-json](https://redirect.github.com/keithamus/sort-package-json) tool. - [#​9309](https://redirect.github.com/biomejs/biome/pull/9309) [`7daa18b`](https://redirect.github.com/biomejs/biome/commit/7daa18b07f7ab348942f4cb83b475e6a4b3d1125) Thanks [@​Bertie690](https://redirect.github.com/Bertie690)! - The `allowDoubleNegation` option has been added to [`noImplicitCoercions`](https://biomejs.dev/linter/rules/no-implicit-coercions) to allow ignoring double negations inside code. With the option enabled, the following example is considered valid and is ignored by the rule: ```js const truthy = !!value; ``` - [#​9700](https://redirect.github.com/biomejs/biome/pull/9700) [`894f3fb`](https://redirect.github.com/biomejs/biome/commit/894f3fb4c664b12ff9abd1527b535621fe4e22f6) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - The Biome Language server now supports the "go-to definition" feature. When the cursor of the mouse is hovering an entity (variable, CSS class, type, etc.), and the command <kbd>CTRL</kbd> + click is triggered, the editor jumps to where this entity is defined, if the language server can find it. Here's what Biome is able to resolve: - Variables and types used in JavaScript modules, defined in the same file or imported from another module. - JSX Components used in JavaScript modules, defined in the same file or imported from another module. - CSS classes used in JSX and HTML-ish files (Vue, Svelte and Astro), and defined in CSS files. - Components used in HTML-ish files and defined in other HTML-ish. - Variables used in HTML-ish files and defined in the same file or imported from another module (JavaScript or HTML-ish). - [#​10070](https://redirect.github.com/biomejs/biome/pull/10070) [`bae0710`](https://redirect.github.com/biomejs/biome/commit/bae071050f5a9c335b4483ee384f21ac1e6f0b4d) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Added the `:STYLE:` group matcher for [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/) that matches style imports. For example, the following configuration... ```json { "assist": { "actions": { "source": { "organizeImports": { "level": "on", "options": { "groups": ["**", "!:STYLE:"], "sortBareImports": true } } } } } } ``` ...places style imports last: ```diff - import "./style.css" import A from "./a.js" + import "./style.css" ``` - [#​9170](https://redirect.github.com/biomejs/biome/pull/9170) [`e3107de`](https://redirect.github.com/biomejs/biome/commit/e3107deedcff0f02b61702c6645d89e8d8635b49) Thanks [@​mdrobny](https://redirect.github.com/mdrobny)! - Added `bundleDependencies` option to [NoUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies) rule. This rule now supports imports of packages that are defined only in `bundleDependencies` and `bundledDependencies` arrays. - [#​9547](https://redirect.github.com/biomejs/biome/pull/9547) [`01f8473`](https://redirect.github.com/biomejs/biome/commit/01f847317820f805698e1b8ba9eaa8fa6c26205c) Thanks [@​mujpao](https://redirect.github.com/mujpao)! - Added new assist rule [`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/) for HTML, porting the existing JSX rule. This rule enforces sorted HTML attributes. **Invalid** ```html <input type="text" id="name" name="name" /> ``` - [#​9366](https://redirect.github.com/biomejs/biome/pull/9366) [`2ca1117`](https://redirect.github.com/biomejs/biome/commit/2ca1117f1e63f6cd99c0ce8d4b82475625838e2e) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the `html.parser.vue` configuration option. When enabled, it adds support for the parsing of Vue in `.html` files. Most Vue users don't need to enable this option since Vue files typically use the `.vue` extension, but it can be useful for projects that embed Vue syntax in regular HTML files. - [#​9073](https://redirect.github.com/biomejs/biome/pull/9073) [`74b20ee`](https://redirect.github.com/biomejs/biome/commit/74b20eee556c9acc72ad5ea335b1bf0983d2eb2e) Thanks [@​chocky335](https://redirect.github.com/chocky335)! - Added support for applying GritQL plugin rewrites as code actions. GritQL plugins that use the rewrite operator (`=>`) now produce fixable diagnostics for JavaScript, CSS, and JSON files. By default, plugin rewrites are treated as unsafe fixes and require `--write --unsafe` to apply. Plugin authors can pass `fix_kind = "safe"` to `register_diagnostic()` to mark a fix as safe, allowing it to be applied with just `--write`. **Example plugin** (`useConsoleInfo.grit`): ```grit language js `console.log($msg)` as $call where { register_diagnostic(span = $call, message = "Use console.info instead of console.log.", severity = "warn", fix_kind = "safe"), $call => `console.info($msg)` } ``` Running `biome check --write` applies safe rewrites. Unsafe rewrites (the default, or `fix_kind = "unsafe"`) still require `--write --unsafe`. - [#​9384](https://redirect.github.com/biomejs/biome/pull/9384) [`f4c9edc`](https://redirect.github.com/biomejs/biome/commit/f4c9edca8f8772a1e65d9e6701fdc3f604a9f3fe) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Added the `sortBareImports` option to [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/), which allows bare imports to be sorted within other imports when set to `false`. ```json { "assist": { "actions": { "source": { "organizeImports": { "level": "on", "options": { "sortBareImports": true } } } } } } ``` ```diff - import "b"; import "a"; + import "b"; import { A } from "a"; + import "./file"; import { Local } from "./file"; - import "./file"; ``` - [#​8731](https://redirect.github.com/biomejs/biome/pull/8731) [`e7872bf`](https://redirect.github.com/biomejs/biome/commit/e7872bffba88f60d6c3cb6d0c2dd7a25452a0205) Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Added the watch mode (`--watch`) to the CLI for `check`/`format`/`lint` commands. By enabling this option, Biome will re-run the check automatically when any file in the workspace has changed after the first run. - [#​10106](https://redirect.github.com/biomejs/biome/pull/10106) [`9b35f78`](https://redirect.github.com/biomejs/biome/commit/9b35f78e183edf44a3d8b7077ebb0c548a7e92f5) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Biome can now format and lint `.svg` files. - [#​9967](https://redirect.github.com/biomejs/biome/pull/9967) [`e9b6c17`](https://redirect.github.com/biomejs/biome/commit/e9b6c17cd6f7e870aea68da3b6c6474aa1a9b4f6) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added HTML support for [`noExcessiveLinesPerFile`](https://biomejs.dev/linter/rules/no-excessive-lines-per-file/). Biome now reports HTML files that exceed the configured line limit, including when `skipBlankLines` is enabled. - [#​9491](https://redirect.github.com/biomejs/biome/pull/9491) [`b3eb63c`](https://redirect.github.com/biomejs/biome/commit/b3eb63c7e19e6ebd41e463289de098bb003686e1) Thanks [@​IxxyDev](https://redirect.github.com/IxxyDev)! - Added the HTML lint rule [`noAriaUnsupportedElements`](https://biomejs.dev/linter/rules/no-aria-unsupported-elements/). This rule enforces that elements that do not support ARIA roles, states, and properties (`meta`, `html`, `script`, `style`) do not have `role` or `aria-*` attributes. ```html <!-- Invalid: meta does not support aria attributes --> <meta charset="UTF-8" role="meta" /> ``` - [#​9306](https://redirect.github.com/biomejs/biome/pull/9306) [`afd57a6`](https://redirect.github.com/biomejs/biome/commit/afd57a634bdb6b0b161dc8a2522ac460503569b1) Thanks [@​viraxslot](https://redirect.github.com/viraxslot)! - Added the [`noNoninteractiveTabindex`](https://biomejs.dev/linter/rules/no-noninteractive-tabindex/) lint rule for HTML. This rule enforces that `tabindex` is not used on non-interactive elements, as it can cause usability issues for keyboard users. ```html <div tabindex="0">Invalid: non-interactive element</div> ` ``` - [#​9276](https://redirect.github.com/biomejs/biome/pull/9276) [`6d041d9`](https://redirect.github.com/biomejs/biome/commit/6d041d919e06595553093e084e6aad0d39fb8109) Thanks [@​IxxyDev](https://redirect.github.com/IxxyDev)! - Added the HTML lint rule [`noRedundantRoles`](https://biomejs.dev/linter/rules/no-redundant-roles/). This rule enforces that explicit `role` attributes are not the same as the implicit/default role of an HTML element. It supports HTML, Vue, Svelte, and Astro files. ```html <!-- Invalid: role="button" is redundant on <button> --> <button role="button"></button> ``` - [#​9813](https://redirect.github.com/biomejs/biome/pull/9813) [`69aadc2`](https://redirect.github.com/biomejs/biome/commit/69aadc27741bb8a74c926e14a2a9777064cb1e03) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added a new linter configuration called `preset`. With the new option, users can enable different kinds of rules at once. The following presets are available: - `"recommended"`: it enables all Biome-recommended rules, or recommended rules of a group; - `"all"`: it enables all Biome rules, or enables all rules of a group; - `"none"`: it disables all Biome rules, or disable all rules of a group. You can enable recommended rules: ```json { "linter": { "rules": { "preset": "recommended" } } } ``` You can enable **all rules** at once: ```json5 { linter: { rules: { preset: "all", // enables all rules }, }, } ``` Or enable all rules for a group: ```json5 { linter: { rules: { style: { preset: "all", // enables all rules in the style group }, }, }, } ``` This new option, however, doesn't affect how nursery rules work. Nursery rules must be enabled singularly, due to their nature. This new option is meant to replace `recommended`, so make sure to run the `migrate` command. - [#​10022](https://redirect.github.com/biomejs/biome/pull/10022) [`3422d71`](https://redirect.github.com/biomejs/biome/commit/3422d71bc5e9d7f07fd4e7509566427e1591d760) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the HTML lint rule [`noNoninteractiveElementToInteractiveRole`](https://biomejs.dev/linter/rules/no-noninteractive-element-to-interactive-role/), which enforces that interactive ARIA roles are not assigned to non-interactive HTML elements. **Invalid**: ```html <h1 role="checkbox"></h1> ``` - [#​8396](https://redirect.github.com/biomejs/biome/pull/8396) [`13785fc`](https://redirect.github.com/biomejs/biome/commit/13785fc8f4be068eccff84a8ad90ac8530d5c992) Thanks [@​apple-yagi](https://redirect.github.com/apple-yagi)! - Biome now supports pnpm catalogs (default and named) when resolving dependencies for linting. This behavior is opt-in and requires setting `javascript.resolver.experimentalPnpmCatalogs` to `true`. - [#​10028](https://redirect.github.com/biomejs/biome/pull/10028) [`1009414`](https://redirect.github.com/biomejs/biome/commit/100941409f3ec5e6653e92b2cfbb4100df1becb0) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the HTML lint rule [`noInteractiveElementToNoninteractiveRole`](https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role/), which enforces that non-interactive ARIA roles are not assigned to interactive HTML elements. **Invalid**: ```html <input role="img" /> ``` - [#​9853](https://redirect.github.com/biomejs/biome/pull/9853) [`816302f`](https://redirect.github.com/biomejs/biome/commit/816302f8c8c9862585c283fce22ffd1817dedf9f) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the new assist action [`useSortedSelectionSet`](https://biomejs.dev/assist/actions/use-sorted-selection-set/), which sorts GraphQL selection sets alphabetically, e.g. `name, age, id` becomes `age, id, name`. **Invalid**: ```graphql query { name age id } ``` - [#​10074](https://redirect.github.com/biomejs/biome/pull/10074) [`9c7c6eb`](https://redirect.github.com/biomejs/biome/commit/9c7c6eb99f6880aa87ae0e7aff357e978361c4a3) Thanks [@​georgephillips](https://redirect.github.com/georgephillips)! - Added a `kind` field to the `ImportMatcher` used by the [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/) assist action. The new field selects imports by their syntactic kind and currently supports `bare` (matching side-effect imports such as `import "polyfill"`) with optional `!` negation (`!bare`). The matcher composes with the existing `type` and `source` fields, so users can express patterns such as "only bare imports that import a CSS file" (`{ "kind": "bare", "source": "**/*.css" }`). For example, with the following configuration: ```json { "assist": { "actions": { "source": { "organizeImports": { "level": "on", "options": { "sortBareImports": true, "groups": [ { "kind": "!bare" }, ":BLANK_LINE:", { "kind": "bare" } ] } } } } } } ``` ...the following code: ```ts import "./register-my-component"; import { render } from "react-dom"; import "./polyfill"; import { Button } from "@​/components/Button"; ``` ...is organized as: ```ts import { render } from "react-dom"; import { Button } from "@​/components/Button"; import "./polyfill"; import "./register-my-component"; ``` - [#​9171](https://redirect.github.com/biomejs/biome/pull/9171) [`ce65710`](https://redirect.github.com/biomejs/biome/commit/ce65710f591eb2676df6833e9cd00e310981692b) Thanks [@​chocky335](https://redirect.github.com/chocky335)! - Added `includes` option for plugin file scoping. Plugins can now be configured with glob patterns to restrict which files they run on. Use negated globs for exclusions. ```json { "plugins": [ "global-plugin.grit", { "path": "scoped-plugin.grit", "includes": ["src/**/*.ts", "!**/*.test.ts"] } ] } ``` - [#​9617](https://redirect.github.com/biomejs/biome/pull/9617) [`dcb99ef`](https://redirect.github.com/biomejs/biome/commit/dcb99ef0305d8431af40b526c449316bb8a70efa) Thanks [@​faizkhairi](https://redirect.github.com/faizkhairi)! - Ported [`useAriaActivedescendantWithTabindex`](https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex/) a11y rule to HTML. - [#​9496](https://redirect.github.com/biomejs/biome/pull/9496) [`1dfb829`](https://redirect.github.com/biomejs/biome/commit/1dfb8291a0a2340e7c9220f9126317a7490ec466) Thanks [@​aviraldua93](https://redirect.github.com/aviraldua93)! - Added HTML support for the [`noAriaHiddenOnFocusable`](https://biomejs.dev/linter/rules/no-aria-hidden-on-focusable/) accessibility lint rule, which enforces that `aria-hidden="true"` is not set on focusable elements. Focusable elements include native interactive elements (`<button>`, `<input>`, `<select>`, `<textarea>`), elements with `href` (`<a>`, `<area>`), elements with `tabindex >= 0`, and editing hosts (`contenteditable`). Includes an unsafe fix to remove the `aria-hidden` attribute. ```html <!-- Invalid: aria-hidden on a focusable element --> <button aria-hidden="true">Submit</button> <!-- Valid: aria-hidden on a non-focusable element --> <div aria-hidden="true">decorative content</div> ``` - [#​9792](https://redirect.github.com/biomejs/biome/pull/9792) [`f516854`](https://redirect.github.com/biomejs/biome/commit/f51685404f015a5c6f0fc87b9070ac5d9f0a7b6b) Thanks [@​Maximiliano-Zeballos](https://redirect.github.com/Maximiliano-Zeballos)! - Added the [`useSemanticElements`](https://biomejs.dev/linter/rules/use-semantic-elements/) lint rule for HTML. The rule now detects the use of `role` attributes in HTML elements and suggests using semantic elements instead. For example, the following code is now flagged: ```html <div role="navigation"></div> ``` The rule suggests using `<nav>` instead. - [#​9761](https://redirect.github.com/biomejs/biome/pull/9761) [`cbbb7d5`](https://redirect.github.com/biomejs/biome/commit/cbbb7d5bf21d8fb6db275da7adcc03c034538635) Thanks [@​Maximiliano-Zeballos](https://redirect.github.com/Maximiliano-Zeballos)! - Ported the [`useValidAriaProps`](https://biomejs.dev/linter/rules/use-valid-aria-props/) lint rule to HTML. This rule checks that all `aria-*` attributes used in HTML elements are valid ARIA attributes as defined by the WAI-ARIA specification. - [#​9928](https://redirect.github.com/biomejs/biome/pull/9928) [`aa82576`](https://redirect.github.com/biomejs/biome/commit/aa82576ff66e03924e07729051ac9bfc59cd5aa1) Thanks [@​aviraldua93](https://redirect.github.com/aviraldua93)! - Ported [`useValidAriaValues`](https://biomejs.dev/linter/rules/use-valid-aria-values/) to HTML. Biome now validates static `aria-*` attribute values in HTML elements against WAI-ARIA types, catching invalid values such as `aria-hidden="yes"`. - [#​10562](https://redirect.github.com/biomejs/biome/pull/10562) [`6642895`](https://redirect.github.com/biomejs/biome/commit/66428957e6ca393a802f365b8e643438f19a3039) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Promoted 73 nursery rules to stable groups. Four rules were renamed as part of the promotion: - `noFloatingClasses` is now [`noUnusedInstantiation`](https://biomejs.dev/linter/rules/no-unused-instantiation/), because the rule checks any discarded `new` expression, not only classes. - `noMultiStr` is now [`noMultilineString`](https://biomejs.dev/linter/rules/no-multiline-string/). - `useFind` is now [`useArrayFind`](https://biomejs.dev/linter/rules/use-array-find/). - `useSpread` is now [`useSpreadOverApply`](https://biomejs.dev/linter/rules/use-spread-over-apply/), because the rule enforces spread call arguments over `Function.apply()`, not array or object spread. ##### Correctness Promoted the following rules to the `correctness` group: - [`noBeforeInteractiveScriptOutsideDocument`](https://biomejs.dev/linter/rules/no-before-interactive-script-outside-document/) - [`noUnusedInstantiation`](https://biomejs.dev/linter/rules/no-unused-instantiation/) - [`useInlineScriptId`](https://biomejs.dev/linter/rules/use-inline-script-id/) (recommended, Next.js domain) - [`noVueVIfWithVFor`](https://biomejs.dev/linter/rules/no-vue-v-if-with-v-for/) (recommended, Vue domain) - [`useVueValidVBind`](https://biomejs.dev/linter/rules/use-vue-valid-v-bind/) (recommended, Vue domain) - [`useVueValidVElse`](https://biomejs.dev/linter/rules/use-vue-valid-v-else/) (recommended, Vue domain) - [`useVueValidVElseIf`](https://biomejs.dev/linter/rules/use-vue-valid-v-else-if/) (recommended, Vue domain) - [`useVueValidVHtml`](https://biomejs.dev/linter/rules/use-vue-valid-v-html/) (recommended, Vue domain) - [`useVueValidVIf`](https://biomejs.dev/linter/rules/use-vue-valid-v-if/) (recommended, Vue domain) - [`useVueValidVOn`](https://biomejs.dev/linter/rules/use-vue-valid-v-on/) (recommended, Vue domain) - [`useVueValidVText`](https://biomejs.dev/linter/rules/use-vue-valid-v-text/) (recommended, Vue domain) - [`useVueValidTemplateRoot`](https://biomejs.dev/linter/rules/use-vue-valid-template-root/) (recommended, Vue domain) - [`useVueValidVCloak`](https://biomejs.dev/linter/rules/use-vue-valid-v-cloak/) (recommended, Vue domain) - [`useVueValidVOnce`](https://biomejs.dev/linter/rules/use-vue-valid-v-once/) (recommended, Vue domain) - [`useVueValidVPre`](https://biomejs.dev/linter/rules/use-vue-valid-v-pre/) (recommended, Vue domain) - [`useVueVForKey`](https://biomejs.dev/linter/rules/use-vue-v-for-key/) (recommended, Vue domain) - [`noDuplicateAttributes`](https://biomejs.dev/linter/rules/no-duplicate-attributes/) (recommended) - [`noDuplicateArgumentNames`](https://biomejs.dev/linter/rules/no-duplicate-argument-names/) (recommended) - [`noDuplicateInputFieldNames`](https://biomejs.dev/linter/rules/no-duplicate-input-field-names/) (recommended) - [`noDuplicateVariableNames`](https://biomejs.dev/linter/rules/no-duplicate-variable-names/) (recommended) - [`noDuplicateEnumValueNames`](https://biomejs.dev/linter/rules/no-duplicate-enum-value-names/) (recommended) - [`useLoneAnonymousOperation`](https://biomejs.dev/linter/rules/use-lone-anonymous-operation/) (recommended) ##### Suspicious Promoted the following rules to the `suspicious` group: - [`noShadow`](https://biomejs.dev/linter/rules/no-shadow/) - [`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/) - [`noParametersOnlyUsedInRecursion`](https://biomejs.dev/linter/rules/no-parameters-only-used-in-recursion/) - [`noUnknownAttribute`](https://biomejs.dev/linter/rules/no-unknown-attribute/) - [`useArraySortCompare`](https://biomejs.dev/linter/rules/use-array-sort-compare/) - [`noForIn`](https://biomejs.dev/linter/rules/no-for-in/) - [`noDuplicatedSpreadProps`](https://biomejs.dev/linter/rules/no-duplicated-spread-props/) - [`noEqualsToNull`](https://biomejs.dev/linter/rules/no-equals-to-null/) - [`noProto`](https://biomejs.dev/linter/rules/no-proto/) (recommended) - [`noUndeclaredEnvVars`](https://biomejs.dev/linter/rules/no-undeclared-env-vars/) (recommended, Turborepo domain) - [`noReturnAssign`](https://biomejs.dev/linter/rules/no-return-assign/) (default severity: `error`) - [`noDuplicateEnumValues`](https://biomejs.dev/linter/rules/no-duplicate-enum-values/) (recommended) - [`noVueArrowFuncInWatch`](https://biomejs.dev/linter/rules/no-vue-arrow-func-in-watch/) (recommended, Vue domain) - [`noNestedPromises`](https://biomejs.dev/linter/rules/no-nested-promises/) - [`noLeakedRender`](https://biomejs.dev/linter/rules/no-leaked-render/) - [`noDeprecatedMediaType`](https://biomejs.dev/linter/rules/no-deprecated-media-type/) (recommended) - [`noDuplicateGraphqlOperationName`](https://biomejs.dev/linter/rules/no-duplicate-graphql-operation-name/) - [`useRequiredScripts`](https://biomejs.dev/linter/rules/use-required-scripts/) ##### Style Promoted the following rules to the `style` group: - [`useVueMultiWordComponentNames`](https://biomejs.dev/linter/rules/use-vue-multi-word-component-names/) (recommended, Vue domain) - [`useVueDefineMacrosOrder`](https://biomejs.dev/linter/rules/use-vue-define-macros-order/) - [`noIncrementDecrement`](https://biomejs.dev/linter/rules/no-increment-decrement/) - [`noContinue`](https://biomejs.dev/linter/rules/no-continue/) - [`useSpreadOverApply`](https://biomejs.dev/linter/rules/use-spread-over-apply/) - [`noTernary`](https://biomejs.dev/linter/rules/no-ternary/) - [`noMultilineString`](https://biomejs.dev/linter/rules/no-multiline-string/) - [`noMultiAssign`](https://biomejs.dev/linter/rules/no-multi-assign/) - [`noExcessiveClassesPerFile`](https://biomejs.dev/linter/rules/no-excessive-classes-per-file/) - [`noExcessiveLinesPerFile`](https://biomejs.dev/linter/rules/no-excessive-lines-per-file/) - [`noVueOptionsApi`](https://biomejs.dev/linter/rules/no-vue-options-api/) - [`useErrorCause`](https://biomejs.dev/linter/rules/use-error-cause/) - [`useConsistentEnumValueType`](https://biomejs.dev/linter/rules/use-consistent-enum-value-type/) - [`useConsistentMethodSignatures`](https://biomejs.dev/linter/rules/use-consistent-method-signatures/) - [`useGlobalThis`](https://biomejs.dev/linter/rules/use-global-this/) (default severity: `warn`) - [`useDestructuring`](https://biomejs.dev/linter/rules/use-destructuring/) - [`useVueHyphenatedAttributes`](https://biomejs.dev/linter/rules/use-vue-hyphenated-attributes/) (recommended, Vue domain) - [`useVueConsistentVBindStyle`](https://biomejs.dev/linter/rules/use-vue-consistent-v-bind-style/) (recommended, Vue domain) - [`useVueConsistentVOnStyle`](https://biomejs.dev/linter/rules/use-vue-consistent-v-on-style/) (recommended, Vue domain) - [`noHexColors`](https://biomejs.dev/linter/rules/no-hex-colors/) - [`useConsistentGraphqlDescriptions`](https://biomejs.dev/linter/rules/use-consistent-graphql-descriptions/) - [`noRootType`](https://biomejs.dev/linter/rules/no-root-type/) - [`useLoneExecutableDefinition`](https://biomejs.dev/linter/rules/use-lone-executable-definition/) - [`useInputName`](https://biomejs.dev/linter/rules/use-input-name/) ##### Complexity Promoted the following rules to the `complexity` group: - [`useArrayFind`](https://biomejs.dev/linter/rules/use-array-find/) - [`noRedundantDefaultExport`](https://biomejs.dev/linter/rules/no-redundant-default-export/) (default severity: `warn`) - [`noUselessReturn`](https://biomejs.dev/linter/rules/no-useless-return/) - [`noDivRegex`](https://biomejs.dev/linter/rules/no-div-regex/) ##### Performance Promoted the following rules to the `performance` group: - [`noSyncScripts`](https://biomejs.dev/linter/rules/no-sync-scripts/) - [`noJsxPropsBind`](https://biomejs.dev/linter/rules/no-jsx-props-bind/) - [`useVueVapor`](https://biomejs.dev/linter/rules/use-vue-vapor/) ##### Security Promoted the following rules to the `security` group: - [`noScriptUrl`](https://biomejs.dev/linter/rules/no-script-url/) (recommended) ##### A11y Promoted the following rules to the `a11y` group: - [`noAmbiguousAnchorText`](https://biomejs.dev/linter/rules/no-ambiguous-anchor-text/) (recommended) - [#​10121](https://redirect.github.com/biomejs/biome/pull/10121) [`450f8e1`](https://redirect.github.com/biomejs/biome/commit/450f8e1c0a46e8c867a63a0842deaa50dee95176) Thanks [@​jongwan56](https://redirect.github.com/jongwan56)! - Biome now applies Git's local exclude file when VCS ignore files are enabled. Files listed in `.git/info/exclude` are skipped the same way as files listed in `.gitignore`, including in linked worktrees. - [#​9397](https://redirect.github.com/biomejs/biome/pull/9397) [`d5913c9`](https://redirect.github.com/biomejs/biome/commit/d5913c9d57b771b0b1c0097f8014017878cc14c2) Thanks [@​mvarendorff](https://redirect.github.com/mvarendorff)! - Added `ignore` option to the [noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/) rule. The option allows excluding identifiers by providing a list of ignored names. It also allows excluding kinds of identifiers from this rule entirely, which may be useful when loading classes dynamically. For example, unused classes as well as all unused variables, functions, etc. called "unused" may be ignored entirely with the following configuration: ```json { "ignore": { "*": ["unused"], "class": ["*"] } } ``` - [#​10089](https://redirect.github.com/biomejs/biome/pull/10089) [`71a21f0`](https://redirect.github.com/biomejs/biome/commit/71a21f0ab4fd32739331d3b3068c6c1ae6392290) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the lint rule [`noLabelWithoutControl`](https://biomejs.dev/linter/rules/no-label-without-control/) to HTML, which enforces that a label element or component has a text label and an associated input. ```html <label></label> ``` - [#​10015](https://redirect.github.com/biomejs/biome/pull/10015) [`1828261`](https://redirect.github.com/biomejs/biome/commit/182826178de9c1b23bad2e997c3567a9d5176ba2) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the HTML lint rule [`useAriaPropsSupportedByRole`](https://biomejs.dev/linter/rules/use-aria-props-supported-by-role/), which enforces that ARIA properties are valid for the roles that are supported by the element. ```html <a href="#" aria-checked></a> ``` - [#​10234](https://redirect.github.com/biomejs/biome/pull/10234) [`1a51569`](https://redirect.github.com/biomejs/biome/commit/1a51569229936b9ad1191d081ed6742e8342badd) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added the `delimiterSpacing` formatter option. This option inserts spaces inside delimiters (after the opening delimiter and before the closing delimiter) when the content fits on a single line. Empty delimiters are not affected, and no space is added before the opening delimiter. The specific delimiters affected depend on the language. It can be configured globally via `formatter.delimiterSpacing` or per-language via `javascript.formatter.delimiterSpacing`, `json.formatter.delimiterSpacing`, and `css.formatter.delimiterSpacing`. Defaults to `false`. ```diff - callFn(foo) + callFn( foo ) ``` ```diff - const arr = [1, 2, 3]; + const arr = [ 1, 2, 3 ]; ``` ##### JavaScript When enabled, Biome inserts spaces inside parentheses (e.g., `foo( a, b )`), square brackets (e.g., `[ a, b ]`), template literal interpolations (e.g., `${ expr }`), and the logical NOT operator (e.g., `! x`, but in chains only after the last one: `!! x`). Only applies when the content fits on a single line. Empty delimiters and the space before the opening delimiter are not affected. ```diff - if (condition) {} + if ( condition ) {} ``` ```diff - `Hello ${name}!` + `Hello ${ name }!` ``` ##### JSX When enabled, Biome inserts spaces inside JSX expression braces (e.g., `attr={ value }`) and spread attributes (e.g., `{ ...props }`). Only applies when the content fits on a single line. Empty delimiters are not affected. ```diff - <Foo bar={value} /> + <Foo bar={ value } /> ``` ##### TypeScript When enabled, Biome inserts spaces inside TypeScript angle brackets (e.g., `foo< T >()`), indexed access types (e.g., `T[ K ]`), mapped types, tuple types, type parameters, and index signatures. Only applies when the content fits on a single line. Empty delimiters are not affected. ```diff - type Result = Map<string, number>; + type Result = Map< string, number >; ``` ##### JSON When enabled, Biome inserts spaces inside square brackets when the content fits on a single line. Empty brackets are not affected. ```diff - [1, 2, 3] + [ 1, 2, 3 ] ``` ##### CSS When enabled, Biome inserts spaces inside parentheses and square brackets when the content fits on a single line. Empty delimiters are not affected. ```diff - rgba(0, 0, 0, 1) + rgba( 0, 0, 0, 1 ) ``` ```diff - [data-attr] + [ data-attr ] ``` - [#​10461](https://redirect.github.com/biomejs/biome/pull/10461) [`6bac1c3`](https://redirect.github.com/biomejs/biome/commit/6bac1c3457d396215e4daed5fc59eaf23b42f4eb) Thanks [@​TXWSLYF](https://redirect.github.com/TXWSLYF)! - Implements [#​9445](https://redirect.github.com/biomejs/biome/issues/9445). Added the `allowImplicit` option to [`useIterableCallbackReturn`](https://biomejs.dev/linter/rules/use-iterable-callback-return/). When enabled, callbacks can use `return;` to implicitly return `undefined`, matching ESLint's `array-callback-return` rule. - [#​9571](https://redirect.github.com/biomejs/biome/pull/9571) [`5a8eb75`](https://redirect.github.com/biomejs/biome/commit/5a8eb755fe07b38760d2b72ec46e24cd108f6619) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added configurable options to the [`useNumericSeparators`](https://biomejs.dev/linter/rules/use-numeric-separators/) rule. Users can now customize the minimum number of digits required before adding separators and the group length for each type of numeric literal (`binary`, `octal`, `decimal`, `hexadecimal`). ```json { "linter": { "rules": { "style": { "useNumericSeparators": { "level": "error", "options": { "decimal": { "minimumDigits": 7, "groupLength": 3 }, "hexadecimal": { "minimumDigits": 4, "groupLength": 2 } } } } } } } ``` - [#​10067](https://redirect.github.com/biomejs/biome/pull/10067) [`6064312`](https://redirect.github.com/biomejs/biome/commit/60643120b5593104b311e184cf9581b9c7c2254d) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the lint rule [`useFocusableInteractive`](https://biomejs.dev/linter/rules/use-focusable-interactive/) to HTML, which enforces elements with an interactive role and interaction handler to be focusable. **Invalid**: ```html <div role="button"></div> ``` - [#​10026](https://redirect.github.com/biomejs/biome/pull/10026) [`fb42ac4`](https://redirect.github.com/biomejs/biome/commit/fb42ac42079ec7b8e699a507bce332f4446ac7f2) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the HTML lint rule [`noNoninteractiveElementInteractions`](https://biomejs.dev/linter/rules/no-noninteractive-element-interactions/), which disallows use event handlers on non-interactive elements. **Invalid**: ```html <div onclick="myFunction()">button</div> ``` - [#​10000](https://redirect.github.com/biomejs/biome/pull/10000) [`2093e3e`](https://redirect.github.com/biomejs/biome/commit/2093e3ee2a615abecae159d35a5a17fe0df5f506) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the new assist action [`useSortedEnumMembers`](https://biomejs.dev/assist/actions/use-sorted-enum-members/), which sorts TypeScript & GraphQL enum members. **Invalid**: ```graphql enum Role { SUPER_ADMIN ADMIN USER GOD } ``` - [#​10013](https://redirect.github.com/biomejs/biome/pull/10013) [`ad01d3d`](https://redirect.github.com/biomejs/biome/commit/ad01d3d882276b070433822f01cdf6afed63ca4e) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the HTML lint rule [`useValidAutocomplete`](https://biomejs.dev/linter/rules/use-valid-autocomplete/), which enforces using valid values for the `autocomplete` attribute on `input` elements. ```html <input autocomplete="incorrect" /> ``` ##### Patch Changes - [#​10498](https://redirect.github.com/biomejs/biome/pull/10498) [`995c1ff`](https://redirect.github.com/biomejs/biome/commit/995c1ffeca039787c93370fed8b970a057e9c073) Thanks [@​citadelgrad](https://redirect.github.com/citadelgrad)! - Added the nursery rule [`useReactFunctionComponentDefinition`](https://biomejs.dev/linter/rules/use-react-function-component-definition), which enforces a consistent function type for named React function components. For example, the following snippet triggers the rule by default. ```jsx const MyComponent = (props) => { return <div>{props.name}</div>; }; ``` - [#​9974](https://redirect.github.com/biomejs/biome/pull/9974) [`ff635a9`](https://redirect.github.com/biomejs/biome/commit/ff635a90da3567a9006ae947b6c5983d87dfbb9f) Thanks [@​pkallos](https://redirect.github.com/pkallos)! - Added `ignoreMixedLogicalExpressions` to [useNullishCoalescing](https://biomejs.dev/linter/rules/use-nullish-coalescing/), partially addressing [#​9232](https://redirect.github.com/biomejs/biome/issues/9232). When enabled, Biome ignores `||` and `||=` mixed with `&&` in the same expression tree. - [#​10503](https://redirect.github.com/biomejs/biome/pull/10503) [`c656679`](https://redirect.github.com/biomejs/biome/commit/c656679d1f9e725a42e5d60fb3b9e76bb03d7f88) Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Added the new nursery rule `useSvelteRequireEachKey`, a Svelte lint rule that reports `{#each}` blocks with item bindings that are missing a key. - [#​10516](https://redirect.github.com/biomejs/biome/pull/10516) [`0f29b83`](https://redirect.github.com/biomejs/biome/commit/0f29b8361ba3cd11bdbfb91f8ff722184cfadf08) Thanks [@​Dotify71](https://redirect.github.com/Dotify71)! - Added [`useIncludes`](https://biomejs.dev/linter/rules/use-includes/) to the nursery group. This rule flags comparisons of `String.prototype.indexOf()` or `Array.prototype.indexOf()` against `-1` and suggests replacing them with the clearer `includes()` / `!includes()` form. - [#​10487](https://redirect.github.com/biomejs/biome/pull/10487) [`0c03ee3`](https://redirect.github.com/biomejs/biome/commit/0c03ee3deee068220175c3599e6bc3c4ed8ad247) Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed a Svelte parser error that incorrectly required a binding variable after `{:then}` and `{:catch}`. Biome now correctly accepts `{:then}` and `{:catch}` without a binding, as well as the `{#await expr then}` and `{#await expr catch}` shorthand forms. - [#​10566](https://redirect.github.com/biomejs/biome/pull/10566) [`a4a294c`](https://redirect.github.com/biomejs/biome/commit/a4a294c3c1128fc5b38634262d499d3d2601bf3b) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [`useVueHyphenatedAttributes`](https://biomejs.dev/linter/rules/use-vue-hyphenated-attributes/): The rule now only reports diagnostics in Vue files and ignores SVG elements. - [#​10565](https://redirect.github.com/biomejs/biome/pull/10565) [`72ccf3b`](https://redirect.github.com/biomejs/biome/commit/72ccf3b042c4258f9871ff5b99d87f879cecccde) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [`useVueConsistentVBindStyle`](https://biomejs.dev/linter/rules/use-vue-consistent-v-bind-style/): The rule no longer reports argument-less `v-bind` directives because they cannot be converted to shorthand syntax. - [#​10591](https://redirect.github.com/biomejs/biome/pull/10591) [`6e8557b`](https://redirect.github.com/biomejs/biome/commit/6e8557b1b8e49ce2383f6089a46624eb030178ad) Thanks [@​xsourabhsharma](https://redirect.github.com/xsourabhsharma)! - Fixed [#​10563](https://redirect.github.com/biomejs/biome/issues/10563): Biome now parses comma-separated CSS Modules `composes` values, such as `composes: classA from "./a.css", classB from "./b.css";`. - [#​10603](https://redirect.github.com/biomejs/biome/pull/10603) [`174b21b`](https://redirect.github.com/biomejs/biome/commit/174b21b52993fc3e0237ceefe97c0d71c9b5264e) Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! - Fixed CSS formatting for `grid-template-areas` declarations with comments before multiline values. Biome now keeps grid area rows aligned instead of adding an extra declaration-boundary indent. ```diff .grid { grid-template-areas: /* row */ - "header header" - "footer footer"; + "header header" + "footer footer"; } ``` - [#​10542](https://redirect.github.com/biomejs/biome/pull/10542) [`c3f07f7`](https://redirect.github.com/biomejs/biome/commit/c3f07f773edeb7f098c778392c5e2d6bb92b78fb) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10513](https://redirect.github.com/biomejs/biome/issues/10513): Biome no longer rejects literal `\u` sequences in quoted HTML attribute values. - [#​10108](https://redirect.github.com/biomejs/biome/pull/10108) [`24e51d6`](https://redirect.github.com/biomejs/biome/commit/24e51d6edebaee0ffb938bc20633d9c3403110c9) Thanks [@​IxxyDev](https://redirect.github.com/IxxyDev)! - Fixed [#​6611](https://redirect.github.com/biomejs/biome/issues/6611): [`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/) now uses type information to detect more redundant conditions, including `?.`, `??`, `||`, `&&`, comparisons against `null`/`undefined` on non-nullish operands, and `case` clauses that can never match the `switch` value. - [#​10568](https://redirect.github.com/biomejs/biome/pull/10568) [`eb1ed0e`](https://redirect.github.com/biomejs/biome/commit/eb1ed0e90395a07e64ee763fe15ae00fb77682e0) Thanks [@​harsha-cpp](https://redirect.github.com/harsha-cpp)! - Fixed [#​10564](https://redirect.github.com/biomejs/biome/issues/10564): `useAriaPropsForRole` no longer reports false positives for Vue v-bind shorthand bindings (`:aria-checked`, `:aria-level`, etc.). - [#​10570](https://redirect.github.com/biomejs/biome/pull/10570) [`2ceb4fe`](https://redirect.github.com/biomejs/biome/commit/2ceb4fe437b77b08a60ad48efde2a6c311b7d2e3) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Improved [`noTsIgnore`](https://biomejs.dev/linter/rules/no-ts-ignore/). The rule now reports more precisely the range of the `@ts-ignore` comment. - [#​10520](https://redirect.github.com/biomejs/biome/pull/10520) [`b55d10f`](https://redirect.github.com/biomejs/biome/commit/b55d10f5e8f3099b3f246911ca19cc79758d55e0) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10519](https://redirect.github.com/biomejs/biome/issues/10519): Vue `v-on` event handlers with multiple inline statements are now parsed consistently with Vue. - [#​10204](https://redirect.github.com/biomejs/biome/pull/10204) [`ebbf0bd`](https://redirect.github.com/biomejs/biome/commit/ebbf0bd382059936ac00de29fc58931728f854d9) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Improved the performance of the Biome linter. The improvements are more visible in bigger projects that have more than \~1k files. Early tests showed that in a code base with \~2k files, Biome took less than 26% of time to finish the command. - [#​10546](https://redirect.github.com/biomejs/biome/pull/10546) [`e39bb2c`](https://redirect.github.com/biomejs/biome/commit/e39bb2c23063ad0384a12e01d666909fd6b26735) Thanks [@​tim-we](https://redirect.github.com/tim-we)! - Fixed [`#10536`](https://redirect.github.com/biomejs/biome/issues/10536): [noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function/) no longer flagged CSS `contrast-color()` as unknown. `contrast-color()` is Baseline 2026. - [#​8012](https://redirect.github.com/biomejs/biome/pull/8012) [`2be0264`](https://redirect.github.com/biomejs/biome/commit/2be02648a090153a93cf71fb63ef68feefd495c2) Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! - Improved the performance of the formatter in some cases. The formatter is now up to \~20% faster at formatting files. - [#​10467](https://redirect.github.com/biomejs/biome/pull/10467) [`9a5855e`](https://redirect.github.com/biomejs/biome/commit/9a5855e4191c98149f8278289569b2272b992684) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added a new nursery rule [`noRestrictedDependencies`](https://biomejs.dev/linter/rules/no-restricted-dependencies/), which flags imports and `package.json` dependency entries that have better alternatives in e18e's module replacement data. For example, the package `globby` is reported because there's a better alternative: ```js import glob from "globby"; ``` ```json { "dependencies": { "globby": "x.x.x" } } ``` - [#​10470](https://redirect.github.com/biomejs/biome/pull/10470) [`84b43c5`](https://redirect.github.com/biomejs/biome/commit/84b43c5969569cb3eea3d51ea6c602276723306b) Thanks [@​ShaharAviram1](https://redirect.github.com/ShaharAviram1)! - Fixed [#​10447](https://redirect.github.com/biomejs/biome/issues/10447): now the rule [`noProcessEnv`](https://biomejs.dev/linter/rules/no-process-env) detects the use of `env` when it's imported from `process` and `node:process`. - [#​10556](https://redirect.github.com/biomejs/biome/pull/10556) [`7ff6b16`](https://redirect.github.com/biomejs/biome/commit/7ff6b165f2f62a0836446dee889d9868f12fb06e) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Fixed [#​10492](https://redirect.github.com/biomejs/biome/issues/10492): Biome no longer crashes with a stack overflow on certain code when a type-aware rule such as [`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/), [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/), or [`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/) is enabled. For example, the following code used to crash Biome: ```js function f(visitor) { let ctrl = visitor(); for (const x of [0]) ctrl = ctrl(); } ``` - [#​10532](https://redirect.github.com/biomejs/biome/pull/10532) [`1da3c75`](https://redirect.github.com/biomejs/biome/commit/1da3c7573cdb1d097fc1773fee686140d95f3f35) Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! - CSS declarations with comments before `:` or after `!important` now preserve spaces before `:` and `;`. ```diff .selector { - padding/* name */: 1px; - color: red !important /* note */; + padding/* name */ : 1px; + color: red !important /* note */ ; } ``` - [#​10491](https://redirect.github.com/biomejs/biome/pull/10491) [`a1b5834`](https://redirect.github.com/biomejs/biome/commit/a1b5834d4968fd518cc4adfa0e8b4b65b2232637) Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed the Svelte parser rejecting `{#each}` blocks where the binding uses object destructuring with property renaming, e.g. `{#each items as { id, component: Filter }}`. Biome now correctly parses and formats these rename bindings. - [#​10490](https://redirect.github.com/biomejs/biome/pull/10490) [`99bc7df`](https://redirect.github.com/biomejs/biome/commit/99bc7df1d1cbb599e9713da56c29763cd04bb53c) Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed the CSS parser rejecting comma-separated selector lists inside `:global()` and `:local()` pseudo-class functions. Biome now correctly parses `:global(.foo, .bar)`. - [#​10543](https://redirect.github.com/biomejs/biome/pull/10543) [`c394fae`](https://redirect.github.com/biomejs/biome/commit/c394faeaa27f9f7db8ba075afc6657c0245d8276) Thanks [@​mangod12](https://redirect.github.com/mangod12)! - Fixed [#​10477](https://redirect.github.com/biomejs/biome/issues/10477): The RDJSON reporter now emits code replacement text for fix suggestions instead of the human-readable fix description. - [#​10530](https:// > ✂ **Note** > > PR body was truncated to here. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
d9dd73f5b6 |
Add templ XML lexer (#1283)
Adds a templ lexer as an XML lexer definition under `lexers/embedded/templ.xml`. This replaces the earlier Go-based lexer approach from #1277, following maintainer feedback to use an XML lexer instead. Includes fixtures for: - templ component declarations - HTML tags and attributes - Go expressions in `{ ... }` - braced attribute values - templ control flow (`if` / `else`) - component calls with `@Button(...)` - analyser coverage Local test gates: - `go test ./lexers -count=1` - `go test ./... -count=1` |
||
|
|
effffdb6de |
chore(deps): update all non-major dependencies (#1280)
This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [biome](https://redirect.github.com/biomejs/biome) | | patch | `2.4.15` → `2.4.16` |  |  | | [bit](https://redirect.github.com/alecthomas/bit) | | patch | `0.20.1` → `0.20.2` |  |  | | [caddy](https://redirect.github.com/caddyserver/caddy) | | patch | `2.11.3` → `2.11.4` |  |  | | [github.com/alecthomas/chroma/v2](https://redirect.github.com/alecthomas/chroma) | require | minor | `v2.24.1` → `v2.26.1` |  |  | | [github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2) | require | patch | `v2.1.1` → `v2.1.2` |  |  | | [github.com/mattn/go-colorable](https://redirect.github.com/mattn/go-colorable) | require | patch | `v0.1.14` → `v0.1.15` |  |  | | [go](https://redirect.github.com/golang/go) | | patch | `1.26.3` → `1.26.4` |  |  | | [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.11.16` → `0.11.19` |  |  | --- ### Release Notes <details> <summary>biomejs/biome (biome)</summary> ### [`v2.4.16`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.16): Biome CLI v2.4.16 #### 2.4.16 ##### Patch Changes - [#​10329](https://redirect.github.com/biomejs/biome/pull/10329) [`ef764d5`](https://redirect.github.com/biomejs/biome/commit/ef764d51b9f5be18ec5a4f9b4dce732512e5d805) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Fixed an issue where diagnostics showed an incorrect location in Astro files. - [#​10363](https://redirect.github.com/biomejs/biome/pull/10363) [`50aa415`](https://redirect.github.com/biomejs/biome/commit/50aa4157599a1ac5c77c13bce81f5c87240beff0) Thanks [@​dyc3](https://redirect.github.com/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: ```html <span ><!-- 1 --><span>a</span ><!-- 2 --><span>b</span ><!-- 3 --></span> ``` Output: ```diff <span ><!-- 1 - --> <span>a</span<!-- 2 - --> ><span>b</span><!-- 3 + --><span>a</span><!-- 2 + --><span>b</span><!-- 3 --></span > ``` - [#​10465](https://redirect.github.com/biomejs/biome/pull/10465) [`0c718da`](https://redirect.github.com/biomejs/biome/commit/0c718da81770f47d65845bc1a006f99512d9359b) Thanks [@​dfedoryshchev](https://redirect.github.com/dfedoryshchev)! - Fixed diagnostics emitted by the `noUntrustedLicenses` rule. - [#​10358](https://redirect.github.com/biomejs/biome/pull/10358) [`05c2617`](https://redirect.github.com/biomejs/biome/commit/05c26176573534a0abfa92d454d244f9569bc77d) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10356](https://redirect.github.com/biomejs/biome/issues/10356): `biome rage --linter` now displays rules enabled through linter domains in the enabled rules list. - [#​10300](https://redirect.github.com/biomejs/biome/pull/10300) [`950247c`](https://redirect.github.com/biomejs/biome/commit/950247c389e693c16b47d61d8ef0f1b85d1a1b02) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10265](https://redirect.github.com/biomejs/biome/issues/10265): Svelte function bindings such as `bind:value={get, set}` are now parsed more precisely, so [`noCommaOperator`](https://biomejs.dev/linter/rules/no-comma-operator/) won't emit false positives for that syntax anymore. - [#​9786](https://redirect.github.com/biomejs/biome/pull/9786) [`e71f584`](https://redirect.github.com/biomejs/biome/commit/e71f58490f3121432d1bc24ae5330ecf96391a40) Thanks [@​MeGaNeKoS](https://redirect.github.com/MeGaNeKoS)! - Fixed [#​8480](https://redirect.github.com/biomejs/biome/issues/8480): [`useDestructuring`](https://biomejs.dev/linter/rules/use-destructuring/) 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](https://redirect.github.com/biomejs/biome/pull/10425) [`1948b72`](https://redirect.github.com/biomejs/biome/commit/1948b7242e092ed0cfcf501ef6f119202b8ea93b) Thanks [@​sjh9714](https://redirect.github.com/sjh9714)! - Fixed [#​10244](https://redirect.github.com/biomejs/biome/issues/10244): The `useOptionalChain` rule now detects negated guard inequality chains like `!foo || foo.bar !== "x"`. - [#​10442](https://redirect.github.com/biomejs/biome/pull/10442) [`001f94f`](https://redirect.github.com/biomejs/biome/commit/001f94f696d9baca3c231d39895a01d4dd528d52) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Fixed [#​10411](https://redirect.github.com/biomejs/biome/issues/10411): [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/) 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](https://redirect.github.com/biomejs/biome/pull/10318) [`9b1577f`](https://redirect.github.com/biomejs/biome/commit/9b1577fa400279d9b0222cbc920cfa9ddcf1c9d6) Thanks [@​dyc3](https://redirect.github.com/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](https://redirect.github.com/biomejs/biome/pull/10319) [`2e37709`](https://redirect.github.com/biomejs/biome/commit/2e3770923f9fb4e33606113e726014f7b63730d0) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed Vue and Svelte formatting for standalone interpolations in inline elements. Biome now preserves existing newlines in cases like: ```diff - <span> {{ value }} </span> + <span> + {{ value }} + </span> ``` - [#​10365](https://redirect.github.com/biomejs/biome/pull/10365) [`0a58eb0`](https://redirect.github.com/biomejs/biome/commit/0a58eb0982460b757a26f94d958a7e40c0686227) Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed [#​10361](https://redirect.github.com/biomejs/biome/issues/10361): [`noUnusedFunctionParameters`](https://biomejs.dev/linter/rules/no-unused-function-parameters/) now mentions the parameter name in the diagnostic. - [#​10439](https://redirect.github.com/biomejs/biome/pull/10439) [`df6b867`](https://redirect.github.com/biomejs/biome/commit/df6b867bb6fd210cc75ac03d832e7281eced5b61) Thanks [@​denbezrukov](https://redirect.github.com/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. ```diff .selector { - color: /* red, */ - blue; + color: /* red, */ blue; } ``` - [#​10344](https://redirect.github.com/biomejs/biome/pull/10344) [`b30208c`](https://redirect.github.com/biomejs/biome/commit/b30208c06365907d6fb376f030bc75bbf5e3dea9) Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Fixed [`#10123`](https://redirect.github.com/biomejs/biome/issues/10123): Corrected the [`noReactNativeDeepImports`](https://biomejs.dev/linter/rules/no-react-native-deep-imports/) source rule to point to the proper upstream rule, so users can migrate from the original rule correctly. - [#​10328](https://redirect.github.com/biomejs/biome/pull/10328) [`b59133f`](https://redirect.github.com/biomejs/biome/commit/b59133fd2a8afa33564914df531f7f752b48ecee) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10309](https://redirect.github.com/biomejs/biome/issues/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](https://redirect.github.com/dyc3) in [#​10319](https://redirect.github.com/biomejs/biome/pull/10319) - refactor(css\_parser): remove `allow_css_ratio` from SCSS expression parsing functions by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10325](https://redirect.github.com/biomejs/biome/pull/10325) - fix(astro): display diagnostic advices with the correct location by [@​Conaclos](https://redirect.github.com/Conaclos) in [#​10329](https://redirect.github.com/biomejs/biome/pull/10329) - fix: trim astro frontmatter content before processing it by [@​dyc3](https://redirect.github.com/dyc3) in [#​10328](https://redirect.github.com/biomejs/biome/pull/10328) - fix(config): support trailingCommas in overrides by [@​dyc3](https://redirect.github.com/dyc3) in [#​10318](https://redirect.github.com/biomejs/biome/pull/10318) - chore(deps): update rust:1.95.0-bullseye docker digest to [`b26cecc`](https://redirect.github.com/biomejs/biome/commit/b26cecc) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10334](https://redirect.github.com/biomejs/biome/pull/10334) - chore(deps): update rust:1.95.0-trixie docker digest to [`5b1e348`](https://redirect.github.com/biomejs/biome/commit/5b1e348) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10335](https://redirect.github.com/biomejs/biome/pull/10335) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v24.12.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10336](https://redirect.github.com/biomejs/biome/pull/10336) - chore(deps): update dependency tombi to v0.10.6 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10337](https://redirect.github.com/biomejs/biome/pull/10337) - feat(css\_parser): support for SCSS `@include ... using` clauses by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10327](https://redirect.github.com/biomejs/biome/pull/10327) - chore(deps): update github-actions by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10338](https://redirect.github.com/biomejs/biome/pull/10338) - chore(deps): update pnpm to v10.33.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10339](https://redirect.github.com/biomejs/biome/pull/10339) - chore(deps): update rust crate filetime to 0.2.28 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10340](https://redirect.github.com/biomejs/biome/pull/10340) - chore(deps): update dependency [@​changesets/changelog-github](https://redirect.github.com/changesets/changelog-github) to v0.7.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10342](https://redirect.github.com/biomejs/biome/pull/10342) - feat(parse/tailwind): differentiate between number and non-number values by [@​dyc3](https://redirect.github.com/dyc3) in [#​10332](https://redirect.github.com/biomejs/biome/pull/10332) - chore(deps): update rust crate rayon to 1.12.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10343](https://redirect.github.com/biomejs/biome/pull/10343) - fix(markdown\_parser): parse tab-indented siblings by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10333](https://redirect.github.com/biomejs/biome/pull/10333) - fix(lint/js): correct the rule source of `noReactNativeDeepImports` by [@​siketyan](https://redirect.github.com/siketyan) in [#​10344](https://redirect.github.com/biomejs/biome/pull/10344) - fix(markdown\_parser): column-aware tab handling around block containers by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10345](https://redirect.github.com/biomejs/biome/pull/10345) - chore: update pnpm to the lateset by [@​ematipico](https://redirect.github.com/ematipico) in [#​10348](https://redirect.github.com/biomejs/biome/pull/10348) - chore: fix renovate config by [@​dyc3](https://redirect.github.com/dyc3) in [#​10352](https://redirect.github.com/biomejs/biome/pull/10352) - feat(css\_parser): support SCSS interpolated selector by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10351](https://redirect.github.com/biomejs/biome/pull/10351) - feat(useDestructuring): add options for assignment/declaration and improve diagnostic for bare object assignments by [@​MeGaNeKoS](https://redirect.github.com/MeGaNeKoS) in [#​9786](https://redirect.github.com/biomejs/biome/pull/9786) - chore: remove benchmark from repository by [@​ematipico](https://redirect.github.com/ematipico) in [#​10355](https://redirect.github.com/biomejs/biome/pull/10355) - fix(rage): print rules enabled by domains by [@​dyc3](https://redirect.github.com/dyc3) in [#​10358](https://redirect.github.com/biomejs/biome/pull/10358) - feat(css): support SCSS interpolation in attribute selectors by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10357](https://redirect.github.com/biomejs/biome/pull/10357) - fix(js\_analyze): noUnusedFunctionParameters mention parameter name by [@​Netail](https://redirect.github.com/Netail) in [#​10365](https://redirect.github.com/biomejs/biome/pull/10365) - feat(parse/html): parse svelte function bindings more precisely by [@​dyc3](https://redirect.github.com/dyc3) in [#​10300](https://redirect.github.com/biomejs/biome/pull/10300) - feat(css\_formatter): add support for formatting SCSS keyframes selectors by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10362](https://redirect.github.com/biomejs/biome/pull/10362) - fix: yaml linting panic fixes by [@​jjroush](https://redirect.github.com/jjroush) in [#​10287](https://redirect.github.com/biomejs/biome/pull/10287) - feat(css\_parser): add support for SCSS interpolated dashed identifiers and properties by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10367](https://redirect.github.com/biomejs/biome/pull/10367) - fix(markdown\_parser): handle ordered sublist continuation by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10349](https://redirect.github.com/biomejs/biome/pull/10349) - docs: fix duplicate-word typos in code comments by [@​dfedoryshchev](https://redirect.github.com/dfedoryshchev) in [#​10371](https://redirect.github.com/biomejs/biome/pull/10371) - test(markdown\_parser): add CST list invariants by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10369](https://redirect.github.com/biomejs/biome/pull/10369) - chore: yaml formatting infra by [@​ematipico](https://redirect.github.com/ematipico) in [#​10366](https://redirect.github.com/biomejs/biome/pull/10366) - chore(goverance): cover expenses for representing Biome at a conference by [@​Conaclos](https://redirect.github.com/Conaclos) in [#​10246](https://redirect.github.com/biomejs/biome/pull/10246) - docs: clarify vcs.root description by [@​Dotify71](https://redirect.github.com/Dotify71) in [#​10379](https://redirect.github.com/biomejs/biome/pull/10379) - Revert "docs: clarify vcs.root description" by [@​ematipico](https://redirect.github.com/ematipico) in [#​10381](https://redirect.github.com/biomejs/biome/pull/10381) - feat(css\_parser): add support for SCSS parent selectors by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10370](https://redirect.github.com/biomejs/biome/pull/10370) - fix(css\_parser): parse CSS custom functions in SCSS by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10387](https://redirect.github.com/biomejs/biome/pull/10387) - feat(useSortedClasses): scaffold v4 parser-based sort module by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10291](https://redirect.github.com/biomejs/biome/pull/10291) - fix(css\_parser): support semicolonless SCSS statement at-rules by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10389](https://redirect.github.com/biomejs/biome/pull/10389) - fix(format/html): fix case where comments cause invalid html by [@​dyc3](https://redirect.github.com/dyc3) in [#​10363](https://redirect.github.com/biomejs/biome/pull/10363) - fix(markdown\_parser): break paragraph at sibling list marker without tab by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10376](https://redirect.github.com/biomejs/biome/pull/10376) - feat(css\_formatter): preserve raw scss string interpolation by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10388](https://redirect.github.com/biomejs/biome/pull/10388) - fix(service): correct FileExistsParams typo by [@​yanthomasdev](https://redirect.github.com/yanthomasdev) in [#​10399](https://redirect.github.com/biomejs/biome/pull/10399) - chore(deps): update rust crate bpaf to 0.9.26 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10403](https://redirect.github.com/biomejs/biome/pull/10403) - chore(deps): update rust crate filetime to 0.2.29 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10404](https://redirect.github.com/biomejs/biome/pull/10404) - chore(deps): update dependency tombi to v0.11.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10405](https://redirect.github.com/biomejs/biome/pull/10405) - chore(deps): update rust crate dashmap to 6.2.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10406](https://redirect.github.com/biomejs/biome/pull/10406) - chore: remove dashmap from project by [@​ematipico](https://redirect.github.com/ematipico) in [#​10407](https://redirect.github.com/biomejs/biome/pull/10407) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v24.12.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10400](https://redirect.github.com/biomejs/biome/pull/10400) - chore(deps): update pnpm to v11.1.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10401](https://redirect.github.com/biomejs/biome/pull/10401) - fix(css\_formatter): preserve scss identifier interpolation spacing by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10398](https://redirect.github.com/biomejs/biome/pull/10398) - chore(format/html): fix unused code warnings in release builds by [@​dyc3](https://redirect.github.com/dyc3) in [#​10412](https://redirect.github.com/biomejs/biome/pull/10412) - chore(service): make grit opt-in by [@​ematipico](https://redirect.github.com/ematipico) in [#​10410](https://redirect.github.com/biomejs/biome/pull/10410) - feat(css\_formatter): preserve source-tight scss binary edges by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10413](https://redirect.github.com/biomejs/biome/pull/10413) - refactor: make yaml, md and graphql gated via rust features by [@​ematipico](https://redirect.github.com/ematipico) in [#​10416](https://redirect.github.com/biomejs/biome/pull/10416) - feat(css\_parser): add support for parsing and formatting unknown SCSS/CSS at-rules by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10397](https://redirect.github.com/biomejs/biome/pull/10397) - refactor: make plugins opt-in via feature gate by [@​ematipico](https://redirect.github.com/ematipico) in [#​10418](https://redirect.github.com/biomejs/biome/pull/10418) - feat(css\_formatter): align SCSS map pair value layout by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10417](https://redirect.github.com/biomejs/biome/pull/10417) - fix: incorrect build when using build or test by [@​ematipico](https://redirect.github.com/ematipico) in [#​10426](https://redirect.github.com/biomejs/biome/pull/10426) - ci: agent scan, zizmor and reduce permissions by [@​ematipico](https://redirect.github.com/ematipico) in [#​10428](https://redirect.github.com/biomejs/biome/pull/10428) - ci: remove checkout step from agentscan workflow by [@​MatteoGabriele](https://redirect.github.com/MatteoGabriele) in [#​10429](https://redirect.github.com/biomejs/biome/pull/10429) - fix(css\_parser): classify interpolated query feature ranges correctly by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10421](https://redirect.github.com/biomejs/biome/pull/10421) - docs: remove outdated Caveats section in `useImportExtensions` by [@​Dotify71](https://redirect.github.com/Dotify71) in [#​10431](https://redirect.github.com/biomejs/biome/pull/10431) - docs: remove redundant default phrase in `useConsistentObjectDefinitions` rule by [@​Dotify71](https://redirect.github.com/Dotify71) in [#​10430](https://redirect.github.com/biomejs/biome/pull/10430) - fix(css\_formatter): preserve blank lines between SCSS map pairs by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10427](https://redirect.github.com/biomejs/biome/pull/10427) - ci: fix preview releases by [@​dyc3](https://redirect.github.com/dyc3) in [#​10436](https://redirect.github.com/biomejs/biome/pull/10436) - fix(useSortedClasses): sort Tailwind v4 arbitrary values by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10414](https://redirect.github.com/biomejs/biome/pull/10414) - fix(css\_parser): improve diagnostics for missing attribute names and empty selectors in SCSS by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10437](https://redirect.github.com/biomejs/biome/pull/10437) - ci: remove corepack by [@​ematipico](https://redirect.github.com/ematipico) in [#​10440](https://redirect.github.com/biomejs/biome/pull/10440) - fix(css\_formatter): improve comment handling in generic CSS properties by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10439](https://redirect.github.com/biomejs/biome/pull/10439) - fix(css\_formatter): align commented SCSS map value layout by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10445](https://redirect.github.com/biomejs/biome/pull/10445) - fix(css\_formatter): handle control variable maps in SCSS map expressions by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10446](https://redirect.github.com/biomejs/biome/pull/10446) - fix(inference): pass correct scope on return statements by [@​ematipico](https://redirect.github.com/ematipico) in [#​10442](https://redirect.github.com/biomejs/biome/pull/10442) - feat(css\_parser): parse interpolated scss nested properties by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10455](https://redirect.github.com/biomejs/biome/pull/10455) - chore(deps): update rust:1.95.0-bullseye docker digest to [`28afaeb`](https://redirect.github.com/biomejs/biome/commit/28afaeb) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10457](https://redirect.github.com/biomejs/biome/pull/10457) - fix(test): leaky CLI tests by [@​ematipico](https://redirect.github.com/ematipico) in [#​10463](https://redirect.github.com/biomejs/biome/pull/10463) - fix(css\_formatter): align SCSS map comment trailing commas by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10449](https://redirect.github.com/biomejs/biome/pull/10449) - fix(markdown\_parser): keep list blank-line separators inside the preceding item by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10466](https://redirect.github.com/biomejs/biome/pull/10466) - chore(deps): update rust crate jiff to 0.2.27 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10459](https://redirect.github.com/biomejs/biome/pull/10459) - docs: fix duplicate "from" in noUntrustedLicenses diagnostic by [@​dfedoryshchev](https://redirect.github.com/dfedoryshchev) in [#​10465](https://redirect.github.com/biomejs/biome/pull/10465) - fix(lint): detect optional-chain inequality guards by [@​sjh9714](https://redirect.github.com/sjh9714) in [#​10425](https://redirect.github.com/biomejs/biome/pull/10425) - chore(deps): update dependency tombi to v0.11.7 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10458](https://redirect.github.com/biomejs/biome/pull/10458) - fix(core): regression in emitted types by [@​ematipico](https://redirect.github.com/ematipico) in [#​10478](https://redirect.github.com/biomejs/biome/pull/10478) - fix(parser/yaml): correctly lex and parse alias as mapping key by [@​siketyan](https://redirect.github.com/siketyan) in [#​10472](https://redirect.github.com/biomejs/biome/pull/10472) - fix(markdown\_parser): terminate fenced code blocks at list-item boundaries by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10471](https://redirect.github.com/biomejs/biome/pull/10471) - ci: release by [@​github-actions](https://redirect.github.com/github-actions)\[bot] in [#​10326](https://redirect.github.com/biomejs/biome/pull/10326) #### New Contributors - [@​jjroush](https://redirect.github.com/jjroush) made their first contribution in [#​10287](https://redirect.github.com/biomejs/biome/pull/10287) - [@​Dotify71](https://redirect.github.com/Dotify71) made their first contribution in [#​10379](https://redirect.github.com/biomejs/biome/pull/10379) - [@​MatteoGabriele](https://redirect.github.com/MatteoGabriele) made their first contribution in [#​10429](https://redirect.github.com/biomejs/biome/pull/10429) - [@​sjh9714](https://redirect.github.com/sjh9714) made their first contribution in [#​10425](https://redirect.github.com/biomejs/biome/pull/10425) **Full Changelog**: <https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.15...@​biomejs/biome@2.4.16> </details> <details> <summary>alecthomas/bit (bit)</summary> ### [`v0.20.2`](https://redirect.github.com/alecthomas/bit/releases/tag/v0.20.2) #### What's Changed - **chore:** add `just bump` command by [@​alecthomas](https://redirect.github.com/alecthomas) in [`6518324`](https://redirect.github.com/alecthomas/bit/commit/65183247bc44e5c903280aed0e993d3ec8e5c628) - **chore:** fix state drift in example BUILD.bit by [@​alecthomas](https://redirect.github.com/alecthomas) in [`d4a232f`](https://redirect.github.com/alecthomas/bit/commit/d4a232f876abecdc48b5cefac1b14396a679999e) - **fix(go.test):** show build errors on failure by [@​alecthomas](https://redirect.github.com/alecthomas) in [`29234ea`](https://redirect.github.com/alecthomas/bit/commit/29234ead99467111955c1c500eac30d53ccdb541) </details> <details> <summary>caddyserver/caddy (caddy)</summary> ### [`v2.11.4`](https://redirect.github.com/caddyserver/caddy/releases/tag/v2.11.4) This release patches more security, security-adjacent, and normal bugs. The FrankenPHP project has collaborated on PHP-adjacent patches, which we are grateful for. The recent surge of patches is mostly attributed to token predictors. We have had to reject more than 75% of "security" reports because they were AI slop spam (or just lazy/incorrect). Please use LLMs and agents wisely to avoid wasting precious maintainer resources. We have started blocking offending accounts that spam slop reports. Thank you to all who submit responsible reports following our security policy to make the project better. We appreciate that the community deems the Caddy project worthy of contribution to improve the broader ecosystem! Security-related patches: - caddyhttp: Normalize Windows backslashes in path matcher (thanks [@​Vincent550102](https://redirect.github.com/Vincent550102)) - rewrite: Prevent placeholder re-expansion in injected query (thanks [@​WhiskerEnt](https://redirect.github.com/WhiskerEnt)) - templates: Improved `stripHTML` action to more reliably remove malformed HTML (thanks to [@​jmrcsnchz](https://redirect.github.com/jmrcsnchz)) - caddyhttp: Ignore header fields with underscores to prevent collisions (thanks [@​Vincent550102](https://redirect.github.com/Vincent550102) for the report and [@​dunglas](https://redirect.github.com/dunglas) for the patch) There are also several other various fixes and enhancements by many other contributors. Thank you everyone who participated! #### What's Changed - reverseproxy: further prevent body closes from dial errors by [@​jameshartig](https://redirect.github.com/jameshartig) in [#​7715](https://redirect.github.com/caddyserver/caddy/pull/7715) - caddytls: Fix client auth (fix [#​7724](https://redirect.github.com/caddyserver/caddy/issues/7724)) by [@​mholt](https://redirect.github.com/mholt) in [#​7727](https://redirect.github.com/caddyserver/caddy/pull/7727) - chore: deps upgrade by [@​mohammed90](https://redirect.github.com/mohammed90) in [#​7751](https://redirect.github.com/caddyserver/caddy/pull/7751) - caddyhttp: omit Last-Modified for unusable mod times by [@​bb4242](https://redirect.github.com/bb4242) in [#​7740](https://redirect.github.com/caddyserver/caddy/pull/7740) - caddytls: fix TLS state races and ECH rotation retry by [@​broady](https://redirect.github.com/broady) in [#​7756](https://redirect.github.com/caddyserver/caddy/pull/7756) - chore: clean up wording and typo fixes by [@​steadytao](https://redirect.github.com/steadytao) in [#​7745](https://redirect.github.com/caddyserver/caddy/pull/7745) - reverseproxy: Add regression test for DialInfo network override by [@​eyupcanakman](https://redirect.github.com/eyupcanakman) in [#​7758](https://redirect.github.com/caddyserver/caddy/pull/7758) - caddyauth: add candidate placeholders for rejected identities by [@​steadytao](https://redirect.github.com/steadytao) in [#​7698](https://redirect.github.com/caddyserver/caddy/pull/7698) - cmd: support caddy start on IPv6-only hosts by [@​steadytao](https://redirect.github.com/steadytao) in [#​7744](https://redirect.github.com/caddyserver/caddy/pull/7744) - caddyfile: preserve implicit TLS issuer semantics by [@​steadytao](https://redirect.github.com/steadytao) in [#​7743](https://redirect.github.com/caddyserver/caddy/pull/7743) - reverseproxy: wraps request body to prevent closing if not read by [@​WeidiDeng](https://redirect.github.com/WeidiDeng) in [#​7719](https://redirect.github.com/caddyserver/caddy/pull/7719) - caddytls: match IDN SNI in connection policies by [@​steadytao](https://redirect.github.com/steadytao) in [#​7742](https://redirect.github.com/caddyserver/caddy/pull/7742) - build(deps): bump the all-updates group across 1 directory with 9 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​7752](https://redirect.github.com/caddyserver/caddy/pull/7752) - caddyhttp: normalize Windows backslashes in path matcher by [@​Vincent550102](https://redirect.github.com/Vincent550102) in [#​7763](https://redirect.github.com/caddyserver/caddy/pull/7763) - go.mod: update x/net by [@​steadytao](https://redirect.github.com/steadytao) in [#​7767](https://redirect.github.com/caddyserver/caddy/pull/7767) - rewrite: prevent placeholder re-expansion in injected query by [@​WhiskerEnt](https://redirect.github.com/WhiskerEnt) in [#​7761](https://redirect.github.com/caddyserver/caddy/pull/7761) - perf(replacer): optimize memory allocation for file placeholders by [@​Jualhosting](https://redirect.github.com/Jualhosting) in [#​7773](https://redirect.github.com/caddyserver/caddy/pull/7773) - caddytls: skip idna.ToASCII for pure ASCII SNI values by [@​sleet0922](https://redirect.github.com/sleet0922) in [#​7770](https://redirect.github.com/caddyserver/caddy/pull/7770) - encode: prioritize zstd and br over gzip in content negotiation by [@​Jualhosting](https://redirect.github.com/Jualhosting) in [#​7772](https://redirect.github.com/caddyserver/caddy/pull/7772) - httpcaddyfile: fix incorrect error message on duplicate matchers by [@​Brunotlps](https://redirect.github.com/Brunotlps) in [#​7780](https://redirect.github.com/caddyserver/caddy/pull/7780) - Patch for GHSA-vcc4-2c75-vc9v by [@​jmrcsnchz](https://redirect.github.com/jmrcsnchz) in [#​7785](https://redirect.github.com/caddyserver/caddy/pull/7785) #### New Contributors - [@​jameshartig](https://redirect.github.com/jameshartig) made their first contribution in [#​7715](https://redirect.github.com/caddyserver/caddy/pull/7715) - [@​bb4242](https://redirect.github.com/bb4242) made their first contribution in [#​7740](https://redirect.github.com/caddyserver/caddy/pull/7740) - [@​broady](https://redirect.github.com/broady) made their first contribution in [#​7756](https://redirect.github.com/caddyserver/caddy/pull/7756) - [@​eyupcanakman](https://redirect.github.com/eyupcanakman) made their first contribution in [#​7758](https://redirect.github.com/caddyserver/caddy/pull/7758) - [@​Vincent550102](https://redirect.github.com/Vincent550102) made their first contribution in [#​7763](https://redirect.github.com/caddyserver/caddy/pull/7763) - [@​WhiskerEnt](https://redirect.github.com/WhiskerEnt) made their first contribution in [#​7761](https://redirect.github.com/caddyserver/caddy/pull/7761) - [@​Jualhosting](https://redirect.github.com/Jualhosting) made their first contribution in [#​7773](https://redirect.github.com/caddyserver/caddy/pull/7773) - [@​sleet0922](https://redirect.github.com/sleet0922) made their first contribution in [#​7770](https://redirect.github.com/caddyserver/caddy/pull/7770) - [@​Brunotlps](https://redirect.github.com/Brunotlps) made their first contribution in [#​7780](https://redirect.github.com/caddyserver/caddy/pull/7780) - [@​jmrcsnchz](https://redirect.github.com/jmrcsnchz) made their first contribution in [#​7785](https://redirect.github.com/caddyserver/caddy/pull/7785) **Full Changelog**: <https://github.com/caddyserver/caddy/compare/v2.11.3...v2.11.4> </details> <details> <summary>alecthomas/chroma (github.com/alecthomas/chroma/v2)</summary> ### [`v2.26.1`](https://redirect.github.com/alecthomas/chroma/releases/tag/v2.26.1) [Compare Source](https://redirect.github.com/alecthomas/chroma/compare/v2.26.0...v2.26.1) #### Changelog - [`56c7702`](https://redirect.github.com/alecthomas/chroma/commit/56c7702) fix: downgrade go.mod version to 1.25 ### [`v2.26.0`](https://redirect.github.com/alecthomas/chroma/releases/tag/v2.26.0) [Compare Source](https://redirect.github.com/alecthomas/chroma/compare/v2.25.0...v2.26.0) #### Changelog - [`a4d3f60`](https://redirect.github.com/alecthomas/chroma/commit/a4d3f60) feat(chromad): use style counterparts for theme switching - [`ce159e6`](https://redirect.github.com/alecthomas/chroma/commit/ce159e6) chore: migrate to new bit format - [`180ea9f`](https://redirect.github.com/alecthomas/chroma/commit/180ea9f) perf(colour): replace Sprintf/ParseUint round-trip in NewColour with direct bit arithmetic ([#​1274](https://redirect.github.com/alecthomas/chroma/issues/1274)) - [`68a08b0`](https://redirect.github.com/alecthomas/chroma/commit/68a08b0) docs: how to support dynamic theme switching - [`6fb9d92`](https://redirect.github.com/alecthomas/chroma/commit/6fb9d92) feat(html): tag output with style mode - [`a71fea3`](https://redirect.github.com/alecthomas/chroma/commit/a71fea3) feat(styles): add light/dark mode support ### [`v2.25.0`](https://redirect.github.com/alecthomas/chroma/releases/tag/v2.25.0) [Compare Source](https://redirect.github.com/alecthomas/chroma/compare/v2.24.1...v2.25.0) #### Changelog - [`c3826f0`](https://redirect.github.com/alecthomas/chroma/commit/c3826f0) chore: go mod tidy - [`fb5bc39`](https://redirect.github.com/alecthomas/chroma/commit/fb5bc39) fix: emit HTTP body tokens without Coalesce - [`a3c2946`](https://redirect.github.com/alecthomas/chroma/commit/a3c2946) Improve Nu file detection ([#​1260](https://redirect.github.com/alecthomas/chroma/issues/1260)) - [`e841b1a`](https://redirect.github.com/alecthomas/chroma/commit/e841b1a) chore(deps): update all non-major dependencies ([#​1272](https://redirect.github.com/alecthomas/chroma/issues/1272)) - [`3ed2db8`](https://redirect.github.com/alecthomas/chroma/commit/3ed2db8) Add Gemfile.lock lexer (& ruby improvements) ([#​1269](https://redirect.github.com/alecthomas/chroma/issues/1269)) - [`41fb546`](https://redirect.github.com/alecthomas/chroma/commit/41fb546) Add YAML+Jinja lexer ([#​1268](https://redirect.github.com/alecthomas/chroma/issues/1268)) - [`e99b881`](https://redirect.github.com/alecthomas/chroma/commit/e99b881) chore(deps): update all non-major dependencies ([#​1263](https://redirect.github.com/alecthomas/chroma/issues/1263)) - [`e67dd2f`](https://redirect.github.com/alecthomas/chroma/commit/e67dd2f) (Markless) Fix parse issue for embed directives without options ([#​1266](https://redirect.github.com/alecthomas/chroma/issues/1266)) - [`dffa370`](https://redirect.github.com/alecthomas/chroma/commit/dffa370) fix(go): tokenize trailing // as comment instead of consuming next line ([#​1265](https://redirect.github.com/alecthomas/chroma/issues/1265)) - [`1cf1560`](https://redirect.github.com/alecthomas/chroma/commit/1cf1560) chore: upgrade to github.com/dlclark/regexp2/v2 - [`2cbcf7b`](https://redirect.github.com/alecthomas/chroma/commit/2cbcf7b) chore: upgrade golangci-lint - [`786675b`](https://redirect.github.com/alecthomas/chroma/commit/786675b) chore(deps): update all non-major dependencies ([#​1257](https://redirect.github.com/alecthomas/chroma/issues/1257)) - [`235590c`](https://redirect.github.com/alecthomas/chroma/commit/235590c) feat: add JSONL support to JSON lexer ([#​1262](https://redirect.github.com/alecthomas/chroma/issues/1262)) - [`f9b5c97`](https://redirect.github.com/alecthomas/chroma/commit/f9b5c97) fix(dart): match single-line comments without trailing newline ([#​1225](https://redirect.github.com/alecthomas/chroma/issues/1225)) ([#​1261](https://redirect.github.com/alecthomas/chroma/issues/1261)) - [`097f8e9`](https://redirect.github.com/alecthomas/chroma/commit/097f8e9) Mention Arturo in README ([#​1256](https://redirect.github.com/alecthomas/chroma/issues/1256)) - [`d46ce60`](https://redirect.github.com/alecthomas/chroma/commit/d46ce60) feat(markdown): highlight frontmatter and comments ([#​1245](https://redirect.github.com/alecthomas/chroma/issues/1245)) - [`f786b2a`](https://redirect.github.com/alecthomas/chroma/commit/f786b2a) feat(lexers): add support for LilyPond ([#​1255](https://redirect.github.com/alecthomas/chroma/issues/1255)) - [`0a02b98`](https://redirect.github.com/alecthomas/chroma/commit/0a02b98) chore(deps): update actions/checkout digest to [`de0fac2`](https://redirect.github.com/alecthomas/chroma/commit/de0fac2) ([#​1212](https://redirect.github.com/alecthomas/chroma/issues/1212)) - [`c55009e`](https://redirect.github.com/alecthomas/chroma/commit/c55009e) Fix AGENTS.md referencing a non-existent scripts directory ([#​1231](https://redirect.github.com/alecthomas/chroma/issues/1231)) - [`c5e763e`](https://redirect.github.com/alecthomas/chroma/commit/c5e763e) Improve protobuf lexer ([#​1253](https://redirect.github.com/alecthomas/chroma/issues/1253)) - [`113cd0e`](https://redirect.github.com/alecthomas/chroma/commit/113cd0e) Add Arturo lexer ([#​1232](https://redirect.github.com/alecthomas/chroma/issues/1232)) - [`4498d71`](https://redirect.github.com/alecthomas/chroma/commit/4498d71) chore(deps): update dependency binaryen to v129 ([#​1238](https://redirect.github.com/alecthomas/chroma/issues/1238)) - [`885f912`](https://redirect.github.com/alecthomas/chroma/commit/885f912) Added f4 to "Projects using Chroma" list ([#​1242](https://redirect.github.com/alecthomas/chroma/issues/1242)) - [`c42c9ef`](https://redirect.github.com/alecthomas/chroma/commit/c42c9ef) Update java lexer ([#​1254](https://redirect.github.com/alecthomas/chroma/issues/1254)) </details> <details> <summary>dlclark/regexp2 (github.com/dlclark/regexp2/v2)</summary> ### [`v2.1.2`](https://redirect.github.com/dlclark/regexp2/compare/v2.1.1...v2.1.2) [Compare Source](https://redirect.github.com/dlclark/regexp2/compare/v2.1.1...v2.1.2) </details> <details> <summary>mattn/go-colorable (github.com/mattn/go-colorable)</summary> ### [`v0.1.15`](https://redirect.github.com/mattn/go-colorable/compare/v0.1.14...v0.1.15) [Compare Source](https://redirect.github.com/mattn/go-colorable/compare/v0.1.14...v0.1.15) </details> <details> <summary>golang/go (go)</summary> ### [`v1.26.4`](https://redirect.github.com/golang/go/compare/go1.26.3...go1.26.4) </details> <details> <summary>astral-sh/uv (uv)</summary> ### [`v0.11.19`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01119) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.18...0.11.19) Released on 2026-06-03. ##### Python - Add CPython 3.15.0b2 ([#​19531](https://redirect.github.com/astral-sh/uv/pull/19531)) ##### Enhancements - Always compute SHA256 for remote distributions ([#​19662](https://redirect.github.com/astral-sh/uv/pull/19662)) - Add PyEmscripten platform (PEP 783) ([#​19629](https://redirect.github.com/astral-sh/uv/pull/19629)) - Add Pyodide 2025 target triple ([#​19653](https://redirect.github.com/astral-sh/uv/pull/19653)) ##### Preview features - Make preview features for commands have names that aren't ambiguous with the command ([#​19645](https://redirect.github.com/astral-sh/uv/pull/19645)) - Respect `--isolated` in `uv check` ([#​19666](https://redirect.github.com/astral-sh/uv/pull/19666)) ##### Bug fixes - Continue tool uninstall after dangling receipts ([#​19623](https://redirect.github.com/astral-sh/uv/pull/19623)) - Skip Unix-specific installation steps when cross-installing Windows Python distributions ([#​19424](https://redirect.github.com/astral-sh/uv/pull/19424)) ### [`v0.11.18`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01118) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.17...0.11.18) Released on 2026-06-01. ##### Performance - Fix performance regression in unzip of local wheels ([#​19637](https://redirect.github.com/astral-sh/uv/pull/19637)) ##### Preview - Add `uv check` to run `ty` from uv ([#​19605](https://redirect.github.com/astral-sh/uv/pull/19605)) ##### Bug fixes - Update activation scripts with upstream fixes ([#​19628](https://redirect.github.com/astral-sh/uv/pull/19628)) ##### Other changes - Bump MSRV to 1.94 ([#​19600](https://redirect.github.com/astral-sh/uv/pull/19600)) ### [`v0.11.17`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01117) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.16...0.11.17) Released on 2026-05-28. ##### Enhancements - Add a diagnostic for `uv add` with standard library modules ([#​19572](https://redirect.github.com/astral-sh/uv/pull/19572)) - Expose `uv workspace` and its `list` subcommand in help output ([#​19533](https://redirect.github.com/astral-sh/uv/pull/19533)) - Improve the "403 forbidden" hint to suggest `ignore-error-codes` when applicable ([#​19521](https://redirect.github.com/astral-sh/uv/pull/19521)) - Skip direct URL lock freshness checks while offline ([#​19596](https://redirect.github.com/astral-sh/uv/pull/19596)) - Add `import-names` and `import-namespaces` support to `uv-build` ([PEP 794](https://peps.python.org/pep-0794/)) ([#​19380](https://redirect.github.com/astral-sh/uv/pull/19380)) - Add a `--no-editable-package` flag to various commands ([#​19584](https://redirect.github.com/astral-sh/uv/pull/19584)) - Infer Python version requests from source trees in `uv tool` invocations ([#​19577](https://redirect.github.com/astral-sh/uv/pull/19577)) ##### Preview features - Add module owners to `uv workspace metadata` ([#​19122](https://redirect.github.com/astral-sh/uv/pull/19122)) - Do not allow `uv venv --clear` to remove non-virtual environments ([#​19595](https://redirect.github.com/astral-sh/uv/pull/19595)) ##### Bug fixes - Improve the performance of large entries in `tool.uv.conflicts` ([#​19538](https://redirect.github.com/astral-sh/uv/pull/19538)) - Avoid modifying the parent process' env with `--env-file` in `uv run` ([#​19567](https://redirect.github.com/astral-sh/uv/pull/19567)) - Fix script environment creation for scripts with long filenames ([#​19539](https://redirect.github.com/astral-sh/uv/pull/19539)) - Fix transitive Git archive dependencies in lockfiles ([#​19589](https://redirect.github.com/astral-sh/uv/pull/19589)) - Preserve Git repository URLs in direct URL metadata ([#​19590](https://redirect.github.com/astral-sh/uv/pull/19590)) - Support redirects in `--check-url` ([#​19594](https://redirect.github.com/astral-sh/uv/pull/19594)) - Accept case-insensitive HTML tags in `--find-links` parsing ([#​19537](https://redirect.github.com/astral-sh/uv/pull/19537)) - Reject duplicate script metadata blocks ([#​19544](https://redirect.github.com/astral-sh/uv/pull/19544)) - Ban names like "python3" as script entry points ([#​19535](https://redirect.github.com/astral-sh/uv/pull/19535), [#​19536](https://redirect.github.com/astral-sh/uv/pull/19536)) - Validate Git LFS artifacts for Git archives ([#​19592](https://redirect.github.com/astral-sh/uv/pull/19592)) - Use a relative path when creating symlinks in cache to improve relocatability ([#​19033](https://redirect.github.com/astral-sh/uv/pull/19033)) ##### Documentation - Fix malformed positional anchors in the CLI reference ([#​19575](https://redirect.github.com/astral-sh/uv/pull/19575)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
03236a483a |
support for PostScript font files (#1282)
PostScript font files contain valid PostScript code, so they can be colorized just like other PostScript files. |
||
|
|
e10d53260e |
Fix YAML slash comments with colons (#1278)
Fixes #1271. ## Summary - Treat `//` inline comment text as `Comment` in YAML highlighting. - Keep key matching from running through `//` comment text before a later colon. - Add YAML lexer fixture coverage for `//` comments with colon text. ## Tests - `PATH=/root/sdk/go1.26.2/bin:$PATH go test ./lexers -run 'TestLexers/YAML' -count=1` - `PATH=/root/sdk/go1.26.2/bin:$PATH go test ./... -count=1` - `git diff --check` Co-authored-by: cyphercodes <cyphercodes@users.noreply.github.com> |
||
|
|
56c7702e16 |
fix: downgrade go.mod version to 1.25
Fixes #1276v2.26.1 |
||
|
|
a4d3f60813 | feat(chromad): use style counterparts for theme switching v2.26.0 | ||
|
|
ce159e61b0 | chore: migrate to new bit format | ||
|
|
180ea9f54d | perf(colour): replace Sprintf/ParseUint round-trip in NewColour with direct bit arithmetic (#1274) | ||
|
|
68a08b0f9a | docs: how to support dynamic theme switching | ||
|
|
6fb9d920b5 |
feat(html): tag output with style mode
The HTML formatter now emits a "light" or "dark" class alongside "chroma" on the wrapper (and on standalone <body>) when classes are enabled. WriteCSS scopes its rules by the same mode class so two themes can share a stylesheet and be toggled at the wrapper level. Fixes #1162 |
||
|
|
a71fea3435 |
feat(styles): add light/dark mode support
Style.Mode() derives Light/Dark from the Background entry's luminosity. A new optional Counterpart field (and counterpart="..." XML attribute) points at the opposite-mode style. styles.GetForMode(name, mode) follows the counterpart, and RegisterPair links a Light/Dark pair both ways. Wires counterparts on the obvious paired bundled styles. |
||
|
|
c3826f007c | chore: go mod tidy v2.25.0 | ||
|
|
fb5bc39d40 |
fix: emit HTTP body tokens without Coalesce
The body sub-lexer was set up but EOF was returned immediately, causing callers that stop at EOF to drop the body. Return the first sub-iterator token instead. Fixes #1273 |
||
|
|
a3c2946ab1 |
Improve Nu file detection (#1260)
This adds shebang detection (including arguments to `env`) and `x-shellscript` mime types to the Nu lexer. As far as I can see there are no tests for this that I could/should update. Please do point out if I missed anything in that regard. Fixes #1259. |
||
|
|
e841b1a4e3 |
chore(deps): update all non-major dependencies (#1272)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---| | [github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2) | `v2.0.3` → `v2.1.0` |  |  | require | minor | | [uv](https://redirect.github.com/astral-sh/uv) | `0.11.14` → `0.11.16` |  |  | | patch | --- ### Release Notes <details> <summary>dlclark/regexp2 (github.com/dlclark/regexp2/v2)</summary> ### [`v2.1.0`](https://redirect.github.com/dlclark/regexp2/compare/v2.0.3...v2.1.0) [Compare Source](https://redirect.github.com/dlclark/regexp2/compare/v2.0.3...v2.1.0) </details> <details> <summary>astral-sh/uv (uv)</summary> ### [`v0.11.16`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01116) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.15...0.11.16) Released on 2026-05-21. ##### Enhancements - Add support for direct archive dependencies in Git ([#​10072](https://redirect.github.com/astral-sh/uv/pull/10072)) - Adjust hint rendering ([#​18090](https://redirect.github.com/astral-sh/uv/pull/18090)) ##### Preview features - uv audit: specialize malformed OSV error ([#​19515](https://redirect.github.com/astral-sh/uv/pull/19515)) - Reject locked malware installations ([#​18936](https://redirect.github.com/astral-sh/uv/pull/18936)) ##### Configuration - Allow disabling reading the system config with `UV_NO_SYSTEM_CONFIG` ([#​19476](https://redirect.github.com/astral-sh/uv/pull/19476)) ##### Bug fixes - Allow environment variables that take a list to be empty ([#​19503](https://redirect.github.com/astral-sh/uv/pull/19503)) - Ensure that incompatible wheel hints do not leak secrets ([#​19504](https://redirect.github.com/astral-sh/uv/pull/19504)) - Reject unsafe entry points in `uv-build` ([#​19495](https://redirect.github.com/astral-sh/uv/pull/19495)) - Restrict delimiters in entry point parsing ([#​19471](https://redirect.github.com/astral-sh/uv/pull/19471)) - uv-netrc: fix multi-word no-space comment lines causing parse errors ([#​19494](https://redirect.github.com/astral-sh/uv/pull/19494)) ##### Documentation - Document and test relative exclude-newer support for uv pip ([#​19475](https://redirect.github.com/astral-sh/uv/pull/19475)) ### [`v0.11.15`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01115) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.14...0.11.15) Released on 2026-05-18. ##### Security - Fix a TAR partial differential, see [GHSA-3cv2-h65g-fgmm](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm) ([#​19463](https://redirect.github.com/astral-sh/uv/pull/19463)) - Enforce that entry points cannot escape in the scripts directory, see [GHSA-4gg8-gxpx-9rph](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-4gg8-gxpx-9rph) ([#​19464](https://redirect.github.com/astral-sh/uv/pull/19464)) ##### Enhancements - Add TOML v1.1 -> v1.0 backwards compatibility for source distributions ([#​18741](https://redirect.github.com/astral-sh/uv/pull/18741)) - Add support for Azure request signing ([#​19421](https://redirect.github.com/astral-sh/uv/pull/19421)) - Apply stricter validation to all wheel filename segments ([#​19364](https://redirect.github.com/astral-sh/uv/pull/19364)) - Reject empty strings as an invalid package name ([#​19435](https://redirect.github.com/astral-sh/uv/pull/19435)) - Use structured errors for signing authentication failures ([#​19422](https://redirect.github.com/astral-sh/uv/pull/19422)) ##### Preview - uv audit: Add JSON output ([#​19305](https://redirect.github.com/astral-sh/uv/pull/19305)) ##### Configuration - Respect `required-environments` in `uv pip compile` ([#​19378](https://redirect.github.com/astral-sh/uv/pull/19378)) ##### Performance - Avoid parsing JSON manifest when local Python is available ([#​19398](https://redirect.github.com/astral-sh/uv/pull/19398)) - Avoid walking nested directories in linker conflict registration ([#​19382](https://redirect.github.com/astral-sh/uv/pull/19382)) - Optimize async wheel ZIP writing ([#​19383](https://redirect.github.com/astral-sh/uv/pull/19383)) - Fix dead "already trimmed" fast-path in `Version::only_release_trimmed` ([#​19425](https://redirect.github.com/astral-sh/uv/pull/19425)) ##### Bug fixes - Apply workspace-member `[tool.uv.sources]` credentials under `uv sync --frozen` ([#​19423](https://redirect.github.com/astral-sh/uv/pull/19423)) - Skip empty directories in uv build outputs ([#​19437](https://redirect.github.com/astral-sh/uv/pull/19437)) - Fix Git submodule handling when using relative paths ([#​12156](https://redirect.github.com/astral-sh/uv/pull/12156)) - Fix line number reporting in netrc parsing ([#​19452](https://redirect.github.com/astral-sh/uv/pull/19452)) ##### Documentation - Move Bazel auth helper setup into integration guide ([#​19392](https://redirect.github.com/astral-sh/uv/pull/19392)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
3ed2db889f |
Add Gemfile.lock lexer (& ruby improvements) (#1269)
This PR adds highlighting for [Bundler](https://bundler.io)'s lockfiles, and adds a few Ruby file extensions to the list. - `*.json.jbuilder` for the [`jbuilder`](https://github.com/rails/jbuilder) gem - `.pryrc` for [`pry`](https://pry.github.io/)'s configuration file - `Appraisals` for the [`appraisal`](https://github.com/thoughtbot/appraisal) gem |
||
|
|
41fb546f72 |
Add YAML+Jinja lexer (#1268)
## Summary Adds a `YAML+Jinja` lexer that combines the existing YAML and Django/Jinja lexers via `DelegatingLexer`. This is the equivalent of Pygments' [`YamlJinjaLexer`](https://pygments.org/docs/lexers/#pygments.lexers.templates.YamlJinjaLexer) and covers two common formats that the current lexers cannot highlight correctly on their own: - Ansible playbooks (Jinja2 expressions embedded in YAML) - Salt SLS files Implementation follows the same pattern as `ERB`, `PHTML`, `Svelte`, and `Go HTML Template`: a small Go file wraps two existing lexers with `DelegatingLexer`, reusing `embedded/yaml.xml` and `embedded/django_jinja.xml`. No new XML file is introduced. ## Lexer config | Field | Value | | ----- | ----- | | Name | `YAML+Jinja` | | Aliases | `yaml+jinja`, `salt`, `sls`, `ansible` | | Filenames | `*.sls` | | MIME types | `text/x-yaml+jinja`, `text/x-sls` | ### Why no `*.yml` / `*.yaml`? Ansible playbooks and Salt SLS files often use `*.yml`. Claiming those globs would route every plain YAML file through this lexer and create an ambiguous match against the built-in `YAML` lexer. To stay non-invasive, the lexer only claims `*.sls`; for Ansible playbooks the user is expected to select the lexer explicitly (`chroma -l ansible …`), matching Pygments' behavior. Existing lexers remain unaffected: | Input | Resolved lexer | | ----- | -------------- | | `*.yml` / `*.yaml` | `YAML` (unchanged) | | `*.sls` | `YAML+Jinja` (new) | | `text/x-yaml` | `YAML` (unchanged) | | `application/x-jinja` | `Django/Jinja` (unchanged) | | `text/x-yaml+jinja`, `text/x-sls` | `YAML+Jinja` (new) | ## Test plan - [x] `go test ./...` passes (new `TestLexers/YAML+Jinja/testdata/ansible.actual` case included; `.expected` generated via `RECORD=true go test ./lexers`) - [x] `golangci-lint run ./...` passes - [x] `gofmt -l` clean - [x] Manual smoke test: `lexers.Get("ansible")`, `lexers.Get("yaml+jinja")`, `lexers.Get("salt")`, `lexers.Get("sls")` all resolve to the new `YAML+Jinja` lexer - [x] Verified that `*.yml`, `*.yaml`, `text/x-yaml`, and `application/x-jinja` still resolve to the previous lexers (no regression) |
||
|
|
e99b88182b |
chore(deps): update all non-major dependencies (#1263)
This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [biome](https://redirect.github.com/biomejs/biome) | | patch | `2.4.14` → `2.4.15` |  |  | | [caddy](https://redirect.github.com/caddyserver/caddy) | | patch | `2.11.2` → `2.11.3` |  |  | | [github.com/dlclark/regexp2/v2](https://redirect.github.com/dlclark/regexp2) | require | patch | `v2.0.2` → `v2.0.3` |  |  | | [just](https://redirect.github.com/casey/just) | | minor | `1.50.0` → `1.51.0` |  |  | | [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.11.12` → `0.11.14` |  |  | --- ### Release Notes <details> <summary>biomejs/biome (biome)</summary> ### [`v2.4.15`](https://redirect.github.com/biomejs/biome/compare/46393e0240944064eb2a33c1810fc4204ced0cf7...9dd3271eef16090416b6e77615a01e3bfbcf7993) </details> <details> <summary>caddyserver/caddy (caddy)</summary> ### [`v2.11.3`](https://redirect.github.com/caddyserver/caddy/releases/tag/v2.11.3) This release improves several aspects of Caddy with minor features, bug fixes, and security patches. Thank you to everyone and their bots who contributed to help make this release the best one yet! **Security patches:** - fastcgi: Carrying over a patch from FrankenPHP for a bug that could allow non-PHP files to be executed; collaborated on by [@​dunglas](https://redirect.github.com/dunglas), [@​KC1zs4](https://redirect.github.com/KC1zs4), and [@​chenjj](https://redirect.github.com/chenjj). - vars: A more thorough fix for <https://github.com/advisories/GHSA-m2w3-8f23-hxxf>, collaborated by [@​everping](https://redirect.github.com/everping) and [@​vnxme](https://redirect.github.com/vnxme). - admin: Array index normalization to prevent remote admin socket auth bypass, by [@​Amemoyoi](https://redirect.github.com/Amemoyoi) and bot. - admin: More rigorous path prefix matching to prevent remote admin socket auth bypass, by [@​Amemoyoi](https://redirect.github.com/Amemoyoi) and bot. We've also merged a couple PRs that fix upstream security bugs in other projects like quic-go and CertMagic. Thank you to [@​marten-seemann](https://redirect.github.com/marten-seemann) for maintaining quic-go so diligently! #### What's Changed - caddyhttp: Sync placeholder expansion in `vars` and `vars_regexp` by [@​vnxme](https://redirect.github.com/vnxme) in [#​7573](https://redirect.github.com/caddyserver/caddy/pull/7573) - caddytls: Avoid ACME fallback for implicit Tailscale \*.ts.net policies by [@​steadytao](https://redirect.github.com/steadytao) in [#​7577](https://redirect.github.com/caddyserver/caddy/pull/7577) - chore: Resolve recent CI failures by [@​mholt](https://redirect.github.com/mholt) in [#​7593](https://redirect.github.com/caddyserver/caddy/pull/7593) - caddytls: Consolidate empty APs more smartly by [@​mholt](https://redirect.github.com/mholt) in [#​7567](https://redirect.github.com/caddyserver/caddy/pull/7567) - rewrite: skip query rename when source key is absent by [@​steadytao](https://redirect.github.com/steadytao) in [#​7599](https://redirect.github.com/caddyserver/caddy/pull/7599) - root: introduce down-propagating Helper.BlockState for other directives/plugins to use by [@​henderkes](https://redirect.github.com/henderkes) in [#​7594](https://redirect.github.com/caddyserver/caddy/pull/7594) - http: make zstd checksum configurable by [@​ottenhoff](https://redirect.github.com/ottenhoff) in [#​7586](https://redirect.github.com/caddyserver/caddy/pull/7586) - notify: Always send "READY=1" even after an error by [@​francislavoie](https://redirect.github.com/francislavoie) in [#​7597](https://redirect.github.com/caddyserver/caddy/pull/7597) - reverseproxy: Fix check for `header_up Host {upstream_hostport}` redundancy by [@​yubiuser](https://redirect.github.com/yubiuser) in [#​7564](https://redirect.github.com/caddyserver/caddy/pull/7564) - caddytls: Expand placeholders in dns\_challenge override\_domain tls parameter by [@​pberkel](https://redirect.github.com/pberkel) in [#​7609](https://redirect.github.com/caddyserver/caddy/pull/7609) - tls: add system and combined CA pool modules by [@​HarshPatel5940](https://redirect.github.com/HarshPatel5940) in [#​7406](https://redirect.github.com/caddyserver/caddy/pull/7406) - vars: Don't expand placeholders in values by [@​vnxme](https://redirect.github.com/vnxme) in [#​7629](https://redirect.github.com/caddyserver/caddy/pull/7629) - build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from 1.42.0 to 1.43.0 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​7637](https://redirect.github.com/caddyserver/caddy/pull/7637) - build(deps): bump the all-updates group across 1 directory with 11 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​7641](https://redirect.github.com/caddyserver/caddy/pull/7641) - reverseproxy: make stream copy buffer size configurable by [@​steadytao](https://redirect.github.com/steadytao) in [#​7627](https://redirect.github.com/caddyserver/caddy/pull/7627) - vars: Add matcher placeholder handling tests by [@​steadytao](https://redirect.github.com/steadytao) in [#​7640](https://redirect.github.com/caddyserver/caddy/pull/7640) - build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​7621](https://redirect.github.com/caddyserver/caddy/pull/7621) - logging: Add journald encoder wrapper by [@​steadytao](https://redirect.github.com/steadytao) in [#​7623](https://redirect.github.com/caddyserver/caddy/pull/7623) - caddyfile: Improve import/global options UX for imports before global options by [@​steadytao](https://redirect.github.com/steadytao) in [#​7642](https://redirect.github.com/caddyserver/caddy/pull/7642) - chore: replace `interface{}` with `any` for modernization by [@​tsinglua](https://redirect.github.com/tsinglua) in [#​7571](https://redirect.github.com/caddyserver/caddy/pull/7571) - chore: bump timberjack to v1.4.1 by [@​DeRuina](https://redirect.github.com/DeRuina) in [#​7618](https://redirect.github.com/caddyserver/caddy/pull/7618) - logging: Preserve ts for journald-wrapped JSON logs by [@​steadytao](https://redirect.github.com/steadytao) in [#​7644](https://redirect.github.com/caddyserver/caddy/pull/7644) - fileserver: show symlink targets verbatim ([#​7476](https://redirect.github.com/caddyserver/caddy/issues/7476)) by [@​maxtruxa](https://redirect.github.com/maxtruxa) in [#​7579](https://redirect.github.com/caddyserver/caddy/pull/7579) - fix(caddyfile): {block} in snippet by [@​prettysunflower](https://redirect.github.com/prettysunflower) in [#​7558](https://redirect.github.com/caddyserver/caddy/pull/7558) - caddyhttp: Document missing placeholders for escaped URI and prefixed query by [@​steffenbusch](https://redirect.github.com/steffenbusch) in [#​7659](https://redirect.github.com/caddyserver/caddy/pull/7659) - chore: add `AGENTS.md` by [@​mohammed90](https://redirect.github.com/mohammed90) in [#​7652](https://redirect.github.com/caddyserver/caddy/pull/7652) - build(deps): bump github.com/jackc/pgx/v5 from 5.8.0 to 5.9.0 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​7655](https://redirect.github.com/caddyserver/caddy/pull/7655) - admin: Redact sensitive request headers in API logs by [@​steadytao](https://redirect.github.com/steadytao) in [#​7578](https://redirect.github.com/caddyserver/caddy/pull/7578) - reverseproxy: add `lb_retry_match` condition on response status by [@​seroperson](https://redirect.github.com/seroperson) in [#​7569](https://redirect.github.com/caddyserver/caddy/pull/7569) - caddyhttp: prefer port 443 in auto-HTTPS and add tests by [@​mholt](https://redirect.github.com/mholt) in [#​7666](https://redirect.github.com/caddyserver/caddy/pull/7666) - fix: Propagate ECH keys to the QUIC listener by [@​steadytao](https://redirect.github.com/steadytao) in [#​7670](https://redirect.github.com/caddyserver/caddy/pull/7670) - chore: Use atomics where appropriate by [@​francislavoie](https://redirect.github.com/francislavoie) in [#​7648](https://redirect.github.com/caddyserver/caddy/pull/7648) - metrics: Implement pushing via OLTP by [@​dunglas](https://redirect.github.com/dunglas) in [#​7664](https://redirect.github.com/caddyserver/caddy/pull/7664) - logging: Add regression coverage for rotated file mode by [@​steadytao](https://redirect.github.com/steadytao) in [#​7620](https://redirect.github.com/caddyserver/caddy/pull/7620) - httpcaddyfile: Inherit global ACME issuer settings in tls shortcuts by [@​steadytao](https://redirect.github.com/steadytao) in [#​7617](https://redirect.github.com/caddyserver/caddy/pull/7617) - build(deps): bump github.com/jackc/pgx/v5 from 5.9.0 to 5.9.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​7668](https://redirect.github.com/caddyserver/caddy/pull/7668) - admin: require path segment boundary in remote access control by [@​Amemoyoi](https://redirect.github.com/Amemoyoi) in [#​7673](https://redirect.github.com/caddyserver/caddy/pull/7673) - reverseproxy: Add ability to clear dynamic upstreams cache during retries by [@​mholt](https://redirect.github.com/mholt) in [#​7662](https://redirect.github.com/caddyserver/caddy/pull/7662) - listeners: clean up stale Unix socket files on Windows by [@​mfrischknecht](https://redirect.github.com/mfrischknecht) in [#​7676](https://redirect.github.com/caddyserver/caddy/pull/7676) - admin: reject non-canonical config array indices by [@​Amemoyoi](https://redirect.github.com/Amemoyoi) in [#​7592](https://redirect.github.com/caddyserver/caddy/pull/7592) - caddytls: Expand ACME credentials by [@​tribut](https://redirect.github.com/tribut) in [#​7554](https://redirect.github.com/caddyserver/caddy/pull/7554) - caddyauth: set user placeholders before auth rejection by [@​cyphercodes](https://redirect.github.com/cyphercodes) in [#​7685](https://redirect.github.com/caddyserver/caddy/pull/7685) - caddyauth: revert user placeholders on auth rejection by [@​steadytao](https://redirect.github.com/steadytao) in [#​7688](https://redirect.github.com/caddyserver/caddy/pull/7688) - chore: Fix golangci-lint 2.12.1 findings by [@​steadytao](https://redirect.github.com/steadytao) in [#​7690](https://redirect.github.com/caddyserver/caddy/pull/7690) - httpcaddyfile: accept duration strings for log sampling interval by [@​tomholford](https://redirect.github.com/tomholford) in [#​7694](https://redirect.github.com/caddyserver/caddy/pull/7694) - tls: Add alpn to managed HTTPS records by [@​steadytao](https://redirect.github.com/steadytao) in [#​7653](https://redirect.github.com/caddyserver/caddy/pull/7653) - caddytls: avoid duplicate automation for wildcard-covered hosts by [@​Rijul-A](https://redirect.github.com/Rijul-A) in [#​7697](https://redirect.github.com/caddyserver/caddy/pull/7697) - docs: add documentation for fileExists and fileStat template functions by [@​steffenbusch](https://redirect.github.com/steffenbusch) in [#​7700](https://redirect.github.com/caddyserver/caddy/pull/7700) - rewrite: escape file matcher paths before rewriting by [@​cyphercodes](https://redirect.github.com/cyphercodes) in [#​7683](https://redirect.github.com/caddyserver/caddy/pull/7683) - metrics: Add nil check for metricsHandler in AdminMetrics.serveHTTP by [@​Br1an67](https://redirect.github.com/Br1an67) in [#​7553](https://redirect.github.com/caddyserver/caddy/pull/7553) #### New Contributors - [@​steadytao](https://redirect.github.com/steadytao) made their first contribution in [#​7577](https://redirect.github.com/caddyserver/caddy/pull/7577) - [@​henderkes](https://redirect.github.com/henderkes) made their first contribution in [#​7594](https://redirect.github.com/caddyserver/caddy/pull/7594) - [@​yubiuser](https://redirect.github.com/yubiuser) made their first contribution in [#​7564](https://redirect.github.com/caddyserver/caddy/pull/7564) - [@​pberkel](https://redirect.github.com/pberkel) made their first contribution in [#​7609](https://redirect.github.com/caddyserver/caddy/pull/7609) - [@​HarshPatel5940](https://redirect.github.com/HarshPatel5940) made their first contribution in [#​7406](https://redirect.github.com/caddyserver/caddy/pull/7406) - [@​tsinglua](https://redirect.github.com/tsinglua) made their first contribution in [#​7571](https://redirect.github.com/caddyserver/caddy/pull/7571) - [@​maxtruxa](https://redirect.github.com/maxtruxa) made their first contribution in [#​7579](https://redirect.github.com/caddyserver/caddy/pull/7579) - [@​seroperson](https://redirect.github.com/seroperson) made their first contribution in [#​7569](https://redirect.github.com/caddyserver/caddy/pull/7569) - [@​Amemoyoi](https://redirect.github.com/Amemoyoi) made their first contribution in [#​7673](https://redirect.github.com/caddyserver/caddy/pull/7673) - [@​mfrischknecht](https://redirect.github.com/mfrischknecht) made their first contribution in [#​7676](https://redirect.github.com/caddyserver/caddy/pull/7676) - [@​tribut](https://redirect.github.com/tribut) made their first contribution in [#​7554](https://redirect.github.com/caddyserver/caddy/pull/7554) - [@​cyphercodes](https://redirect.github.com/cyphercodes) made their first contribution in [#​7685](https://redirect.github.com/caddyserver/caddy/pull/7685) - [@​tomholford](https://redirect.github.com/tomholford) made their first contribution in [#​7694](https://redirect.github.com/caddyserver/caddy/pull/7694) - [@​Rijul-A](https://redirect.github.com/Rijul-A) made their first contribution in [#​7697](https://redirect.github.com/caddyserver/caddy/pull/7697) - [@​Br1an67](https://redirect.github.com/Br1an67) made their first contribution in [#​7553](https://redirect.github.com/caddyserver/caddy/pull/7553) **Full Changelog**: <https://github.com/caddyserver/caddy/compare/v2.11.2...v2.11.3> </details> <details> <summary>dlclark/regexp2 (github.com/dlclark/regexp2/v2)</summary> ### [`v2.0.3`](https://redirect.github.com/dlclark/regexp2/compare/v2.0.2...v2.0.3) [Compare Source](https://redirect.github.com/dlclark/regexp2/compare/v2.0.2...v2.0.3) </details> <details> <summary>casey/just (just)</summary> ### [`v1.51.0`](https://redirect.github.com/casey/just/blob/HEAD/CHANGELOG.md#1510---2026-05-09) [Compare Source](https://redirect.github.com/casey/just/compare/1.50.0...1.51.0) ##### Added - Add `no-cd` setting ([#​2981](https://redirect.github.com/casey/just/pull/2981) by [hans-d](https://redirect.github.com/hans-d)) ##### Changed - Allow `[env]` attribute to take expressions ([#​3329](https://redirect.github.com/casey/just/pull/3329) by [casey](https://redirect.github.com/casey)) - Allow using expressions with `[working-directory]` ([#​3326](https://redirect.github.com/casey/just/pull/3326) by [casey](https://redirect.github.com/casey)) - Read justfile from standard input with `--justfile -` ([#​3325](https://redirect.github.com/casey/just/pull/3325) by [casey](https://redirect.github.com/casey)) - Make `parent_directory()` of bare filename return `.` ([#​3313](https://redirect.github.com/casey/just/pull/3313) by [casey](https://redirect.github.com/casey)) - Make `[env]` override module-level exports ([#​3312](https://redirect.github.com/casey/just/pull/3312) by [casey](https://redirect.github.com/casey)) ##### Fixed - Fail on deep recursion instead of overflowing stack ([#​3319](https://redirect.github.com/casey/just/pull/3319) by [casey](https://redirect.github.com/casey)) - Invoke chooser selections separately ([#​3311](https://redirect.github.com/casey/just/pull/3311) by [casey](https://redirect.github.com/casey)) - Don't evaluate unused assertions ([#​3310](https://redirect.github.com/casey/just/pull/3310) by [casey](https://redirect.github.com/casey)) - Respect lazy setting in submodules ([#​3308](https://redirect.github.com/casey/just/pull/3308) by [casey](https://redirect.github.com/casey)) - Fix overrides not being visible in user-defined functions ([#​3307](https://redirect.github.com/casey/just/pull/3307) by [casey](https://redirect.github.com/casey)) - Don't panic on invalid datetime format string ([#​3304](https://redirect.github.com/casey/just/pull/3304) by [casey](https://redirect.github.com/casey)) ##### Misc - Use `cargo-limit` commands in justfile ([#​3331](https://redirect.github.com/casey/just/pull/3331) by [casey](https://redirect.github.com/casey)) - Simplify code more ([#​3330](https://redirect.github.com/casey/just/pull/3330) by [casey](https://redirect.github.com/casey)) - Update install-dev-deps recipe with compatible mdbook ([#​3328](https://redirect.github.com/casey/just/pull/3328) by [casey](https://redirect.github.com/casey)) - Simplify code ([#​3327](https://redirect.github.com/casey/just/pull/3327) by [casey](https://redirect.github.com/casey)) - Link to duplicate recipe issue in readme ([#​3321](https://redirect.github.com/casey/just/pull/3321) by [casey](https://redirect.github.com/casey)) - Remove periods from error messages ([#​3316](https://redirect.github.com/casey/just/pull/3316) by [casey](https://redirect.github.com/casey)) - Avoid multi-sentence error messagess ([#​3315](https://redirect.github.com/casey/just/pull/3315) by [casey](https://redirect.github.com/casey)) - Make error messages lowercase ([#​3314](https://redirect.github.com/casey/just/pull/3314) by [casey](https://redirect.github.com/casey)) - Actually bump version to 1.50.0 ([#​3303](https://redirect.github.com/casey/just/pull/3303) by [casey](https://redirect.github.com/casey)) </details> <details> <summary>astral-sh/uv (uv)</summary> ### [`v0.11.14`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01114) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.13...0.11.14) Released on 2026-05-12. ##### Enhancements - Add Astral mirror URL override ([#​19206](https://redirect.github.com/astral-sh/uv/pull/19206)) - Ignore `top_level.txt` entries in uninstall that are not valid Python identifiers ([#​19340](https://redirect.github.com/astral-sh/uv/pull/19340)) ##### Bug fixes - Avoid applying `.env` files in parent process ([#​19343](https://redirect.github.com/astral-sh/uv/pull/19343)) - Filter ANSI codes in logging output ([#​19311](https://redirect.github.com/astral-sh/uv/pull/19311)) - Fix `uv tree` showing extra-conditional deps for packages required without extras ([#​19332](https://redirect.github.com/astral-sh/uv/pull/19332)) - Respect build options (e.g., `--no-build`) during lock validation ([#​19366](https://redirect.github.com/astral-sh/uv/pull/19366)) ### [`v0.11.13`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01113) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.11.12...0.11.13) Released on 2026-05-10. ##### Bug fixes - Include data files in editable builds ([#​19312](https://redirect.github.com/astral-sh/uv/pull/19312)) - Respect `--require-hashes` when installing from `pylock.toml` files ([#​19334](https://redirect.github.com/astral-sh/uv/pull/19334)) ##### Python - Add CPython 3.14.5 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE3OS4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
e67dd2f4f7 |
(Markless) Fix parse issue for embed directives without options (#1266)
This fixes an issue with misparsing embed directives that don't include any options, such as: ```markless [ image foo ] ``` |
||
|
|
dffa370b98 |
fix(go): tokenize trailing // as comment instead of consuming next line (#1265)
The Go single-line comment rule `//\s+[^\n\r]*` requires a non-newline char after the whitespace, so a `//` at end of line falls through to the rule with greedy `\s+` which consumes the trailing newline plus the next line's indent, swallowing the following line into the comment token. Switches the rules to `//[^\s\n\r][^\n\r]*` (CommentPreproc) and `//[^\n\r]*` (CommentSingle), which keeps build-tag preproc handling intact and matches an empty-body comment correctly. Closes #1264 |
||
|
|
1cf15602ee | chore: upgrade to github.com/dlclark/regexp2/v2 | ||
|
|
2cbcf7b18b | chore: upgrade golangci-lint | ||
|
|
786675b89c |
chore(deps): update all non-major dependencies (#1257)
> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [biome](https://redirect.github.com/biomejs/biome) | | patch | `2.4.9` → `2.4.14` |  |  | | [enumer](https://redirect.github.com/dmarkham/enumer) | | patch | `1.6.1` → `1.6.3` |  |  | | [esbuild](https://redirect.github.com/evanw/esbuild) | | minor | `0.27.4` → `0.28.0` |  |  | | [github.com/alecthomas/chroma/v2](https://redirect.github.com/alecthomas/chroma) | require | minor | `v2.23.1` → `v2.24.1` |  |  | | [go](https://redirect.github.com/golang/go) | | patch | `1.26.1` → `1.26.3` |  |  | | [go](https://go.dev/) ([source](https://redirect.github.com/golang/go)) | toolchain | patch | `1.26.2` → `1.26.3` |  |  | | [just](https://redirect.github.com/casey/just) | | minor | `1.48.0` → `1.50.0` |  |  | | [svu](https://redirect.github.com/caarlos0/svu) | | patch | `3.4.0` → `3.4.1` |  |  | | [tinygo](https://redirect.github.com/tinygo-org/tinygo) | | minor | `0.40.1` → `0.41.1` |  |  | | [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.11.1` → `0.11.12` |  |  | | [watchexec](https://redirect.github.com/watchexec/watchexec) | | patch | `2.5.0` → `2.5.1` |  |  | --- ### Release Notes <details> <summary>biomejs/biome (biome)</summary> ### [`v2.4.14`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.14): Biome CLI v2.4.14 #### 2.4.14 ##### Patch Changes - [#​9393](https://redirect.github.com/biomejs/biome/pull/9393) [`491b171`](https://redirect.github.com/biomejs/biome/commit/491b171e245aa1ad1063662d4408692b4fc11eae) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the nursery rule [`useTestHooksOnTop`](https://biomejs.dev/linter/rules/use-test-hooks-on-top) in the `test` domain. The rule flags lifecycle hooks (`beforeEach`, `beforeAll`, `afterEach`, `afterAll`) that appear after test cases in the same block, enforcing that hooks are defined before any test case. - [#​10157](https://redirect.github.com/biomejs/biome/pull/10157) [`eefc5ab`](https://redirect.github.com/biomejs/biome/commit/eefc5ab81709e78068774b0f5bc56af448a733d1) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​7882](https://redirect.github.com/biomejs/biome/issues/7882): The HTML parser will now emit better diagnostics when it encounters a void element with a closing tag, such as `<br></br>`. Previously, the parser would emit multiple diagnostics with conflicting advice. Now it emits a single diagnostic that clearly states that void elements should not have closing tags. - [#​10054](https://redirect.github.com/biomejs/biome/pull/10054) [`0e9f569`](https://redirect.github.com/biomejs/biome/commit/0e9f5696b1f2dec6e0d1f81b39192bdb07ab0c1a) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/) no longer misses widening from concrete object types, class instances, object literals, tuples, functions, and regular expressions to `: object`. A function annotated `: object` returning an object literal: ```ts function f(): object { return { retry: true }; } ``` - [#​10116](https://redirect.github.com/biomejs/biome/pull/10116) [`53269eb`](https://redirect.github.com/biomejs/biome/commit/53269ebe0a2f718213483444696b88c7e8d0e7c4) Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#​6201](https://redirect.github.com/biomejs/biome/issues/6201): [`noUselessEscapeInRegex`](https://biomejs.dev/linter/rules/no-useless-escape-in-regex/) no longer flags an escaped backslash followed by `-` as a useless escape. Patterns like `/[\\-]/` are now considered valid because the second `\` is the escaped backslash, not an unnecessary escape of the trailing dash. - [#​10092](https://redirect.github.com/biomejs/biome/pull/10092) [`33d8543`](https://redirect.github.com/biomejs/biome/commit/33d8543da451e272000b84a8e29114d72923cdc1) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Fixed [#​9097](https://redirect.github.com/biomejs/biome/issues/9097): [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/) no longer adds a blank line between a never-matched group and a matched group. Given the following `organizeImports` options: ```json { "groups": [":NODE:", ":BLANK_LINE:", ":PACKAGE:", ":BLANK_LINE:", ":PATH:"] } ``` The following code... ```js // Comment import "package"; import "./file.js"; ``` ...was organized as: ```diff + // Comment import "package"; + import "./file.js"; ``` A blank line was added even though the group ':NODE:' doesn't match any imports here. `:BLANK_LINE:` between never-matched groups and matched groups are now ignored. The code is now organized as: ```diff // Comment import "package"; + import "./file.js"; ``` - [#​10138](https://redirect.github.com/biomejs/biome/pull/10138) [`a10b6c1`](https://redirect.github.com/biomejs/biome/commit/a10b6c119d1f3862da918ce7617ee365bb534c6e) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed Vue `v-for` handling for [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) and [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/). Biome now recognizes variables declared by `v-for` directives and references to iterated values in Vue templates. - [#​10115](https://redirect.github.com/biomejs/biome/pull/10115) [`d428d76`](https://redirect.github.com/biomejs/biome/commit/d428d76ba8be7131090c199cefa36613a332e75b) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/) no longer reports false positives when a union return type's `boolean` variant is covered by both `true` and `false` returns. - [#​9922](https://redirect.github.com/biomejs/biome/pull/9922) [`7acf1e0`](https://redirect.github.com/biomejs/biome/commit/7acf1e0890d1e52b1cfa940554f6ebbd1bae20b3) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the new nursery rule [`noReactStringRefs`](https://biomejs.dev/linter/rules/no-react-string-refs/), which disallows legacy React string refs such as `ref="hello"` and `this.refs.hello`. Biome also reports template-literal refs such as ``ref={`hello`}``, so React code can consistently migrate to callback refs, `createRef()`, or `useRef()`. - [#​10010](https://redirect.github.com/biomejs/biome/pull/10010) [`f3e76ab`](https://redirect.github.com/biomejs/biome/commit/f3e76ab7befecca7cdc7a04edac1350de31029de) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed a bug in the LSP file watcher registration so Biome now watches `.biome.json` and `.biome.jsonc` configuration files and reloads workspace settings when they change. - [#​10176](https://redirect.github.com/biomejs/biome/pull/10176) [`8a40ef8`](https://redirect.github.com/biomejs/biome/commit/8a40ef835db83277a15b4f0455b5b9b69c719ad3) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10011](https://redirect.github.com/biomejs/biome/issues/10011): The [`noThisInStatic`](https://biomejs.dev/linter/rules/no-this-in-static/) rule no longer reports `this` when it is used as the constructor target in `new this(...)`, which is required for inherited static factory methods. - [#​10163](https://redirect.github.com/biomejs/biome/pull/10163) [`6867e96`](https://redirect.github.com/biomejs/biome/commit/6867e96dacf0b96dfbefd51f95a29136d90b7bb4) Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#​9884](https://redirect.github.com/biomejs/biome/issues/9884): The [`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/) auto-fix no longer corrupts source code when both an outer JSX element and a nested JSX-valued attribute have unsorted attributes in the same pass. Multiple unsorted groups separated by spread or shorthand attributes within the same JSX element are now reported as a single diagnostic. - [#​10079](https://redirect.github.com/biomejs/biome/pull/10079) [`d29dd19`](https://redirect.github.com/biomejs/biome/commit/d29dd1916bdfa4a13dba95cad57f61c65cb5739c) Thanks [@​Damix48](https://redirect.github.com/Damix48)! - Fixed false positive in `noAssignInExpressions` for Svelte `{@​const}` blocks. Assignments in `{@​const name = value}` are now correctly recognized as declarations rather than accidental assignments in expressions. - [#​10080](https://redirect.github.com/biomejs/biome/pull/10080) [`5d8fdac`](https://redirect.github.com/biomejs/biome/commit/5d8fdac6d26987904130c2ef0db797c295922f08) Thanks [@​Damix48](https://redirect.github.com/Damix48)! - Fixed parsing of closing parentheses in Svelte `{#each}` block key expressions. Biome now correctly parses method calls and other parenthesised expressions used as keys. For example, the following snippets are now parsed correctly: ```svelte {#each numbers as number, index (number.toString())} <p>{number}</p> {/each} {#each numbers as number (key(number))} <p>{number}</p> {/each} ``` - [#​10140](https://redirect.github.com/biomejs/biome/pull/10140) [`e7024b9`](https://redirect.github.com/biomejs/biome/commit/e7024b92638090a9b8ccd064e0662f7994164621) Thanks [@​solithcy](https://redirect.github.com/solithcy)! - Fixed [#​10135](https://redirect.github.com/biomejs/biome/issues/10135): Biome no longer crashes on missing Svelte template expressions. The following code snippet longer panics: ```svelte {#if } <p>^ this would previously crash</p> {/if} {@​const } <p> ^ this would also crash</p> ``` - [#​10111](https://redirect.github.com/biomejs/biome/pull/10111) [`7818009`](https://redirect.github.com/biomejs/biome/commit/7818009e23e12758d00665be6faf8471ca0b0027) Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#​9997](https://redirect.github.com/biomejs/biome/issues/9997): [`noDuplicateSelectors`](https://biomejs.dev/linter/rules/no-duplicate-selectors/) no longer reports false positives for selectors inside `@scope` queries. Biome now treats `@scope` as a separate at-rule context, like `@media`, `@supports`, `@container`, and `@starting-style`. The following snippet is no longer flagged as a duplicate: ```css .Example { padding: 0; } @​scope (.theme-dark) { .Example { color: white; } } ``` - [#​9926](https://redirect.github.com/biomejs/biome/pull/9926) [`d62b331`](https://redirect.github.com/biomejs/biome/commit/d62b331726c1b730ca2d1c38325ce6196beee7a4) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the nursery lint rule [`useMathMinMax`](https://biomejs.dev/linter/rules/use-math-min-max/), which prefers `Math.min()` and `Math.max()` over equivalent ternary comparisons. For example, this code: ```js const min = a < b ? a : b; ``` is much more readable when rewritten as: ```js const min = Math.min(a, b); ``` - [#​10115](https://redirect.github.com/biomejs/biome/pull/10115) [`d428d76`](https://redirect.github.com/biomejs/biome/commit/d428d76ba8be7131090c199cefa36613a332e75b) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - [`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/) now flags missing `true`/`false` cases for `boolean` discriminants, including when `boolean` is a union variant. - [#​10125](https://redirect.github.com/biomejs/biome/pull/10125) [`a55a0b6`](https://redirect.github.com/biomejs/biome/commit/a55a0b6fe03f772316b76937b1292096cdc8a661) Thanks [@​bmish](https://redirect.github.com/bmish)! - Fixed a resolver bug where packages that define a typed entry point through `package.json`'s `main` field but omit `types` were ignored during type-aware resolution. Type-aware rules such as [`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/) can now inspect imports from those packages. - [#​10117](https://redirect.github.com/biomejs/biome/pull/10117) [`895e809`](https://redirect.github.com/biomejs/biome/commit/895e809dc799cd6aa70032fbb56dfe0f9c0f6f39) Thanks [@​denizdogan](https://redirect.github.com/denizdogan)! - Added support for the `corner-shape` family of CSS properties and the `superellipse()`/`squircle()` value functions, so [`noUnknownProperty`](https://biomejs.dev/linter/rules/no-unknown-property/) and [`noUnknownFunction`](https://biomejs.dev/linter/rules/no-unknown-function/) no longer flag them as unknown. New known properties: `corner-shape`, `corner-block-end-shape`, `corner-block-start-shape`, `corner-bottom-left-shape`, `corner-bottom-right-shape`, `corner-bottom-shape`, `corner-end-end-shape`, `corner-end-start-shape`, `corner-inline-end-shape`, `corner-inline-start-shape`, `corner-left-shape`, `corner-right-shape`, `corner-start-end-shape`, `corner-start-start-shape`, `corner-top-left-shape`, `corner-top-right-shape`, `corner-top-shape`. New known value functions: `superellipse()`, `squircle()`. - [#​8620](https://redirect.github.com/biomejs/biome/pull/8620) [`8df8f73`](https://redirect.github.com/biomejs/biome/commit/8df8f73ca1c18a688f64f304f0b9089797258a1e) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​8062](https://redirect.github.com/biomejs/biome/issues/8062): Added support for parsing Vue `v-for` directives more accurately. - [#​10191](https://redirect.github.com/biomejs/biome/pull/10191) [`aa055cd`](https://redirect.github.com/biomejs/biome/commit/aa055cd74f82fac691dfa2f65dbfd255213cb884) Thanks [@​guney](https://redirect.github.com/guney)! - Now the rule [`noStaticElementInteractions`](https://biomejs.dev/linter/rules/no-static-element-interactions/) doesn't trigger custom elements. - [#​9757](https://redirect.github.com/biomejs/biome/pull/9757) [`2c62594`](https://redirect.github.com/biomejs/biome/commit/2c62594b84ae62fd5fa130adff917a1bcd8dfddd) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​9099](https://redirect.github.com/biomejs/biome/issues/9099): the HTML formatter collapsing non-text children (inline elements, Svelte expressions, comments) onto a single line when the source had them on separate lines. Biome now preserves the user's intended line breaks for exclusively non-text children. For example, the following Svelte snippet is now preserved instead of being collapsed to `<div>{name}<!-- comment --></div>`: ```svelte <div> {name}<!-- comment --> </div> ``` Similarly, HTML elements like `<span>` inside a `<div>` are now preserved when written on their own line: ```html <div> <span>text</span> </div> ``` - [#​10105](https://redirect.github.com/biomejs/biome/pull/10105) [`e7c1a6d`](https://redirect.github.com/biomejs/biome/commit/e7c1a6d5319908cf613f7fa80667e6981435508d) Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#​10039](https://redirect.github.com/biomejs/biome/issues/10039): [`useReadonlyClassProperties`](https://biomejs.dev/linter/rules/use-readonly-class-properties/) now detects unreassigned private members in class expressions and export default classes, not only in class declarations. The following patterns are now correctly flagged: ```ts const AnonClass = class { #prop = 123; constructor() { console.log(this.#prop); } }; export default class { #prop = 123; constructor() { console.log(this.#prop); } } ``` - [#​10141](https://redirect.github.com/biomejs/biome/pull/10141) [`46a77d0`](https://redirect.github.com/biomejs/biome/commit/46a77d0a35e8dbbcefeca264e8630af83b21f1d9) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - Improved [`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/) to detect conditions that are always truthy because they check built-in global class instances such as `Date`, `Map`, `Set`, `WeakMap`, and `Error`. - [#​10178](https://redirect.github.com/biomejs/biome/pull/10178) [`7b05a89`](https://redirect.github.com/biomejs/biome/commit/7b05a893df8c9c950871b83ff1b3ae28113e8b15) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10177](https://redirect.github.com/biomejs/biome/issues/10177): The HTML parser no longer reports lowercase `html` or `doctype` text as invalid after void elements such as `<br>`. - [#​10155](https://redirect.github.com/biomejs/biome/pull/10155) [`0d4595d`](https://redirect.github.com/biomejs/biome/commit/0d4595dae68b034bd6de3bdfd15437a34fa53cb2) Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#​10045](https://redirect.github.com/biomejs/biome/issues/10045): the CSS formatter no longer compounds indentation inside nested functional pseudo-classes such as `:not(:where(...))`, `:is(:where(...))`, and similar combinations. The same fix also removes one level of unnecessary indentation that was added inside any pseudo-class function whose argument list wrapped onto multiple lines, including `:nth-child(... of ...)`, `::part(...)`, and `:active-view-transition-type(...)`. The following snippet is now correctly formatted, matching Prettier. ```css input:not( :where( [type="submit"], [type="checkbox"], [type="radio"], [type="button"], [type="reset"] ) ) { inline-size: 100%; } ``` - [#​10112](https://redirect.github.com/biomejs/biome/pull/10112) [`6f0251e`](https://redirect.github.com/biomejs/biome/commit/6f0251ea12cddb6edcbf512e5608a7b502762423) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​10110](https://redirect.github.com/biomejs/biome/issues/10110): Biome's parser now accepts surrogate code points in JavaScript string `\u{...}` escapes. - [#​10141](https://redirect.github.com/biomejs/biome/pull/10141) [`46a77d0`](https://redirect.github.com/biomejs/biome/commit/46a77d0a35e8dbbcefeca264e8630af83b21f1d9) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - Improved [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/) to detect `object` return annotations that hide built-in global class instances such as `Date`, `Map`, `Set`, `WeakMap`, and `Error`. - [#​10083](https://redirect.github.com/biomejs/biome/pull/10083) [`4a664c1`](https://redirect.github.com/biomejs/biome/commit/4a664c1c9ebee339ee4a8b971b0a345aa4dbbe70) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added two new options to [`noShadow`](https://biomejs.dev/linter/rules/no-shadow/), both defaulting to `true` to match typescript-eslint's behavior. Fixed [#​9482](https://redirect.github.com/biomejs/biome/issues/9482): Added `ignoreFunctionTypeParameterNameValueShadow` option. When enabled, parameter names inside function type annotations (e.g. `(options: unknown) => void`) are not flagged as shadowing outer variables. Fixed [#​7812](https://redirect.github.com/biomejs/biome/issues/7812): Added `ignoreTypeValueShadow` option. When enabled, a value binding that shares its name with a type-only declaration (type alias or interface) is not flagged, since types and values occupy separate namespaces in TypeScript. - [#​9286](https://redirect.github.com/biomejs/biome/pull/9286) [`52695cf`](https://redirect.github.com/biomejs/biome/commit/52695cf52b3ff42ddfcaef040cfaa00e9a93a4b7) Thanks [@​Hugo-Polloli](https://redirect.github.com/Hugo-Polloli)! - Fixed [#​6316](https://redirect.github.com/biomejs/biome/issues/6316): Biome now resolves Svelte `$store` references to the underlying `store` binding in semantic analysis, preventing false `noUndeclaredVariables` diagnostics when the store is declared. - [#​10188](https://redirect.github.com/biomejs/biome/pull/10188) [`ae659dd`](https://redirect.github.com/biomejs/biome/commit/ae659ddbd317753c4feb5e4d223b9159d272d01b) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added a new nursery rule [`noExcessiveNestedCallbacks`](https://biomejs.dev/linter/rules/no-excessive-nested-callbacks/), which disallows callbacks nested deeper than the configured maximum. - [#​9757](https://redirect.github.com/biomejs/biome/pull/9757) [`2c62594`](https://redirect.github.com/biomejs/biome/commit/2c62594b84ae62fd5fa130adff917a1bcd8dfddd) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​9450](https://redirect.github.com/biomejs/biome/issues/9450): the HTML formatter now correctly preserves multiline formatting for nested `<template>` elements (e.g. `<template #body>`) when the source has children on separate lines. Previously, the children were collapsed onto a single line. ```diff <template> <UModal> - <template #body> <p>content</p> </template> + <template #body> + <p>content</p> + </template> </UModal> </template> ``` - [#​10118](https://redirect.github.com/biomejs/biome/pull/10118) [`c6edcb4`](https://redirect.github.com/biomejs/biome/commit/c6edcb493d42f05179167a8ff3be4549908e9d0b) Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed [#​10024](https://redirect.github.com/biomejs/biome/issues/10024): `biome migrate eslint` correctly migrates `eslint` rules that belong to multiple Biome rules. #### What's Changed - chore(docs): minor updates for contributing and skills by [@​dyc3](https://redirect.github.com/dyc3) in [#​10098](https://redirect.github.com/biomejs/biome/pull/10098) - fix(semantic): resolve Svelte $store references in semantic model by [@​Hugo-Polloli](https://redirect.github.com/Hugo-Polloli) in [#​9286](https://redirect.github.com/biomejs/biome/pull/9286) - fix(format/html): preserve block indentation if already present in some cases by [@​dyc3](https://redirect.github.com/dyc3) in [#​9757](https://redirect.github.com/biomejs/biome/pull/9757) - fix(md/formatter): nested italic by [@​tidefield](https://redirect.github.com/tidefield) in [#​10078](https://redirect.github.com/biomejs/biome/pull/10078) - fix(deps): update [@​biomejs](https://redirect.github.com/biomejs) packages by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10061](https://redirect.github.com/biomejs/biome/pull/10061) - fix(analyzer): useReadonlyClassProperties detects non-declaration class forms by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10105](https://redirect.github.com/biomejs/biome/pull/10105) - fix(noShadow): make sure it doesn't shadow types by [@​ematipico](https://redirect.github.com/ematipico) in [#​10083](https://redirect.github.com/biomejs/biome/pull/10083) - chore: prepare goverance for contractors by [@​ematipico](https://redirect.github.com/ematipico) in [#​10087](https://redirect.github.com/biomejs/biome/pull/10087) - feat(analyze/html): add some utilities to speed up lookups of multiple attributes by [@​dyc3](https://redirect.github.com/dyc3) in [#​10109](https://redirect.github.com/biomejs/biome/pull/10109) - fix(lint): resolve false positive in noAssignInExpressions for Svelte {[@​const](https://redirect.github.com/const)} blocks by [@​Damix48](https://redirect.github.com/Damix48) in [#​10079](https://redirect.github.com/biomejs/biome/pull/10079) - fix(analyzer): noDuplicateSelectors false positives with scope at-rule by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10111](https://redirect.github.com/biomejs/biome/pull/10111) - fix(parser): correctly consume closing parenthesis in Svelte each key expression by [@​Damix48](https://redirect.github.com/Damix48) in [#​10080](https://redirect.github.com/biomejs/biome/pull/10080) - feat(lint/js): add `useTestHooksOnTop` by [@​dyc3](https://redirect.github.com/dyc3) in [#​9393](https://redirect.github.com/biomejs/biome/pull/9393) - fix(deps): update dependency prettier to v3.8.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10062](https://redirect.github.com/biomejs/biome/pull/10062) - fix(parse/js): lex surrogate codepoints in string literal escapes by [@​dyc3](https://redirect.github.com/dyc3) in [#​10112](https://redirect.github.com/biomejs/biome/pull/10112) - fix(analyzer): noUselessEscapeInRegex no longer flags `\\-` as useless by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10116](https://redirect.github.com/biomejs/biome/pull/10116) - feat(css): support corner-shape, superellipse, and squircle by [@​denizdogan](https://redirect.github.com/denizdogan) in [#​10117](https://redirect.github.com/biomejs/biome/pull/10117) - fix(lsp): inform clients that .biome.json(c) should also be watched by [@​dyc3](https://redirect.github.com/dyc3) in [#​10010](https://redirect.github.com/biomejs/biome/pull/10010) - chore(deps): update rust crate jiff to 0.2.24 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10128](https://redirect.github.com/biomejs/biome/pull/10128) - chore(deps): update dependency tombi to v0.9.22 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10127](https://redirect.github.com/biomejs/biome/pull/10127) - fix(resolver): resolve typed package main entries by [@​bmish](https://redirect.github.com/bmish) in [#​10125](https://redirect.github.com/biomejs/biome/pull/10125) - chore(deps): update dependency [@​changesets/cli](https://redirect.github.com/changesets/cli) to v2.31.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10132](https://redirect.github.com/biomejs/biome/pull/10132) - chore(deps): update dependency dprint to v0.54.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10133](https://redirect.github.com/biomejs/biome/pull/10133) - fix(deps): update [@​biomejs](https://redirect.github.com/biomejs) packages by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10130](https://redirect.github.com/biomejs/biome/pull/10130) - chore(deps): update rust crate libc to 0.2.186 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10129](https://redirect.github.com/biomejs/biome/pull/10129) - chore(deps): update rust crate mimalloc to 0.1.50 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​10060](https://redirect.github.com/biomejs/biome/pull/10060) - feat(parse/html/vue): parse v-for better by [@​dyc3](https://redirect.github.com/dyc3) in [#​8620](https://redirect.github.com/biomejs/biome/pull/8620) - feat(parse/html/vue): nested destructuring in v-for by [@​dyc3](https://redirect.github.com/dyc3) in [#​10136](https://redirect.github.com/biomejs/biome/pull/10136) - fix(noCommaOperator): remove vue v-for hack by [@​dyc3](https://redirect.github.com/dyc3) in [#​10137](https://redirect.github.com/biomejs/biome/pull/10137) - fix(10024): eslint generation by [@​Netail](https://redirect.github.com/Netail) in [#​10118](https://redirect.github.com/biomejs/biome/pull/10118) - feat(markdown\_formatter): enable formatter ir debugger by [@​tidefield](https://redirect.github.com/tidefield) in [#​10144](https://redirect.github.com/biomejs/biome/pull/10144) - fix(lint): detect misleading object returns for built-in class instances by [@​minseong0324](https://redirect.github.com/minseong0324) in [#​10141](https://redirect.github.com/biomejs/biome/pull/10141) - fix: svelte missing expression crash by [@​solithcy](https://redirect.github.com/solithcy) in [#​10140](https://redirect.github.com/biomejs/biome/pull/10140) - fix(md/fmt/parser): bom, quotes, trimming by [@​ematipico](https://redirect.github.com/ematipico) in [#​10040](https://redirect.github.com/biomejs/biome/pull/10040) - fix(vue): recognize embedded bindings in v-for directives by [@​dyc3](https://redirect.github.com/dyc3) in [#​10138](https://redirect.github.com/biomejs/biome/pull/10138) - feat(css\_formatter): improve SCSS include argument formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10147](https://redirect.github.com/biomejs/biome/pull/10147) - feat(css\_formatter): align SCSS map closing comments by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10149](https://redirect.github.com/biomejs/biome/pull/10149) - fix(organizeImports): doesn't add a blank line between a never-matched group and a matched group by [@​Conaclos](https://redirect.github.com/Conaclos) in [#​10092](https://redirect.github.com/biomejs/biome/pull/10092) - fix(parser/md): handle vertical tab by [@​ematipico](https://redirect.github.com/ematipico) in [#​10146](https://redirect.github.com/biomejs/biome/pull/10146) - fix(lint): noMisleadingReturnType false positive on union with exhausted boolean by [@​minseong0324](https://redirect.github.com/minseong0324) in [#​10115](https://redirect.github.com/biomejs/biome/pull/10115) - feat(css\_formatter): include SCSS comments by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10150](https://redirect.github.com/biomejs/biome/pull/10150) - refactor(css\_formatter): clarify SCSS include closing comments by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10153](https://redirect.github.com/biomejs/biome/pull/10153) - fix(format/css): align selector list indentation with Prettier by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10155](https://redirect.github.com/biomejs/biome/pull/10155) - fix(lint): noMisleadingReturnType false negative on object keyword by [@​minseong0324](https://redirect.github.com/minseong0324) in [#​10054](https://redirect.github.com/biomejs/biome/pull/10054) - feat(css\_formatter): improve handling of SCSS trailing separator comm… by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10154](https://redirect.github.com/biomejs/biome/pull/10154) - feat(css\_formatter): improve handling of SCSS list trailing separator comments by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10156](https://redirect.github.com/biomejs/biome/pull/10156) - feat(css\_formatter): improve handling of SCSS expression item line comments by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10158](https://redirect.github.com/biomejs/biome/pull/10158) - feat(css\_formatter): improve handling of SCSS `@at-root` selector comments and formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10160](https://redirect.github.com/biomejs/biome/pull/10160) - feat(lint/js): add `noReactStringRefs` by [@​dyc3](https://redirect.github.com/dyc3) in [#​9922](https://redirect.github.com/biomejs/biome/pull/9922) - feat(lint/js): add `useMathMinMax` by [@​dyc3](https://redirect.github.com/dyc3) in [#​9926](https://redirect.github.com/biomejs/biome/pull/9926) - feat(css\_formatter): improve handling of SCSS `@if-else` comments and formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10162](https://redirect.github.com/biomejs/biome/pull/10162) - feat(css\_formatter): improve handling of SCSS `@while` rule formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10164](https://redirect.github.com/biomejs/biome/pull/10164) - feat(css\_formatter): improve handling of SCSS `@for` rule formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10165](https://redirect.github.com/biomejs/biome/pull/10165) - feat(css\_formatter): improve handling of SCSS parenthesized binary expressions formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10167](https://redirect.github.com/biomejs/biome/pull/10167) - fix(assist): useSortedAttributes no longer corrupts nested JSX attributes by [@​jiwon79](https://redirect.github.com/jiwon79) in [#​10163](https://redirect.github.com/biomejs/biome/pull/10163) - feat(css\_formatter): improve handling of SCSS `@each` rule formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10169](https://redirect.github.com/biomejs/biome/pull/10169) - fix(markdown\_parser): blockquote list splitting and tightness by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​9990](https://redirect.github.com/biomejs/biome/pull/9990) - chore(markdown\_parser): remove unused lexer contexts by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10173](https://redirect.github.com/biomejs/biome/pull/10173) - fix(parse/html): relex keywords as text in text contexts by [@​dyc3](https://redirect.github.com/dyc3) in [#​10178](https://redirect.github.com/biomejs/biome/pull/10178) - feat(css\_formatter): improve handling of SCSS list with trailing separator by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10172](https://redirect.github.com/biomejs/biome/pull/10172) - fix(noThisInStatic): don't report `new this()` by [@​dyc3](https://redirect.github.com/dyc3) in [#​10176](https://redirect.github.com/biomejs/biome/pull/10176) - feat(css): support SCSS interpolated values by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10171](https://redirect.github.com/biomejs/biome/pull/10171) - feat(css\_formatter): improve handling of SCSS `@use` and `@forward` rule formatting by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10180](https://redirect.github.com/biomejs/biome/pull/10180) - fix(markdown\_parser): stop nested lazy lists from swallowing fences by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10170](https://redirect.github.com/biomejs/biome/pull/10170) - feat(css): add support for SCSS media query interpolation by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10181](https://redirect.github.com/biomejs/biome/pull/10181) - feat(css\_formatter): improve handling of spacing for SCSS unary expressions and functions by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10182](https://redirect.github.com/biomejs/biome/pull/10182) - feat(lint/js): add `noExcessiveNestedCallbacks` by [@​dyc3](https://redirect.github.com/dyc3) in [#​10188](https://redirect.github.com/biomejs/biome/pull/10188) - fix(markdown\_parser): keep lazy link references as text by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​10189](https://redirect.github.com/biomejs/biome/pull/10189) - fix(lint/a11y/noStaticElementInteractions): exclude custom elements by [@​guney](https://redirect.github.com/guney) in [#​10191](https://redirect.github.com/biomejs/biome/pull/10191) - fix(parse/html): improve the diagnostics when void elements have a closing tag by [@​dyc3](https://redirect.github.com/dyc3) in [#​10157](https://redirect.github.com/biomejs/biome/pull/10157) - ci: release by [@​github-actions](https://redirect.github.com/github-actions)\[bot] in [#​10100](https://redirect.github.com/biomejs/biome/pull/10100) #### New Contributors - [@​Hugo-Polloli](https://redirect.github.com/Hugo-Polloli) made their first contribution in [#​9286](https://redirect.github.com/biomejs/biome/pull/9286) - [@​Damix48](https://redirect.github.com/Damix48) made their first contribution in [#​10079](https://redirect.github.com/biomejs/biome/pull/10079) - [@​denizdogan](https://redirect.github.com/denizdogan) made their first contribution in [#​10117](https://redirect.github.com/biomejs/biome/pull/10117) - [@​solithcy](https://redirect.github.com/solithcy) made their first contribution in [#​10140](https://redirect.github.com/biomejs/biome/pull/10140) - [@​guney](https://redirect.github.com/guney) made their first contribution in [#​10191](https://redirect.github.com/biomejs/biome/pull/10191) **Full Changelog**: <https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.13...@​biomejs/biome@2.4.14> ### [`v2.4.13`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.13): Biome CLI v2.4.13 #### 2.4.13 ##### Patch Changes - [#​9969](https://redirect.github.com/biomejs/biome/pull/9969) [`c5eb92b`](https://redirect.github.com/biomejs/biome/commit/c5eb92ba288ba13698b37e43617eed5339ad7007) Thanks [@​officialasishkumar](https://redirect.github.com/officialasishkumar)! - Added the nursery rule [`noUnnecessaryTemplateExpression`](https://biomejs.dev/linter/rules/no-unnecessary-template-expression/), which disallows template literals that only contain string literal expressions. These can be replaced with a simpler string literal. For example, the following code triggers the rule: ```js const a = `${"hello"}`; // can be 'hello' const b = `${"prefix"}_suffix`; // can be 'prefix_suffix' const c = `${"a"}${"b"}`; // can be 'ab' ``` - [#​10037](https://redirect.github.com/biomejs/biome/pull/10037) [`f785e8c`](https://redirect.github.com/biomejs/biome/commit/f785e8c604879dd3dd17b53aae0e2feef4026c82) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - Fixed [#​9810](https://redirect.github.com/biomejs/biome/issues/9810): [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/) no longer reports false positives on a getter with a matching setter in the same namespace. ```ts class Store { get status(): string { if (Math.random() > 0.5) return "loading"; return "idle"; } set status(v: string) {} } ``` - [#​10084](https://redirect.github.com/biomejs/biome/pull/10084) [`5e2f90c`](https://redirect.github.com/biomejs/biome/commit/5e2f90c045b4bd7006c96a9df123303d6c24e1d8) Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#​10034](https://redirect.github.com/biomejs/biome/issues/10034): [`noUselessEscapeInRegex`](https://biomejs.dev/linter/rules/no-useless-escape-in-regex/) no longer flags escapes of `ClassSetReservedPunctuator` characters (`&`, `!`, `#`, `%`, `,`, `:`, `;`, `<`, `=`, `>`, `@`, `` ` ``, `~`) inside `v`-flag character classes as useless. These characters are reserved as individual code points in `v`-mode, so the escape is required. The following pattern is now considered valid: ```js /[a-z\&]/v; ``` - [#​10063](https://redirect.github.com/biomejs/biome/pull/10063) [`c9ffa16`](https://redirect.github.com/biomejs/biome/commit/c9ffa16491c9f8c003eb945796911564fc981b71) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added extra rule sources from ESLint CSS. `biome migrate eslint` should do a bit better detecting rules in your eslint configurations. - [#​10035](https://redirect.github.com/biomejs/biome/pull/10035) [`946b50e`](https://redirect.github.com/biomejs/biome/commit/946b50e173e8c89a2d2b303cb159a05cbd068767) Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed [#​10032](https://redirect.github.com/biomejs/biome/issues/10032): [useIframeSandbox](https://biomejs.dev/linter/rules/use-iframe-sandbox/) now flags if there's no initializer value. - [#​9865](https://redirect.github.com/biomejs/biome/pull/9865) [`68fb8d4`](https://redirect.github.com/biomejs/biome/commit/68fb8d468c01732c4283a336eca42223983df09b) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the new nursery rule [`useDomNodeTextContent`](https://biomejs.dev/linter/rules/use-dom-node-text-content/), which prefers `textContent` over `innerText` for DOM node text access and destructuring. For example, the following snippet triggers the rule: ```js const foo = node.innerText; ``` - [#​10023](https://redirect.github.com/biomejs/biome/pull/10023) [`bd1e74f`](https://redirect.github.com/biomejs/biome/commit/bd1e74fd80b0cadafd091513950275e0ff75d80f) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added a new nursery rule [`noReactNativeDeepImports`](https://biomejs.dev/linter/rules/no-react-native-deep-imports/) that disallows deep imports from the `react-native` package. Internal paths like `react-native/Libraries/...` are not part of the public API and may change between versions. For example, the following code triggers the rule: ```js import View from "react-native/Libraries/Components/View/View"; ``` - [#​9885](https://redirect.github.com/biomejs/biome/pull/9885) [`3dce737`](https://redirect.github.com/biomejs/biome/commit/3dce737e5050cfda7d2b9be8f809aee417f01196) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added a new nursery rule [`useDomQuerySelector`](https://biomejs.dev/linter/rules/use-dom-query-selector/) that prefers `querySelector()` and `querySelectorAll()` over older DOM query methods such as `getElementById()` and `getElementsByClassName()`. - [#​9995](https://redirect.github.com/biomejs/biome/pull/9995) [`4da9caf`](https://redirect.github.com/biomejs/biome/commit/4da9caf8281473177fac3332610c710b31e89546) Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Fixed [#​9994](https://redirect.github.com/biomejs/biome/issues/9994): Biome now parses nested CSS rules correctly when declarations follow them inside embedded snippets. - [#​10009](https://redirect.github.com/biomejs/biome/pull/10009) [`b41cc5a`](https://redirect.github.com/biomejs/biome/commit/b41cc5a58c74fd6b237352c1772e64e74fcc7546) Thanks [@​Jayllyz](https://redirect.github.com/Jayllyz)! - Fixed [#​10004](https://redirect.github.com/biomejs/biome/issues/10004): [`noComponentHookFactories`](https://biomejs.dev/linter/rules/no-component-hook-factories/) no longer reports false positives for object methods and class methods. - [#​9988](https://redirect.github.com/biomejs/biome/pull/9988) [`eabf54a`](https://redirect.github.com/biomejs/biome/commit/eabf54ad03c6c1d63753a641c8ad1ef385e42d2b) Thanks [@​Netail](https://redirect.github.com/Netail)! - Tweaked the diagnostics range for [useAltText](https://biomejs.dev/linter/rules/use-alt-text), [useButtonType](https://biomejs.dev/linter/rules/use-button-type), [useHtmlLang](https://biomejs.dev/linter/rules/use-html-lang), [useIframeTitle](https://biomejs.dev/linter/rules/use-iframe-title), [useValidAriaRole](https://biomejs.dev/linter/rules/use-valid-aria-role) & [useIfameSandbox](https://biomejs.dev/linter/rules/use-iframe-sandbox) to report on the opening tag instead of the full tag. - [#​10043](https://redirect.github.com/biomejs/biome/pull/10043) [`fc65902`](https://redirect.github.com/biomejs/biome/commit/fc65902f17cd548ae38ff916462291b51a32e356) Thanks [@​mujpao](https://redirect.github.com/mujpao)! - Fixed [#​10003](https://redirect.github.com/biomejs/biome/issues/10003): Biome no longer panics when parsing Svelte files containing `{#}`. - [#​9815](https://redirect.github.com/biomejs/biome/pull/9815) [`5cc83b1`](https://redirect.github.com/biomejs/biome/commit/5cc83b177830bc21dc4d6e18343f58eca4ee0de6) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the new nursery rule [`noLoopFunc`](https://biomejs.dev/linter/rules/no-loop-func/). When enabled, it warns when a function declared inside a loop captures outer variables that can change across iterations. - [#​9702](https://redirect.github.com/biomejs/biome/pull/9702) [`ef470ba`](https://redirect.github.com/biomejs/biome/commit/ef470ba2db119aa52c24f918bcef451cf2770ccb) Thanks [@​ryan-m-walker](https://redirect.github.com/ryan-m-walker)! - Added the nursery rule [`useRegexpTest`](https://biomejs.dev/linter/rules/use-regexp-test/) that enforces `RegExp.prototype.test()` over `String.prototype.match()` and `RegExp.prototype.exec()` in boolean contexts. `test()` returns a boolean directly, avoiding unnecessary computation of match results. **Invalid** ```js if ("hello world".match(/hello/)) { } ``` **Valid** ```js if (/hello/.test("hello world")) { } ``` - [#​9743](https://redirect.github.com/biomejs/biome/pull/9743) [`245307d`](https://redirect.github.com/biomejs/biome/commit/245307dc4ee7af87f62873162107b608084d40f3) Thanks [@​leetdavid](https://redirect.github.com/leetdavid)! - Fixed [#​2245](https://redirect.github.com/biomejs/biome/issues/2245): Svelte `<script>` tag language detection when the `generics` attribute contains `>` characters (e.g., `<script lang="ts" generics="T extends Record<string, unknown>">`). Biome now correctly recognizes TypeScript in such script blocks. - [#​10046](https://redirect.github.com/biomejs/biome/pull/10046) [`0707de7`](https://redirect.github.com/biomejs/biome/commit/0707de7d72f0c5e14f4d5c91524ad2a9d1f50b34) Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Fixed [#​10038](https://redirect.github.com/biomejs/biome/issues/10038): [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/) now sorts imports in TypeScript modules and declaration files. ```diff declare module "mymodule" { - import type { B } from "b"; import type { A } from "a"; + import type { B } from "b"; } ``` - [#​10012](https://redirect.github.com/biomejs/biome/pull/10012) [`94ccca9`](https://redirect.github.com/biomejs/biome/commit/94ccca96800e73732b3f26d7eb21a5e3e025e51e) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added the nursery rule [`noReactNativeLiteralColors`](https://biomejs.dev/linter/rules/no-react-native-literal-colors/), which disallows color literals inside React Native styles. The rule belongs to the `reactNative` domain. It reports properties whose name contains `color` and whose value is a string literal when they appear inside a `StyleSheet.create(...)` call or inside a JSX attribute whose name contains `style`. ```jsx // Invalid const Hello = () => <Text style={{ backgroundColor: "#FFFFFF" }}>hi</Text>; const styles = StyleSheet.create({ text: { color: "red" }, }); ``` ```jsx // Valid const red = "#f00"; const styles = StyleSheet.create({ text: { color: red }, }); ``` - [#​10005](https://redirect.github.com/biomejs/biome/pull/10005) [`131019e`](https://redirect.github.com/biomejs/biome/commit/131019e161b69fd755742ba509b1c51fcb2af183) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added the nursery rule [`noReactNativeRawText`](https://biomejs.dev/linter/rules/no-react-native-raw-text/), which disallows raw text outside of `<Text>` components in React Native. The rule belongs to the new `reactNative` domain. ```jsx // Invalid <View>some text</View> <View>{'some text'}</View> ``` ```jsx // Valid <View> <Text>some text</Text> </View> ``` Additional components can be allowlisted through the `skip` option: ```json { "options": { "skip": ["Title"] } } ``` - [#​9911](https://redirect.github.com/biomejs/biome/pull/9911) [`1603f78`](https://redirect.github.com/biomejs/biome/commit/1603f7893c9e249439fc3c22c02ec1a363cc54b9) Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the nursery rule [`noJsxLeakedDollar`](https://biomejs.dev/linter/rules/no-jsx-leaked-dollar), which flags text nodes with a trailing `$` if the next sibling node is a JSX expression. This could be an unintentional mistake, resulting in a '$' being rendered as text in the output. **Invalid**: ```jsx function MyComponent({ user }) { return <div>Hello ${user.name}</div>; } ``` - [#​9999](https://redirect.github.com/biomejs/biome/pull/9999) [`f42405f`](https://redirect.github.com/biomejs/biome/commit/f42405fca77302bbbca573474c59ae49f027f75d) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - Fixed `noMisleadingReturnType` incorrectly flagging functions with reassigned `let` variables. - [#​10075](https://redirect.github.com/biomejs/biome/pull/10075) [`295f97f`](https://redirect.github.com/biomejs/biome/commit/295f97fd538779eb9cc35b5bf54d37a90e0b5e9b) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Fixed [`#9983`](https://redirect.github.com/biomejs/biome/issues/9983): Biome now parses functions declared inside Svelte `#snippet` blocks without throwing errors. - [#​10006](https://redirect.github.com/biomejs/biome/pull/10006) [`cf4c1c9`](https://redirect.github.com/biomejs/biome/commit/cf4c1c943a53612648d052d843aaf977652c79d6) Thanks [@​minseong0324](https://redirect.github.com/minseong0324)! - Fixed [#​9810](https://redirect.github.com/biomejs/biome/issues/9810): `noMisleadingReturnType` incorrectly flagging nested object literals with widened properties. - [#​10033](https://redirect.github.com/biomejs/biome/pull/10033) [`11ddc05`](https://redirect.github.com/biomejs/biome/commit/11ddc05713a1cb85b6748c865ee9dda91235a5d1) Thanks [@​ematipico](https://redirect.github.com/ematipico)! - Added the nursery rule [`useReactNativePlatformComponents`](https://biomejs.dev/linter/rules/use-react-native-platform-components/) that ensures platform-specific React Native components (e.g. `ProgressBarAndroid`, `ActivityIndicatorIOS`) are only imported in files with a matching platform suffix. It also reports when Android and iOS components are mixed in the same file. The following code triggers the rule when the file does not have an `.android.js` suffix: ```js // file.js import { ProgressBarAndroid } from "react-native"; ``` #### What's Changed - docs(orgnizeImports): revamp user-facing docs by [@​Conaclos](https://redirect.github.com/Conaclos) in [#​9987](https://redirect.github.com/biomejs/biome/pull/9987) - fix(md): code info string, and fmt advancement by [@​ematipico](https://redirect.github.com/ematipico) in [#​9979](https://redirect.github.com/biomejs/biome/pull/9979) - fix(service): detect script language in Svelte files with generics attribute by [@​leetdavid](https://redirect.github.com/leetdavid) in [#​9743](https://redirect.github.com/biomejs/biome/pull/9743) - chore: abstract html tag matcher by [@​Netail](https://redirect.github.com/Netail) in [#​9988](https://redirect.github.com/biomejs/biome/pull/9988) - chore(deps): update rustls-webpki to 0.103.12 by [@​siketyan](https://redirect.github.com/siketyan) in [#​9996](https://redirect.github.com/biomejs/biome/pull/9996) - fix(parser/css): handle nested rules in embedded snippets by [@​siketyan](https://redirect.github.com/siketyan) in [#​9995](https://redirect.github.com/biomejs/biome/pull/9995) - chore: fix some node vulnerabilities by [@​Netail](https://redirect.github.com/Netail) in [#​10001](https://redirect.github.com/biomejs/biome/pull/10001) - chore: fix more node vulnerabilities by [@​Netail](https://redirect.github.com/Netail) in [#​10002](https://redirect.github.com/biomejs/biome/pull/10002) - feat(lint): implement use useRegexpTest nursery rule by [@​ryan-m-walker](https://redirect.github.com/ryan-m-walker) in [#​9702](https://redirect.github.com/biomejs/biome/pull/9702) - feat(css): implement shared CSS scanner for parsing SCSS interpolations and URL bodies by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​9948](https://redirect.github.com/biomejs/biome/pull/9948) - feat(fmt/md): ordered lists and space normalization by [@​ematipico](https://redirect.github.com/ematipico) in [#​9998](https://redirect.github.com/biomejs/biome/pull/9998) - chore: update rand & thin-vec by [@​Netail](https://redirect.github.com/Netail) in [#​10008](https://redirect.github.com/biomejs/biome/pull/10008) - fix(lint/js): false positives in `noComponentHookFactories` by [@​Jayllyz](https://redirect.github.com/Jayllyz) in [#​10009](https://redirect.github.com/biomejs/biome/pull/10009) - feat(lint): add `noReactNativeRawText` by [@​ematipico](https://redirect.github.com/ematipico) in [#​10005](https://redirect.github.com/biomejs/biome/pull/10005) - refactor(css): rename scss declaration and module access syntax by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10014](https://redirect.github.com/biomejs/biome/pull/10014) - fix(markdown\_parser): handle tab-separated container markers by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in [#​9965](https://redirect.github.com/biomejs/biome/pull/9965) - chore: cleanup tests by [@​Netail](https://redirect.github.com/Netail) in [#​10016](https://redirect.github.com/biomejs/biome/pull/10016) - feat(lint/js): add `useDomQuerySelector` by [@​dyc3](https://redirect.github.com/dyc3) in [#​9885](https://redirect.github.com/biomejs/biome/pull/9885) - test(formatter): retain formatter failures in prettier snapshots by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10018](https://redirect.github.com/biomejs/biome/pull/10018) - feat(css): support unquoted concatenation in SCSS interpolation expressions by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10020](https://redirect.github.com/biomejs/biome/pull/10020) - test(css\_formatter): import prettier scss mirror by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10025](https://redirect.github.com/biomejs/biome/pull/10025) - refactor(tests): reorganize SCSS test specs into standalone `scss` module by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10030](https://redirect.github.com/biomejs/biome/pull/10030) - test(prettier-compare): add scss compare support by [@​denbezrukov](https://redirect.github.com/denbezrukov) in [#​10031](https://redirect.github.com/biomejs/biome/pull/10031) - fix(lint): fix false positive in noMisleadingReturnType for mutable bindings by [@​minseong0324](https://redirect.github.com/minseong0324) i > ✂ **Note** > > PR body was truncated to here. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
235590cd47 |
feat: add JSONL support to JSON lexer (#1262)
### Description This PR adds support for JSON Lines (JSONL) to the existing JSON lexer. Because the existing JSON lexer already handles repeating objects natively, this implementation simply maps the \`jsonl\` file extension, alias, and mime type to the \`JSON\` lexer configuration without needing any underlying state machine changes. Inspired by https://github.com/walles/moor/pull/407. ### Changes * **Alias added:** \`jsonl\` * **File extension added:** \`*.jsonl\` * **MIME type added:** \`application/jsonl\` * **Tests:** Added \`jsonl.actual\` and \`jsonl.expected\` validation files to ensure tokens are correctly extracted across newlines in \`.jsonl\` files. ### Testing Ran \`go test ./lexers -run TestLexers\` locally to verify that JSON Lines objects format accurately and consistently. |
||
|
|
f9b5c97433 |
fix(dart): match single-line comments without trailing newline (#1225) (#1261)
Fixes the Dart single-line comment rule so a `// …` comment that ends a file without a trailing newline is tokenized as `CommentSingle` instead of falling through to the operator/name rules. `//.*?\n` → `//[^\n]*\n?` in `lexers/embedded/dart.xml`: - `\n?` makes the trailing newline optional so final-line comments at EOF match. - `[^\n]*` (instead of `.*?`) keeps the pattern correct under `<dot_all>true</dot_all>`, where `.` would otherwise match `\n`. - Mirrors the pattern already used in `lexers/embedded/kotlin.xml`. Before: `printf '%s' '// test'` → `Operator / Operator / Text / Name` After: `printf '%s' '// test'` → `CommentSingle "// test"` Fixes #1225 --- Happy to address any feedback. Wanted to flag because the prior fix at #1243 was closed without comments, so I wasn't sure if there was something specific blocking it. |
||
|
|
097f8e9ea4 |
Mention Arturo in README (#1256)
Arturo support was added in
|
||
|
|
d46ce60ea1 |
feat(markdown): highlight frontmatter and comments (#1245)
Adds Markdown frontmatter and HTML comment highlighting, including a dedicated frontmatter split path for top-of-file YAML blocks. Also updates gruvbox themes so frontmatter tokens render consistently, with tests covering the new tokenization. |
||
|
|
f786b2a4a2 |
feat(lexers): add support for LilyPond (#1255)
Add LilyPond support (see #809) based on the pygments lexer. |
||
|
|
0a02b9816f |
chore(deps): update actions/checkout digest to de0fac2 (#1212)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) ([changelog](https://redirect.github.com/actions/checkout/compare/8e8c483db84b4bee98b60c0593521ed34d9990e8..de0fac2e4500dabe0009e67214ff5f5447ce83dd)) | action | digest | `8e8c483` → `de0fac2` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45NS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMTEwLjIiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
c55009e353 |
Fix AGENTS.md referencing a non-existent scripts directory (#1231)
AGENTS.md referenced `./scripts`, which doesn't exist. This updates the file to reference `./_tools`. |
||
|
|
c5e763e1a3 |
Improve protobuf lexer (#1253)
This takes a pass at adding editions support to the protobuf lexer, alongside a couple other minor tweaks. Added some additional test files for editions 2023/2024. Worked on this with `claude`, comparing against the [tree-sitter-proto repository](https://github.com/coder3101/tree-sitter-proto) I help to maintain. Open to any suggestions. Thanks for the project — using it personally between `hugo` and my own little toy [`buftui`](https://github.com/stefanvanburen/buftui) project. |
||
|
|
113cd0ee34 |
Add Arturo lexer (#1232)
This is a port of `pygments.lexers.arturo` from Pygments. |
||
|
|
4498d71bf4 |
chore(deps): update dependency binaryen to v129 (#1238)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [binaryen](https://redirect.github.com/WebAssembly/binaryen) | major | `125` → `129` | --- ### Release Notes <details> <summary>WebAssembly/binaryen (binaryen)</summary> ### [`v129`](https://redirect.github.com/WebAssembly/binaryen/blob/HEAD/CHANGELOG.md#v129) - Add a `BinaryenDataSegmentRef` type to the C API. ([#​8286](https://redirect.github.com/WebAssembly/binaryen/issues/8286)) - Add `BinaryenGetDataSegment` and `BinaryenGetDataSegmentByIndex` to the C API, which allow looking up a data segment by name or index. - Add `BinaryenDataSegmentGetName` to the C API, which allows looking up a data segment's name. - Convert `BinaryenGetMemorySegmentByteOffset`, `BinaryenGetMemorySegmentByteLength`, `BinaryenGetMemorySegmentPassive` and `BinaryenCopyMemorySegmentData` to take a `BinaryenDataSegmentRef` instead of a name. - Add `module.getDataSegment`, `module.getDataSegmentByIndex` to the JS API, which allows looking up a data segment by name or index. - Convert `module.getMemorySegmentInfo` to take a data segment reference instead of a name, and return the name as part of the info. - Add support for non-nullable table types and initialization expressions for tables. This comes with a breaking change to C API: `BinaryenAddTable` takes an additional `BinaryenExpressionRef` parameter to provide an initialization expression. This may be set to NULL for tables without an initializer. In JS this parameter is optional and so is not breaking. ([#​8405](https://redirect.github.com/WebAssembly/binaryen/issues/8405)) - \[multibyte] Add multibyte array store and load instructions. ([#​8059](https://redirect.github.com/WebAssembly/binaryen/issues/8059), [#​8504](https://redirect.github.com/WebAssembly/binaryen/issues/8504)) - MinifyImportsAndExports now has a new output format using JSON. This was changed while fixing bugs with colliding module names (to avoid two breaking changes to the output). ([#​8550](https://redirect.github.com/WebAssembly/binaryen/issues/8550)) - Update from C++17 to C++20 ([#​8218](https://redirect.github.com/WebAssembly/binaryen/issues/8218)) ### [`v128`](https://redirect.github.com/WebAssembly/binaryen/blob/HEAD/CHANGELOG.md#v128) - (bugfix release) ### [`v127`](https://redirect.github.com/WebAssembly/binaryen/blob/HEAD/CHANGELOG.md#v127) - Implement the Custom Page Sizes proposal. ([#​8307](https://redirect.github.com/WebAssembly/binaryen/issues/8307)) - New intrinsic: `@binaryen.idempotent`. ([#​8354](https://redirect.github.com/WebAssembly/binaryen/issues/8354)) - Add --strip-debug option to wasm-split ([#​8432](https://redirect.github.com/WebAssembly/binaryen/issues/8432)) - The emscripten build of binaryen no longer targets pure JS (via wasm2js) by default. This allows us to enable WASM\_BIGINT and other features that wasm2js does not support. There is now just a single binaryen\_js target. It should still be possible to inject `-sWASM=0` as a linker flag but this is not officially supported. ([#​7995](https://redirect.github.com/WebAssembly/binaryen/issues/7995)) - As part of enabling the `WASM_BIGINT` in the emscripten build the JS API for manipulating 64-bit values was changed. These APIs, such as `i64.const` and `setValueI64`, previously took a hi/low pair but now take a single value which can be bigint or a number. Passing two values to these APIs will now trigger an assertion. ([#​7984](https://redirect.github.com/WebAssembly/binaryen/issues/7984)) ### [`v126`](https://redirect.github.com/WebAssembly/binaryen/blob/HEAD/CHANGELOG.md#v126) - New intrinsic: `@binaryen.removable.if.unused`. ([#​8268](https://redirect.github.com/WebAssembly/binaryen/issues/8268)) - New intrinsic: `@binaryen.js.called`. ([#​8324](https://redirect.github.com/WebAssembly/binaryen/issues/8324)) - Add a pass to remove toolchain annotations, `--strip-toolchain-annotations`, for the above two intrinsics and future ones. ([#​8301](https://redirect.github.com/WebAssembly/binaryen/issues/8301)) - Add a pass to remove relaxed SIMD instructions, `--remove-relaxed-simd` ([#​8300](https://redirect.github.com/WebAssembly/binaryen/issues/8300)) - JS API: Throw useful exceptions on parse errors in binaryen.js, rather than fatally error and shut down the entire process. ([#​8264](https://redirect.github.com/WebAssembly/binaryen/issues/8264)) - Implement function-level inlining hints (previously we only supported this annotation on calls, not functions themselves). ([#​8265](https://redirect.github.com/WebAssembly/binaryen/issues/8265)) - Update C and JS libraries with relaxed atomics support ([#​8248](https://redirect.github.com/WebAssembly/binaryen/issues/8248)) - wasm-split: Export/Import only necessary elements, avoiding bloat. ([#​8221](https://redirect.github.com/WebAssembly/binaryen/issues/8221)) - Use `std::quick_exit` in `wasm-opt` etc. tools, to skip cleanup. ([#​8212](https://redirect.github.com/WebAssembly/binaryen/issues/8212)) - The C API now has separate functions for `CallRef` and `ReturnCallRef` matching the semantics of `Call` and `ReturnCall` ([#​8121](https://redirect.github.com/WebAssembly/binaryen/issues/8121)). - Breaking changes to the C and JS APIs related to atomic operations, in order to support the relaxed atomics proposal (currently a part of the [shared everything threads proposal](https://redirect.github.com/WebAssembly/shared-everything-threads)) ([#​8248](https://redirect.github.com/WebAssembly/binaryen/issues/8248)). - `setAtomic` on atomic loads/stores is removed in favor of `setMemoryOrder`. `BinaryenLoadSetAtomic(expr, false)` / `load.setAtomic(false)` may be replaced with `BinaryenLoadSetMemoryOrder(expr, BinaryenMemoryOrderUnordered())`, `BinaryenLoadSetAtomic(expr, true)` / `load.setAtomic(true)` may be replaced with `BinaryenLoadSetMemoryOrder(expr, BinaryenMemoryOrderSeqCst())`, and likewise for `Store`s. In addition to Unordered and SeqCst, these functions support AcqRel which implements acquire/release semantics. - Likewise `BinaryenAtomicLoad`, `BinaryenAtomicStore`, `BinaryenAtomicRMW`, and `BinaryenAtomicCmpxchg` are updated with an additional `BinaryenMemoryOrder` param. The functions formerly implicitly used `BinaryenMemoryOrderSeqCst()`. In JS this param is optional and thus not breaking. </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/alecthomas/chroma). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
885f9128d4 |
Added f4 to "Projects using Chroma" list (#1242)
Fixes #1241 |
||
|
|
c42c9ef421 |
Update java lexer (#1254)
Generated from pygments 2.2.0, incorporating the changes introduced by https://github.com/pygments/pygments/pull/2955 ```sh uv run --script _tools/pygments2chroma_xml.py pygments.lexers.jvm.JavaLexer > lexers/embedded/java.xml ``` |