Cap ordered list mark at 999,999,999#19351
Conversation
✅ Deploy Preview for prettier ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
commit: |
| : node.start + path.index) + | ||
| : // 999,999,999 is the maximum number that can be parsed as a list item number as intended in CommonMark | ||
| // https://spec.commonmark.org/0.31.2/#ordered-list-marker | ||
| Math.min(node.start + path.index, 999_999_999)) + |
There was a problem hiding this comment.
Instead of Math.min, how about print the original when some list item mark (start +index) is greater than 999,999,999?
There was a problem hiding this comment.
AST doesn't retain the original number of each list item. (only that of the first item) The current method is the easiest.
There was a problem hiding this comment.
Maybe we can remove path.isFirst branch? node.start + path.index should work for first element too.
|
If you're not happy with the formatting algorithm for MDX v1, I'm prepared to just remove it and make it only for Markdown. |
That should work, the linked issue is just an edge case, it's fine to wait until the mdx parser upgrade too. |
|
I removed the change on MDX v1 to prevent conflicts with the |
|
The current MDXv1 should not use this path. |
What do you mean? |
|
I think MDXv1 uses |
Thank you! You are right, didn't notice there are two It doesn't really matter much. All the |
|
I'm glad I suspected that. |
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | [`3.9.4` → `3.9.5`](https://renovatebot.com/diffs/npm/prettier/3.9.4/3.9.5) |  |  | --- ### Release Notes <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.9.5`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#395) [Compare Source](prettier/prettier@3.9.4...3.9.5) [diff](prettier/prettier@3.9.4...3.9.5) ##### Markdown: Cap ordered list mark at 999,999,999 ([#​19351](prettier/prettier#19351) by [@​tats-u](https://github.com/tats-u)) CommonMark parsers only support ordered list item numbers up to 999,999,999. With this change, Prettier now caps the ordered list item number at 999,999,999 to ensure that the output is correctly parsed as an ordered list by CommonMark parsers. Numbers larger than 999,999,999 are not parsed as list item numbers and are left unchanged in the output: <!-- prettier-ignore --> ```markdown <!-- Input --> 999999998. text 999999998. text 999999998. text 999999998. text 1234567890123456789012) text <!-- Prettier 3.9.4 --> 999999998. text 999999999. text 1000000000. text 1000000001. text 1234567890123456789012) text <!-- Prettier 3.9.5 --> 999999998. text 999999999. text 999999999. text 999999999. text 1234567890123456789012) text ``` ##### Markdown: Avoid corrupting empty link with title ([#​19487](prettier/prettier#19487) by [@​andersk](https://github.com/andersk)) Do not remove `<>` from an inline link or image with an empty URL and a title, as this removal would change its interpretation. <!-- prettier-ignore --> ```md <!-- Input --> [link](<> "title") <!-- Prettier 3.9.4 --> [link]( "title") <!-- Prettier 3.9.5 --> [link](<> "title") ``` ##### Less: Remove extra spaces after `[` in map lookups ([#​19503](prettier/prettier#19503) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input .foo { color: #theme[ primary]; color: #theme[@​name]; color: #theme[@​@​name]; } // Prettier 3.9.4 .foo { color: #theme[ primary]; color: #theme[ @​name]; color: #theme[ @​@​name]; } // Prettier 3.9.5 .foo { color: #theme[primary]; color: #theme[@​name]; color: #theme[@​@​name]; } ``` ##### CSS: Prevent addition space in `type()` with `+` ([#​19516](prettier/prettier#19516) by [@​bigandy](https://github.com/bigandy)) This fixes the addition space before `+` in CSS `type()` declaration. For example `type(<number>+)` was being converted into `type(<number> +)` which is invalid CSS and does not work. <!-- prettier-ignore --> ```css /* Input */ div { border-radius: attr(br type(<length>+)); } /* Prettier 3.9.4 */ div { border-radius: attr(br type(<length> +)); } /* Prettier 3.9.5 */ div { border-radius: attr(br type(<length>+)); } ``` ##### Less: Remove spaces between merge markers and colons ([#​19517](prettier/prettier#19517) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input a { box-shadow + : 0 0 1px #​000; } // Prettier 3.9.4 a { box-shadow+ : 0 0 1px #​000; } // Prettier 3.9.5 a { box-shadow+: 0 0 1px #​000; } ``` ##### Markdown: Preserve wiki links with aliases ([#​19527](prettier/prettier#19527) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```markdown <!-- Input --> [[Foo:Bar]] <!-- Prettier 3.9.4 --> [[Foo]] <!-- Prettier 3.9.5 --> [[Foo:Bar]] ``` ##### TypeScript: Fix comments being dropped on shorthand `type` import/export specifiers ([#​19565](prettier/prettier#19565) by [@​kirkwaiblinger](https://github.com/kirkwaiblinger)) <!-- prettier-ignore --> ```tsx // Input export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; // Prettier 3.9.4 Error: Comment "comment" was not printed. Please report this error! // Prettier 3.9.5 export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; ``` ##### Miscellaneous: Preserving comments' `placement` property ([#​19567](prettier/prettier#19567) by [@​Janther](https://github.com/Janther)) Prettier\@​3.9.0 deleted an undocumented property on comments, which was already used by plugins, `comment.placement` is now available again after comment attach. ##### Flow: Stop enforcing empty module declaration to break ([#​19568](prettier/prettier#19568) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```flow // Input declare module "foo" {} // Prettier 3.9.4 declare module "foo" { } // Prettier 3.9.5 declare module "foo" {} ``` ##### Angular: Support expression for exhaustive typechecking ([#​19571](prettier/prettier#19571) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```html <!-- Input --> @​switch (state.mode) { @​default never(state); } <!-- Prettier 3.9.4 --> @​switch (state.mode) { @​default never; } <!-- Prettier 3.9.5 --> @​switch (state.mode) { @​default never(state); } ``` ##### TypeScript: Ignore comments inside mapped type when checking type parameter comments ([#​19572](prettier/prettier#19572) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input foo<{ // comment [key in keyof Foo]: number }>(); // Prettier 3.9.4 foo< { // comment [key in keyof Foo]: number; } >(); // Prettier 3.9.5 foo<{ // comment [key in keyof Foo]: number; }>(); ``` ##### Less: Fix adjacent block comments being corrupted ([#​19574](prettier/prettier#19574) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input /* a *//* b */ /* a */* { color: red; } // Prettier 3.9.4 /* a */ /* b */ /* a * { color: red; } // Prettier 3.9.5 /* a */ /* b */ /* a */ * { color: red; } ``` ##### JavaScript: Handle dangling comments in `SwitchStatement` ([#​19581](prettier/prettier#19581) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input switch (foo) { // comment } // Prettier 3.9.4 switch ( foo // comment ) { } // Prettier 3.9.5 switch (foo) { // comment } ``` ##### TypeScript: Remove space in comment-only object type ([#​19583](prettier/prettier#19583) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input var foo = { /* comment */ }; type Foo = { /* comment */ }; // Prettier 3.9.4 var foo = {/* comment */}; type Foo = { /* comment */ }; // Prettier 3.9.5 var foo = {/* comment */}; type Foo = {/* comment */}; ``` </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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 has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44MS4zIiwidXBkYXRlZEluVmVyIjoiNDIuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Reviewed-on: https://git.3caravelle.net/3Caravelle/renovate/pulls/45 Co-authored-by: Renovate Bot <[email protected]> Co-committed-by: Renovate Bot <[email protected]>
…fleeting-plugin-hetzner!390) This MR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | `3.9.4` → `3.9.5` |  |  | Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://github.com/renovatebot/renovate/discussions/new) if you have any questions. --- ### Release Notes <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.9.5`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#395) [Compare Source](prettier/prettier@3.9.4...3.9.5) [diff](prettier/prettier@3.9.4...3.9.5) ##### Markdown: Cap ordered list mark at 999,999,999 ([#​19351](prettier/prettier#19351) by [@​tats-u](https://github.com/tats-u)) CommonMark parsers only support ordered list item numbers up to 999,999,999. With this change, Prettier now caps the ordered list item number at 999,999,999 to ensure that the output is correctly parsed as an ordered list by CommonMark parsers. Numbers larger than 999,999,999 are not parsed as list item numbers and are left unchanged in the output: <!-- prettier-ignore --> ```markdown <!-- Input --> 999999998. text 999999998. text 999999998. text 999999998. text 1234567890123456789012) text <!-- Prettier 3.9.4 --> 999999998. text 999999999. text 1000000000. text 1000000001. text 1234567890123456789012) text <!-- Prettier 3.9.5 --> 999999998. text 999999999. text 999999999. text 999999999. text 1234567890123456789012) text ``` ##### Markdown: Avoid corrupting empty link with title ([#​19487](prettier/prettier#19487) by [@​andersk](https://github.com/andersk)) Do not remove `<>` from an inline link or image with an empty URL and a title, as this removal would change its interpretation. <!-- prettier-ignore --> ```md <!-- Input --> [link](<> "title") <!-- Prettier 3.9.4 --> [link]( "title") <!-- Prettier 3.9.5 --> [link](<> "title") ``` ##### Less: Remove extra spaces after `[` in map lookups ([#​19503](prettier/prettier#19503) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input .foo { color: #theme[ primary]; color: #theme[@​name]; color: #theme[@​@​name]; } // Prettier 3.9.4 .foo { color: #theme[ primary]; color: #theme[ @​name]; color: #theme[ @​@​name]; } // Prettier 3.9.5 .foo { color: #theme[primary]; color: #theme[@​name]; color: #theme[@​@​name]; } ``` ##### CSS: Prevent addition space in `type()` with `+` ([#​19516](prettier/prettier#19516) by [@​bigandy](https://github.com/bigandy)) This fixes the addition space before `+` in CSS `type()` declaration. For example `type(<number>+)` was being converted into `type(<number> +)` which is invalid CSS and does not work. <!-- prettier-ignore --> ```css /* Input */ div { border-radius: attr(br type(<length>+)); } /* Prettier 3.9.4 */ div { border-radius: attr(br type(<length> +)); } /* Prettier 3.9.5 */ div { border-radius: attr(br type(<length>+)); } ``` ##### Less: Remove spaces between merge markers and colons ([#​19517](prettier/prettier#19517) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input a { box-shadow + : 0 0 1px #​000; } // Prettier 3.9.4 a { box-shadow+ : 0 0 1px #​000; } // Prettier 3.9.5 a { box-shadow+: 0 0 1px #​000; } ``` ##### Markdown: Preserve wiki links with aliases ([#​19527](prettier/prettier#19527) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```markdown <!-- Input --> [[Foo:Bar]] <!-- Prettier 3.9.4 --> [[Foo]] <!-- Prettier 3.9.5 --> [[Foo:Bar]] ``` ##### TypeScript: Fix comments being dropped on shorthand `type` import/export specifiers ([#​19565](prettier/prettier#19565) by [@​kirkwaiblinger](https://github.com/kirkwaiblinger)) <!-- prettier-ignore --> ```tsx // Input export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; // Prettier 3.9.4 Error: Comment "comment" was not printed. Please report this error! // Prettier 3.9.5 export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; ``` ##### Miscellaneous: Preserving comments' `placement` property ([#​19567](prettier/prettier#19567) by [@​Janther](https://github.com/Janther)) Prettier\@​3.9.0 deleted an undocumented property on comments, which was already used by plugins, `comment.placement` is now available again after comment attach. ##### Flow: Stop enforcing empty module declaration to break ([#​19568](prettier/prettier#19568) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```flow // Input declare module "foo" {} // Prettier 3.9.4 declare module "foo" { } // Prettier 3.9.5 declare module "foo" {} ``` ##### Angular: Support expression for exhaustive typechecking ([#​19571](prettier/prettier#19571) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```html <!-- Input --> @​switch (state.mode) { @​default never(state); } <!-- Prettier 3.9.4 --> @​switch (state.mode) { @​default never; } <!-- Prettier 3.9.5 --> @​switch (state.mode) { @​default never(state); } ``` ##### TypeScript: Ignore comments inside mapped type when checking type parameter comments ([#​19572](prettier/prettier#19572) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input foo<{ // comment [key in keyof Foo]: number }>(); // Prettier 3.9.4 foo< { // comment [key in keyof Foo]: number; } >(); // Prettier 3.9.5 foo<{ // comment [key in keyof Foo]: number; }>(); ``` ##### Less: Fix adjacent block comments being corrupted ([#​19574](prettier/prettier#19574) by [@​kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input /* a *//* b */ /* a */* { color: red; } // Prettier 3.9.4 /* a */ /* b */ /* a * { color: red; } // Prettier 3.9.5 /* a */ /* b */ /* a */ * { color: red; } ``` ##### JavaScript: Handle dangling comments in `SwitchStatement` ([#​19581](prettier/prettier#19581) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input switch (foo) { // comment } // Prettier 3.9.4 switch ( foo // comment ) { } // Prettier 3.9.5 switch (foo) { // comment } ``` ##### TypeScript: Remove space in comment-only object type ([#​19583](prettier/prettier#19583) by [@​fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input var foo = { /* comment */ }; type Foo = { /* comment */ }; // Prettier 3.9.4 var foo = {/* comment */}; type Foo = { /* comment */ }; // Prettier 3.9.5 var foo = {/* comment */}; type Foo = {/* comment */}; ``` </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjMuMyIsInVwZGF0ZWRJblZlciI6IjQzLjI2My4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
| datasource | package | from | to | | ---------- | -------- | ----- | ----- | | npm | prettier | 3.9.4 | 3.9.5 | ## [v3.9.5](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#395) [diff](prettier/prettier@3.9.4...3.9.5) ##### Markdown: Cap ordered list mark at 999,999,999 ([#19351](prettier/prettier#19351) by [@tats-u](https://github.com/tats-u)) CommonMark parsers only support ordered list item numbers up to 999,999,999. With this change, Prettier now caps the ordered list item number at 999,999,999 to ensure that the output is correctly parsed as an ordered list by CommonMark parsers. Numbers larger than 999,999,999 are not parsed as list item numbers and are left unchanged in the output: <!-- prettier-ignore --> ```markdown <!-- Input --> 999999998. text 999999998. text 999999998. text 999999998. text 1234567890123456789012) text <!-- Prettier 3.9.4 --> 999999998. text 999999999. text 1000000000. text 1000000001. text 1234567890123456789012) text <!-- Prettier 3.9.5 --> 999999998. text 999999999. text 999999999. text 999999999. text 1234567890123456789012) text ``` ##### Markdown: Avoid corrupting empty link with title ([#19487](prettier/prettier#19487) by [@andersk](https://github.com/andersk)) Do not remove `<>` from an inline link or image with an empty URL and a title, as this removal would change its interpretation. <!-- prettier-ignore --> ```md <!-- Input --> [link](<> "title") <!-- Prettier 3.9.4 --> [link]( "title") <!-- Prettier 3.9.5 --> [link](<> "title") ``` ##### Less: Remove extra spaces after `[` in map lookups ([#19503](prettier/prettier#19503) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input .foo { color: #theme[ primary]; color: #theme[@name]; color: #theme[@@name]; } // Prettier 3.9.4 .foo { color: #theme[ primary]; color: #theme[ @name]; color: #theme[ @@name]; } // Prettier 3.9.5 .foo { color: #theme[primary]; color: #theme[@name]; color: #theme[@@name]; } ``` ##### CSS: Prevent addition space in `type()` with `+` ([#19516](prettier/prettier#19516) by [@bigandy](https://github.com/bigandy)) This fixes the addition space before `+` in CSS `type()` declaration. For example `type(<number>+)` was being converted into `type(<number> +)` which is invalid CSS and does not work. <!-- prettier-ignore --> ```css /* Input */ div { border-radius: attr(br type(<length>+)); } /* Prettier 3.9.4 */ div { border-radius: attr(br type(<length> +)); } /* Prettier 3.9.5 */ div { border-radius: attr(br type(<length>+)); } ``` ##### Less: Remove spaces between merge markers and colons ([#19517](prettier/prettier#19517) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input a { box-shadow + : 0 0 1px #000; } // Prettier 3.9.4 a { box-shadow+ : 0 0 1px #000; } // Prettier 3.9.5 a { box-shadow+: 0 0 1px #000; } ``` ##### Markdown: Preserve wiki links with aliases ([#19527](prettier/prettier#19527) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```markdown <!-- Input --> [[Foo:Bar]] <!-- Prettier 3.9.4 --> [[Foo]] <!-- Prettier 3.9.5 --> [[Foo:Bar]] ``` ##### TypeScript: Fix comments being dropped on shorthand `type` import/export specifiers ([#19565](prettier/prettier#19565) by [@kirkwaiblinger](https://github.com/kirkwaiblinger)) <!-- prettier-ignore --> ```tsx // Input export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; // Prettier 3.9.4 Error: Comment "comment" was not printed. Please report this error! // Prettier 3.9.5 export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; ``` ##### Miscellaneous: Preserving comments' `placement` property ([#19567](prettier/prettier#19567) by [@Janther](https://github.com/Janther)) Prettier\@3.9.0 deleted an undocumented property on comments, which was already used by plugins, `comment.placement` is now available again after comment attach. ##### Flow: Stop enforcing empty module declaration to break ([#19568](prettier/prettier#19568) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```flow // Input declare module "foo" {} // Prettier 3.9.4 declare module "foo" { } // Prettier 3.9.5 declare module "foo" {} ``` ##### Angular: Support expression for exhaustive typechecking ([#19571](prettier/prettier#19571) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```html <!-- Input --> @switch (state.mode) { @default never(state); } <!-- Prettier 3.9.4 --> @switch (state.mode) { @default never; } <!-- Prettier 3.9.5 --> @switch (state.mode) { @default never(state); } ``` ##### TypeScript: Ignore comments inside mapped type when checking type parameter comments ([#19572](prettier/prettier#19572) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input foo<{ // comment [key in keyof Foo]: number }>(); // Prettier 3.9.4 foo< { // comment [key in keyof Foo]: number; } >(); // Prettier 3.9.5 foo<{ // comment [key in keyof Foo]: number; }>(); ``` ##### Less: Fix adjacent block comments being corrupted ([#19574](prettier/prettier#19574) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input /* a *//* b */ /* a */* { color: red; } // Prettier 3.9.4 /* a */ /* b */ /* a * { color: red; } // Prettier 3.9.5 /* a */ /* b */ /* a */ * { color: red; } ``` ##### JavaScript: Handle dangling comments in `SwitchStatement` ([#19581](prettier/prettier#19581) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input switch (foo) { // comment } // Prettier 3.9.4 switch ( foo // comment ) { } // Prettier 3.9.5 switch (foo) { // comment } ``` ##### TypeScript: Remove space in comment-only object type ([#19583](prettier/prettier#19583) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input var foo = { /* comment */ }; type Foo = { /* comment */ }; // Prettier 3.9.4 var foo = {/* comment */}; type Foo = { /* comment */ }; // Prettier 3.9.5 var foo = {/* comment */}; type Foo = {/* comment */}; ```
##### [v3.9.5](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#395) [diff](prettier/prettier@3.9.4...3.9.5) ##### Markdown: Cap ordered list mark at 999,999,999 ([#19351](prettier/prettier#19351) by [@tats-u](https://github.com/tats-u)) CommonMark parsers only support ordered list item numbers up to 999,999,999. With this change, Prettier now caps the ordered list item number at 999,999,999 to ensure that the output is correctly parsed as an ordered list by CommonMark parsers. Numbers larger than 999,999,999 are not parsed as list item numbers and are left unchanged in the output: <!-- prettier-ignore --> ```markdown <!-- Input --> 999999998. text 999999998. text 999999998. text 999999998. text 1234567890123456789012) text <!-- Prettier 3.9.4 --> 999999998. text 999999999. text 1000000000. text 1000000001. text 1234567890123456789012) text <!-- Prettier 3.9.5 --> 999999998. text 999999999. text 999999999. text 999999999. text 1234567890123456789012) text ``` ##### Markdown: Avoid corrupting empty link with title ([#19487](prettier/prettier#19487) by [@andersk](https://github.com/andersk)) Do not remove `<>` from an inline link or image with an empty URL and a title, as this removal would change its interpretation. <!-- prettier-ignore --> ```md <!-- Input --> [link](<> "title") <!-- Prettier 3.9.4 --> [link]( "title") <!-- Prettier 3.9.5 --> [link](<> "title") ``` ##### Less: Remove extra spaces after `[` in map lookups ([#19503](prettier/prettier#19503) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input .foo { color: #theme[ primary]; color: #theme[@name]; color: #theme[@@name]; } // Prettier 3.9.4 .foo { color: #theme[ primary]; color: #theme[ @name]; color: #theme[ @@name]; } // Prettier 3.9.5 .foo { color: #theme[primary]; color: #theme[@name]; color: #theme[@@name]; } ``` ##### CSS: Prevent addition space in `type()` with `+` ([#19516](prettier/prettier#19516) by [@bigandy](https://github.com/bigandy)) This fixes the addition space before `+` in CSS `type()` declaration. For example `type(<number>+)` was being converted into `type(<number> +)` which is invalid CSS and does not work. <!-- prettier-ignore --> ```css /* Input */ div { border-radius: attr(br type(<length>+)); } /* Prettier 3.9.4 */ div { border-radius: attr(br type(<length> +)); } /* Prettier 3.9.5 */ div { border-radius: attr(br type(<length>+)); } ``` ##### Less: Remove spaces between merge markers and colons ([#19517](prettier/prettier#19517) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input a { box-shadow + : 0 0 1px #000; } // Prettier 3.9.4 a { box-shadow+ : 0 0 1px #000; } // Prettier 3.9.5 a { box-shadow+: 0 0 1px #000; } ``` ##### Markdown: Preserve wiki links with aliases ([#19527](prettier/prettier#19527) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```markdown <!-- Input --> [[Foo:Bar]] <!-- Prettier 3.9.4 --> [[Foo]] <!-- Prettier 3.9.5 --> [[Foo:Bar]] ``` ##### TypeScript: Fix comments being dropped on shorthand `type` import/export specifiers ([#19565](prettier/prettier#19565) by [@kirkwaiblinger](https://github.com/kirkwaiblinger)) <!-- prettier-ignore --> ```tsx // Input export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; // Prettier 3.9.4 Error: Comment "comment" was not printed. Please report this error! // Prettier 3.9.5 export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; ``` ##### Miscellaneous: Preserving comments' `placement` property ([#19567](prettier/prettier#19567) by [@Janther](https://github.com/Janther)) Prettier\@3.9.0 deleted an undocumented property on comments, which was already used by plugins, `comment.placement` is now available again after comment attach. ##### Flow: Stop enforcing empty module declaration to break ([#19568](prettier/prettier#19568) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```flow // Input declare module "foo" {} // Prettier 3.9.4 declare module "foo" { } // Prettier 3.9.5 declare module "foo" {} ``` ##### Angular: Support expression for exhaustive typechecking ([#19571](prettier/prettier#19571) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```html <!-- Input --> @switch (state.mode) { @default never(state); } <!-- Prettier 3.9.4 --> @switch (state.mode) { @default never; } <!-- Prettier 3.9.5 --> @switch (state.mode) { @default never(state); } ``` ##### TypeScript: Ignore comments inside mapped type when checking type parameter comments ([#19572](prettier/prettier#19572) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input foo<{ // comment [key in keyof Foo]: number }>(); // Prettier 3.9.4 foo< { // comment [key in keyof Foo]: number; } >(); // Prettier 3.9.5 foo<{ // comment [key in keyof Foo]: number; }>(); ``` ##### Less: Fix adjacent block comments being corrupted ([#19574](prettier/prettier#19574) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input /* a *//* b */ /* a */* { color: red; } // Prettier 3.9.4 /* a */ /* b */ /* a * { color: red; } // Prettier 3.9.5 /* a */ /* b */ /* a */ * { color: red; } ``` ##### JavaScript: Handle dangling comments in `SwitchStatement` ([#19581](prettier/prettier#19581) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input switch (foo) { // comment } // Prettier 3.9.4 switch ( foo // comment ) { } // Prettier 3.9.5 switch (foo) { // comment } ``` ##### TypeScript: Remove space in comment-only object type ([#19583](prettier/prettier#19583) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input var foo = { /* comment */ }; type Foo = { /* comment */ }; // Prettier 3.9.4 var foo = {/* comment */}; type Foo = { /* comment */ }; // Prettier 3.9.5 var foo = {/* comment */}; type Foo = {/* comment */}; ``` Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
##### [v3.9.5](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#395) [diff](prettier/prettier@3.9.4...3.9.5) ##### Markdown: Cap ordered list mark at 999,999,999 ([#19351](prettier/prettier#19351) by [@tats-u](https://github.com/tats-u)) CommonMark parsers only support ordered list item numbers up to 999,999,999. With this change, Prettier now caps the ordered list item number at 999,999,999 to ensure that the output is correctly parsed as an ordered list by CommonMark parsers. Numbers larger than 999,999,999 are not parsed as list item numbers and are left unchanged in the output: <!-- prettier-ignore --> ```markdown <!-- Input --> 999999998. text 999999998. text 999999998. text 999999998. text 1234567890123456789012) text <!-- Prettier 3.9.4 --> 999999998. text 999999999. text 1000000000. text 1000000001. text 1234567890123456789012) text <!-- Prettier 3.9.5 --> 999999998. text 999999999. text 999999999. text 999999999. text 1234567890123456789012) text ``` ##### Markdown: Avoid corrupting empty link with title ([#19487](prettier/prettier#19487) by [@andersk](https://github.com/andersk)) Do not remove `<>` from an inline link or image with an empty URL and a title, as this removal would change its interpretation. <!-- prettier-ignore --> ```md <!-- Input --> [link](<> "title") <!-- Prettier 3.9.4 --> [link]( "title") <!-- Prettier 3.9.5 --> [link](<> "title") ``` ##### Less: Remove extra spaces after `[` in map lookups ([#19503](prettier/prettier#19503) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input .foo { color: #theme[ primary]; color: #theme[@name]; color: #theme[@@name]; } // Prettier 3.9.4 .foo { color: #theme[ primary]; color: #theme[ @name]; color: #theme[ @@name]; } // Prettier 3.9.5 .foo { color: #theme[primary]; color: #theme[@name]; color: #theme[@@name]; } ``` ##### CSS: Prevent addition space in `type()` with `+` ([#19516](prettier/prettier#19516) by [@bigandy](https://github.com/bigandy)) This fixes the addition space before `+` in CSS `type()` declaration. For example `type(<number>+)` was being converted into `type(<number> +)` which is invalid CSS and does not work. <!-- prettier-ignore --> ```css /* Input */ div { border-radius: attr(br type(<length>+)); } /* Prettier 3.9.4 */ div { border-radius: attr(br type(<length> +)); } /* Prettier 3.9.5 */ div { border-radius: attr(br type(<length>+)); } ``` ##### Less: Remove spaces between merge markers and colons ([#19517](prettier/prettier#19517) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input a { box-shadow + : 0 0 1px #000; } // Prettier 3.9.4 a { box-shadow+ : 0 0 1px #000; } // Prettier 3.9.5 a { box-shadow+: 0 0 1px #000; } ``` ##### Markdown: Preserve wiki links with aliases ([#19527](prettier/prettier#19527) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```markdown <!-- Input --> [[Foo:Bar]] <!-- Prettier 3.9.4 --> [[Foo]] <!-- Prettier 3.9.5 --> [[Foo:Bar]] ``` ##### TypeScript: Fix comments being dropped on shorthand `type` import/export specifiers ([#19565](prettier/prettier#19565) by [@kirkwaiblinger](https://github.com/kirkwaiblinger)) <!-- prettier-ignore --> ```tsx // Input export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; // Prettier 3.9.4 Error: Comment "comment" was not printed. Please report this error! // Prettier 3.9.5 export { type /* comment */ T } from "foo"; import { type /* comment */ T } from "foo"; ``` ##### Miscellaneous: Preserving comments' `placement` property ([#19567](prettier/prettier#19567) by [@Janther](https://github.com/Janther)) Prettier\@3.9.0 deleted an undocumented property on comments, which was already used by plugins, `comment.placement` is now available again after comment attach. ##### Flow: Stop enforcing empty module declaration to break ([#19568](prettier/prettier#19568) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```flow // Input declare module "foo" {} // Prettier 3.9.4 declare module "foo" { } // Prettier 3.9.5 declare module "foo" {} ``` ##### Angular: Support expression for exhaustive typechecking ([#19571](prettier/prettier#19571) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```html <!-- Input --> @switch (state.mode) { @default never(state); } <!-- Prettier 3.9.4 --> @switch (state.mode) { @default never; } <!-- Prettier 3.9.5 --> @switch (state.mode) { @default never(state); } ``` ##### TypeScript: Ignore comments inside mapped type when checking type parameter comments ([#19572](prettier/prettier#19572) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input foo<{ // comment [key in keyof Foo]: number }>(); // Prettier 3.9.4 foo< { // comment [key in keyof Foo]: number; } >(); // Prettier 3.9.5 foo<{ // comment [key in keyof Foo]: number; }>(); ``` ##### Less: Fix adjacent block comments being corrupted ([#19574](prettier/prettier#19574) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```less // Input /* a *//* b */ /* a */* { color: red; } // Prettier 3.9.4 /* a */ /* b */ /* a * { color: red; } // Prettier 3.9.5 /* a */ /* b */ /* a */ * { color: red; } ``` ##### JavaScript: Handle dangling comments in `SwitchStatement` ([#19581](prettier/prettier#19581) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input switch (foo) { // comment } // Prettier 3.9.4 switch ( foo // comment ) { } // Prettier 3.9.5 switch (foo) { // comment } ``` ##### TypeScript: Remove space in comment-only object type ([#19583](prettier/prettier#19583) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input var foo = { /* comment */ }; type Foo = { /* comment */ }; // Prettier 3.9.4 var foo = {/* comment */}; type Foo = { /* comment */ }; // Prettier 3.9.5 var foo = {/* comment */}; type Foo = {/* comment */}; ``` ##### [v3.9.4](prettier/prettier@3.9.3...3.9.4) ##### [v3.9.3](prettier/prettier@b875c90...b875c90) ##### [v3.9.2](prettier/prettier@3.9.1...b875c90) ##### [v3.9.1](prettier/prettier@3.9.0...3.9.1) ##### [v3.9.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#390) [diff](prettier/prettier@3.8.5...3.9.0) 🔗 [Release Notes](https://prettier.io/blog/2026/06/27/3.9.0) ##### [v3.8.5](prettier/prettier@3.8.4...96395cb) ##### [v3.8.4](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#384) [diff](prettier/prettier@3.8.3...3.8.4) ##### Markdown: Fix blank lines between list items and nested sub-lists being removed in Markdown/MDX ([#17746](prettier/prettier#17746) by [@byplayer](https://github.com/byplayer)) Prettier was removing blank lines between list items and their nested sub-lists, converting loose lists into tight lists and changing their semantic meaning. <!-- prettier-ignore --> ```markdown <!-- Input --> - a - b - c - d <!-- Prettier 3.8.3 --> - a - b - c - d <!-- Prettier 3.8.4 --> - a - b - c - d ``` ##### [v3.8.3](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#383) [diff](prettier/prettier@3.8.2...3.8.3) ##### SCSS: Prevent trailing comma in `if()` function ([#18471](prettier/prettier#18471) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```scss // Input $value: if(sass(false): 1; else: -1); // Prettier 3.8.2 $value: if( sass(false): 1; else: -1, ); // Prettier 3.8.3 $value: if(sass(false): 1; else: -1); ``` ##### [v3.8.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#382) [diff](prettier/prettier@3.8.1...3.8.2) ##### Angular: Support Angular v21.2 ([#18722](prettier/prettier#18722), [#19034](prettier/prettier#19034) by [@fisker](https://github.com/fisker)) Exhaustive typechecking with `@default never;` <!-- prettier-ignore --> ```html <!-- Input --> @switch (foo) { @case (1) {} @default never; } <!-- Prettier 3.8.1 --> SyntaxError: Incomplete block "default never". If you meant to write the @ character, you should use the "@" HTML entity instead. (3:3) <!-- Prettier 3.8.2 --> @switch (foo) { @case (1) {} @default never; } ``` `arrow function` and `instanceof` expressions. <!-- prettier-ignore --> ```html <!-- Input --> @let fn = (a) => a? 1:2; {{ fn ( a instanceof b)}} <!-- Prettier 3.8.1 --> @let fn = (a) => a? 1:2; {{ fn ( a instanceof b)}} <!-- Prettier 3.8.2 --> @let fn = (a) => (a ? 1 : 2); {{ fn(a instanceof b) }} ``` ##### [v3.8.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#381) [diff](prettier/prettier@3.8.0...3.8.1) ##### Include available `printers` in plugin type declarations ([#18706](prettier/prettier#18706) by [@porada](https://github.com/porada)) <!-- prettier-ignore --> ```ts // Input import * as prettierPluginEstree from "prettier/plugins/estree"; // Prettier 3.8.0 // Property 'printers' does not exist on type 'typeof import("prettier/plugins/estree")'. ts(2339) prettierPluginEstree.printers.estree; //=> any // Prettier 3.8.1 prettierPluginEstree.printers.estree; //=> Printer prettierPluginEstree.printers["estree-json"]; //=> Printer ``` ##### [v3.8.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#380) [diff](prettier/prettier@3.7.4...3.8.0) 🔗 [Release Notes](https://prettier.io/blog/2026/01/14/3.8.0) ##### [v3.7.4](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#374) [diff](prettier/prettier@3.7.3...3.7.4) ##### LWC: Avoid quote around interpolations ([#18383](prettier/prettier#18383) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```html <!-- Input --> <div foo={bar}> </div> <!-- Prettier 3.7.3 (--embedded-language-formatting off) --> <div foo="{bar}"></div> <!-- Prettier 3.7.4 (--embedded-language-formatting off) --> <div foo={bar}></div> ``` ##### TypeScript: Fix comment inside union type gets duplicated ([#18393](prettier/prettier#18393) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type Foo = (/** comment */ a | b) | c; // Prettier 3.7.3 type Foo = /** comment */ (/** comment */ a | b) | c; // Prettier 3.7.4 type Foo = /** comment */ (a | b) | c; ``` ##### TypeScript: Fix unstable comment print in union type comments ([#18395](prettier/prettier#18395) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type X = (A | B) & ( // comment A | B ); // Prettier 3.7.3 (first format) type X = (A | B) & (// comment A | B); // Prettier 3.7.3 (second format) type X = ( | A | B // comment ) & (A | B); // Prettier 3.7.4 type X = (A | B) & // comment (A | B); ``` ##### [v3.7.3](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#373) [diff](prettier/prettier@3.7.2...3.7.3) ##### API: Fix `prettier.getFileInfo()` change that breaks VSCode extension ([#18375](prettier/prettier#18375) by [@fisker](https://github.com/fisker)) An internal refactor accidentally broke the VSCode extension plugin loading. ##### [v3.7.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#372) [diff](prettier/prettier@3.7.1...3.7.2) ##### JavaScript: Fix string print when switching quotes ([#18351](prettier/prettier#18351) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input console.log("A descriptor\\'s .kind must be \"method\" or \"field\".") // Prettier 3.7.1 console.log('A descriptor\\'s .kind must be "method" or "field".'); // Prettier 3.7.2 console.log('A descriptor\\\'s .kind must be "method" or "field".'); ``` ##### JavaScript: Preserve quote for embedded HTML attribute values ([#18352](prettier/prettier#18352) by [@kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```tsx // Input const html = /* HTML */ ` <div class="${styles.banner}"></div> `; // Prettier 3.7.1 const html = /* HTML */ ` <div class=${styles.banner}></div> `; // Prettier 3.7.2 const html = /* HTML */ ` <div class="${styles.banner}"></div> `; ``` ##### TypeScript: Fix comment in empty type literal ([#18364](prettier/prettier#18364) by [@fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input export type XXX = { // tbd }; // Prettier 3.7.1 export type XXX = { // tbd }; // Prettier 3.7.2 export type XXX = { // tbd }; ``` ##### [v3.7.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#371) [diff](prettier/prettier@3.7.0...3.7.1) ##### API: Fix performance regression in doc printer ([#18342](prettier/prettier#18342) by [@fisker](https://github.com/fisker)) Prettier 3.7.0 can be very slow when formatting big files, the regression has been fixed. ##### [v3.7.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#370) [diff](prettier/prettier@3.6.2...3.7.0) 🔗 [Release Notes](https://prettier.io/blog/2025/11/27/3.7.0)
Description
Caps the ordered list item number at 999,999 to ensure that the output is correctly parsed as an ordered list by CommonMark parsers.
Numbers larger than it in MDX v1 are printed as are. (temporary measure)
Checklist
docs/directory).changelog_unreleased/*/XXXX.mdfile followingchangelog_unreleased/TEMPLATE.md.GitHub Copilot: Tab completion, partial translation (some comment) by inline chat (Haiku 4.5)