diff --git a/.github/ISSUE_TEMPLATE/formatting.md b/.github/ISSUE_TEMPLATE/formatting.md index 7849d0248..823cb8b4b 100644 --- a/.github/ISSUE_TEMPLATE/formatting.md +++ b/.github/ISSUE_TEMPLATE/formatting.md @@ -26,7 +26,7 @@ Don't fill the form below manually! Let a program create a report for you: --> -**Prettier 3.9.6** +**Prettier 3.9.7** [Playground link](https://prettier.io/playground/#.....) ```sh diff --git a/.github/ISSUE_TEMPLATE/integration.md b/.github/ISSUE_TEMPLATE/integration.md index 9d78e6d82..70501cfcf 100644 --- a/.github/ISSUE_TEMPLATE/integration.md +++ b/.github/ISSUE_TEMPLATE/integration.md @@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE: **Environments:** -- Prettier Version: 3.9.6 +- Prettier Version: 3.9.7 - Running Prettier via: - Runtime: - Operating System: diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f8737f13..dea72898b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,197 @@ +# 3.9.7 + +[diff](https://github.com/prettier/prettier/compare/3.9.6...3.9.7) + +#### Markdown: Prevent indentation drift in list-item code blocks ([#19647](https://github.com/prettier/prettier/pull/19647), [#19990](https://github.com/prettier/prettier/pull/19990) by [@Austin1serb](https://github.com/Austin1serb), [@giaBaoJS](https://github.com/giaBaoJS)) + + +```markdown + +- [x] short first line. + + second paragraph at six spaces that wraps + onto another line here. + + +- [x] short first line. + + second paragraph at six spaces that wraps + onto another line here. + + +- [x] short first line. + + second paragraph at six spaces that wraps + onto another line here. +``` + +#### JavaScript: Fix embedded template literal idempotency ([#19725](https://github.com/prettier/prettier/pull/19725) by [@fisker](https://github.com/fisker)) + + +```jsx +// Input +const foo = html` +
${getText({ + value, + })}
+`; + +// Prettier 3.9.6 (first format) +const foo = html` +
+ ${getText({ + value, + })} +
+`; + +// Prettier 3.9.6 (second format) +const foo = html` +
+ ${getText({ + value, + })} +
+`; + +// Prettier 3.9.7 +const foo = html` +
+ ${getText({ + value, + })} +
+`; +``` + +#### Markdown: Preserve Liquid blocks after Markdown tables ([#19730](https://github.com/prettier/prettier/pull/19730) by [@wanxiankai](https://github.com/wanxiankai), [@seiyab](https://github.com/seiyab)) + + +```markdown + +| Argument | Type | +| -------- | ---- | +{% set default_params = { + "model": ["str"], +} %} + + +| Argument | Type | +| ------------------------- | ---- | +| {% set default_params = { | + + "model": ["str"], + +} %} + + +| Argument | Type | +| -------- | ---- | +{% set default_params = { + "model": ["str"], +} %} +``` + +#### Markdown: Preserve single tildes in Markdown ([#19739](https://github.com/prettier/prettier/pull/19739) by [@lazerg](https://github.com/lazerg)) + +Since 3.9.0, single-tilde spans like `H~2~O` were rewritten to double tildes, turning subscript syntax into strike-through. Only double tildes are treated that way now, matching GitHub. + + +```markdown + +H~2~O + + +H~~2~~O + + +H~2~O +``` + +#### Markdown: Fix Markdown blockquote containing `>` characters ([#19802](https://github.com/prettier/prettier/pull/19802) by [@seiyab](https://github.com/seiyab)) + + +```md + +> **test**\> + + +> **test**>\> + + +> **test**\> +``` + +#### Markdown: Strip blockquote markers from a setext heading's continuation lines ([#19878](https://github.com/prettier/prettier/pull/19878) by [@Kjubikstronk](https://github.com/Kjubikstronk)) + +A setext heading spanning multiple lines inside a blockquote kept the `>` marker of its continuation lines as literal text. + + +```md + +> Multi +> Line +> === + + +> Multi > Line +> === + + +> Multi +> Line +> === +``` + +#### Markdown: Fix HTML block indentation drift in markdown list items ([#19987](https://github.com/prettier/prettier/pull/19987) by [@lazerg](https://github.com/lazerg)) + + +```markdown + +1. Enable images: + +

+ example +

+ + +1. Enable images: + +

+ example +

+ + +1. Enable images: + +

+ example +

+``` + +#### Angular: Support `@boundary` error boundaries ([#20014](https://github.com/prettier/prettier/pull/20014) by [@Yahiro025](https://github.com/Yahiro025)) + + +```html + +@boundary { + +} +@error (let err) { +

{{err.message}}

+} + + +SyntaxError: Unexpected character "EOF" (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.) (6:1) + + +@boundary { + +} @error (let err) { +

{{ err.message }}

+} +``` + # 3.9.6 [diff](https://github.com/prettier/prettier/compare/3.9.5...3.9.6) diff --git a/package.json b/package.json index 792b04d61..aa5ce058e 100644 --- a/package.json +++ b/package.json @@ -182,7 +182,7 @@ "node-style-text": "2.1.2", "npm-run-all2": "9.0.3", "open-editor": "6.0.0", - "prettier": "3.9.6", + "prettier": "3.9.7", "pretty-bytes": "7.1.3", "pretty-ms": "9.3.1", "puppeteer": "25.11.0", diff --git a/packages/plugin-hermes/package.json b/packages/plugin-hermes/package.json index cf1a0297c..8d7e3c7fc 100644 --- a/packages/plugin-hermes/package.json +++ b/packages/plugin-hermes/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-hermes", - "version": "0.2.2", + "version": "0.2.3", "description": "Prettier Hermes plugin.", "type": "module", "exports": { diff --git a/packages/plugin-oxc/package.json b/packages/plugin-oxc/package.json index 4defb218b..211549588 100644 --- a/packages/plugin-oxc/package.json +++ b/packages/plugin-oxc/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-oxc", - "version": "0.2.2", + "version": "0.2.3", "description": "Prettier Oxc plugin.", "type": "module", "exports": { diff --git a/packages/plugin-yuku/package.json b/packages/plugin-yuku/package.json index a7f4c0109..b10738031 100644 --- a/packages/plugin-yuku/package.json +++ b/packages/plugin-yuku/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-yuku", - "version": "0.0.1", + "version": "0.0.2", "description": "Prettier yuku plugin.", "type": "module", "exports": { diff --git a/tests/format/js/import-expression/__snapshots__/format.test.js.snap b/tests/format/js/import-expression/__snapshots__/format.test.js.snap index d37bb3934..9727926a0 100644 --- a/tests/format/js/import-expression/__snapshots__/format.test.js.snap +++ b/tests/format/js/import-expression/__snapshots__/format.test.js.snap @@ -93,6 +93,16 @@ exports[`import-phase.js format[typescript] 1`] = ` Cause: 'source' is not a valid meta-property for keyword 'import'." `; +exports[`import-phase.js format[typescript] 1`] = ` +"'source' is not a valid meta-property for keyword 'import'. (1:1) +> 1 | import.source(\`data:text/javascript, + | ^^^^^^^^^^^^^ + 2 | console.log("RUN"); + 3 | \`) + 4 | +Cause: 'source' is not a valid meta-property for keyword 'import'." +`; + exports[`template-literal.js format 1`] = ` ====================================options===================================== parsers: ["babel", "flow", "typescript"] diff --git a/website/versioned_docs/version-stable/browser.md b/website/versioned_docs/version-stable/browser.md index f950c4847..46e13a238 100644 --- a/website/versioned_docs/version-stable/browser.md +++ b/website/versioned_docs/version-stable/browser.md @@ -21,7 +21,7 @@ Required options: - **[`parser`](options.md#parser) (or [`filepath`](options.md#file-path))**: One of these options has to be specified for Prettier to know which parser to use. -- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource-options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in [https://unpkg.com/browse/prettier@3.9.6/plugins](https://unpkg.com/browse/prettier@3.9.6/plugins). Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON. +- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource-options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in [https://unpkg.com/browse/prettier@3.9.7/plugins](https://unpkg.com/browse/prettier@3.9.7/plugins). Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON. You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option. @@ -32,8 +32,8 @@ See below for examples. ### Global ```html - - + +