Release 3.9.7
This commit is contained in:
1 parent
43cd5b0b8d
commit
0449af3a7d
7 files changed
+222
-28
No files matched your search
@@ -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/#.....)
|
[Playground link](https://prettier.io/playground/#.....)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE:
|
|||||||
|
|
||||||
**Environments:**
|
**Environments:**
|
||||||
|
|
||||||
- Prettier Version: 3.9.6
|
- Prettier Version: 3.9.7
|
||||||
- Running Prettier via: <!-- CLI, Node.js API, Browser API, etc. -->
|
- Running Prettier via: <!-- CLI, Node.js API, Browser API, etc. -->
|
||||||
- Runtime: <!-- Node.js v14, Chrome v83, etc. -->
|
- Runtime: <!-- Node.js v14, Chrome v83, etc. -->
|
||||||
- Operating System: <!-- Windows, Linux, macOS, etc. -->
|
- Operating System: <!-- Windows, Linux, macOS, etc. -->
|
||||||
|
|||||||
+194
@@ -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))
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```markdown
|
||||||
|
<!-- Input -->
|
||||||
|
- [x] short first line.
|
||||||
|
|
||||||
|
second paragraph at six spaces that wraps
|
||||||
|
onto another line here.
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 -->
|
||||||
|
- [x] short first line.
|
||||||
|
|
||||||
|
second paragraph at six spaces that wraps
|
||||||
|
onto another line here.
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 -->
|
||||||
|
- [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))
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```jsx
|
||||||
|
// Input
|
||||||
|
const foo = html`
|
||||||
|
<div>${getText({
|
||||||
|
value,
|
||||||
|
})}</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Prettier 3.9.6 (first format)
|
||||||
|
const foo = html`
|
||||||
|
<div>
|
||||||
|
${getText({
|
||||||
|
value,
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Prettier 3.9.6 (second format)
|
||||||
|
const foo = html`
|
||||||
|
<div>
|
||||||
|
${getText({
|
||||||
|
value,
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Prettier 3.9.7
|
||||||
|
const foo = html`
|
||||||
|
<div>
|
||||||
|
${getText({
|
||||||
|
value,
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 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))
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```markdown
|
||||||
|
<!-- Input -->
|
||||||
|
| Argument | Type |
|
||||||
|
| -------- | ---- |
|
||||||
|
{% set default_params = {
|
||||||
|
"model": ["str"],
|
||||||
|
} %}
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 -->
|
||||||
|
| Argument | Type |
|
||||||
|
| ------------------------- | ---- |
|
||||||
|
| {% set default_params = { |
|
||||||
|
|
||||||
|
"model": ["str"],
|
||||||
|
|
||||||
|
} %}
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 -->
|
||||||
|
| 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.
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```markdown
|
||||||
|
<!-- Input -->
|
||||||
|
H~2~O
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 -->
|
||||||
|
H~~2~~O
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 -->
|
||||||
|
H~2~O
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Markdown: Fix Markdown blockquote containing `>` characters ([#19802](https://github.com/prettier/prettier/pull/19802) by [@seiyab](https://github.com/seiyab))
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```md
|
||||||
|
<!-- Input -->
|
||||||
|
> **test**\>
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 -->
|
||||||
|
> **test**>\>
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 -->
|
||||||
|
> **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.
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```md
|
||||||
|
<!-- Input -->
|
||||||
|
> Multi
|
||||||
|
> Line
|
||||||
|
> ===
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 -->
|
||||||
|
> Multi > Line
|
||||||
|
> ===
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 -->
|
||||||
|
> 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))
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```markdown
|
||||||
|
<!-- Input -->
|
||||||
|
1. Enable images:
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img alt="example">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 (--tab-width=4) -->
|
||||||
|
1. Enable images:
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img alt="example">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 (--tab-width=4) -->
|
||||||
|
1. Enable images:
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img alt="example">
|
||||||
|
</p>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Angular: Support `@boundary` error boundaries ([#20014](https://github.com/prettier/prettier/pull/20014) by [@Yahiro025](https://github.com/Yahiro025))
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```html
|
||||||
|
<!-- Input -->
|
||||||
|
@boundary {
|
||||||
|
<complex-chart [data]="data"/>
|
||||||
|
}
|
||||||
|
@error (let err) {
|
||||||
|
<p>{{err.message}}</p>
|
||||||
|
}
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.6 -->
|
||||||
|
SyntaxError: Unexpected character "EOF" (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.) (6:1)
|
||||||
|
|
||||||
|
<!-- Prettier 3.9.7 -->
|
||||||
|
@boundary {
|
||||||
|
<complex-chart [data]="data" />
|
||||||
|
} @error (let err) {
|
||||||
|
<p>{{ err.message }}</p>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
# 3.9.6
|
# 3.9.6
|
||||||
|
|
||||||
[diff](https://github.com/prettier/prettier/compare/3.9.5...3.9.6)
|
[diff](https://github.com/prettier/prettier/compare/3.9.5...3.9.6)
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "prettier",
|
"name": "prettier",
|
||||||
"version": "3.10.0-dev",
|
"version": "3.9.7",
|
||||||
"description": "Prettier is an opinionated code formatter",
|
"description": "Prettier is an opinionated code formatter",
|
||||||
"bin": "./bin/prettier.cjs",
|
"bin": "./bin/prettier.cjs",
|
||||||
"repository": "prettier/prettier",
|
"repository": "prettier/prettier",
|
||||||
|
|||||||
@@ -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.
|
- **[`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.
|
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
|
### Global
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="https://unpkg.com/prettier@3.9.6/standalone.js"></script>
|
<script src="https://unpkg.com/prettier@3.9.7/standalone.js"></script>
|
||||||
<script src="https://unpkg.com/prettier@3.9.6/plugins/graphql.js"></script>
|
<script src="https://unpkg.com/prettier@3.9.7/plugins/graphql.js"></script>
|
||||||
<script>
|
<script>
|
||||||
(async () => {
|
(async () => {
|
||||||
const formatted = await prettier.format("type Query { hello: String }", {
|
const formatted = await prettier.format("type Query { hello: String }", {
|
||||||
@@ -50,8 +50,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
|
|||||||
|
|
||||||
```html
|
```html
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import * as prettier from "https://unpkg.com/prettier@3.9.6/standalone.mjs";
|
import * as prettier from "https://unpkg.com/prettier@3.9.7/standalone.mjs";
|
||||||
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.6/plugins/graphql.mjs";
|
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.7/plugins/graphql.mjs";
|
||||||
|
|
||||||
const formatted = await prettier.format("type Query { hello: String }", {
|
const formatted = await prettier.format("type Query { hello: String }", {
|
||||||
parser: "graphql",
|
parser: "graphql",
|
||||||
@@ -64,8 +64,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
define([
|
define([
|
||||||
"https://unpkg.com/prettier@3.9.6/standalone.js",
|
"https://unpkg.com/prettier@3.9.7/standalone.js",
|
||||||
"https://unpkg.com/prettier@3.9.6/plugins/graphql.js",
|
"https://unpkg.com/prettier@3.9.7/plugins/graphql.js",
|
||||||
], async (prettier, ...plugins) => {
|
], async (prettier, ...plugins) => {
|
||||||
const formatted = await prettier.format("type Query { hello: String }", {
|
const formatted = await prettier.format("type Query { hello: String }", {
|
||||||
parser: "graphql",
|
parser: "graphql",
|
||||||
@@ -96,8 +96,8 @@ This syntax doesn’t necessarily work in the browser, but it can be used when b
|
|||||||
<TabItem value="module" label="Module worker">
|
<TabItem value="module" label="Module worker">
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import * as prettier from "https://unpkg.com/prettier@3.9.6/standalone.mjs";
|
import * as prettier from "https://unpkg.com/prettier@3.9.7/standalone.mjs";
|
||||||
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.6/plugins/graphql.mjs";
|
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.7/plugins/graphql.mjs";
|
||||||
|
|
||||||
const formatted = await prettier.format("type Query { hello: String }", {
|
const formatted = await prettier.format("type Query { hello: String }", {
|
||||||
parser: "graphql",
|
parser: "graphql",
|
||||||
@@ -110,8 +110,8 @@ const formatted = await prettier.format("type Query { hello: String }", {
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
importScripts(
|
importScripts(
|
||||||
"https://unpkg.com/prettier@3.9.6/standalone.js",
|
"https://unpkg.com/prettier@3.9.7/standalone.js",
|
||||||
"https://unpkg.com/prettier@3.9.6/plugins/graphql.js",
|
"https://unpkg.com/prettier@3.9.7/plugins/graphql.js",
|
||||||
);
|
);
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
@@ -131,9 +131,9 @@ If you want to format [embedded code](options.md#embedded-language-formatting),
|
|||||||
|
|
||||||
```html
|
```html
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import * as prettier from "https://unpkg.com/prettier@3.9.6/standalone.mjs";
|
import * as prettier from "https://unpkg.com/prettier@3.9.7/standalone.mjs";
|
||||||
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.6/plugins/babel.mjs";
|
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.7/plugins/babel.mjs";
|
||||||
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.6/plugins/estree.mjs";
|
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.7/plugins/estree.mjs";
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
|
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
|
||||||
@@ -149,10 +149,10 @@ The HTML code embedded in JavaScript stays unformatted because the `html` parser
|
|||||||
|
|
||||||
```html
|
```html
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import * as prettier from "https://unpkg.com/prettier@3.9.6/standalone.mjs";
|
import * as prettier from "https://unpkg.com/prettier@3.9.7/standalone.mjs";
|
||||||
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.6/plugins/babel.mjs";
|
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.7/plugins/babel.mjs";
|
||||||
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.6/plugins/estree.mjs";
|
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.7/plugins/estree.mjs";
|
||||||
import * as prettierPluginHtml from "https://unpkg.com/prettier@3.9.6/plugins/html.mjs";
|
import * as prettierPluginHtml from "https://unpkg.com/prettier@3.9.7/plugins/html.mjs";
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
|
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
|
||||||
|
|||||||
@@ -12,35 +12,35 @@ First, install Prettier locally:
|
|||||||
<TabItem value="npm">
|
<TabItem value="npm">
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install --save-dev --save-exact prettier@3.9.6
|
npm install --save-dev --save-exact prettier@3.9.7
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="yarn">
|
<TabItem value="yarn">
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn add --dev --exact prettier@3.9.6
|
yarn add --dev --exact prettier@3.9.7
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="pnpm">
|
<TabItem value="pnpm">
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pnpm add --save-dev --save-exact prettier@3.9.6
|
pnpm add --save-dev --save-exact prettier@3.9.7
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="bun">
|
<TabItem value="bun">
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun add --dev --exact prettier@3.9.6
|
bun add --dev --exact prettier@3.9.7
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="deno">
|
<TabItem value="deno">
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
deno install --dev --save-exact prettier@3.9.6
|
deno install --dev --save-exact prettier@3.9.7
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ Example `package.json`:
|
|||||||
"prettier": ">=3.0.0"
|
"prettier": ">=3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"prettier": "3.9.6"
|
"prettier": "3.9.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -193,7 +193,7 @@ export default config;
|
|||||||
"prettier": ">=3.0.0"
|
"prettier": ">=3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"prettier": "3.9.6"
|
"prettier": "3.9.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in new issue
Block a user