Release 3.4.2

This commit is contained in:
fisker committed 2024-12-04 15:01:52 +08:00
1 parent 572bebe2d4
commit cca946176c
5 files changed
+126 -19

No files matched your search

+1 -1
View File
@@ -26,7 +26,7 @@ Don't fill the form below manually! Let a program create a report for you:
--> -->
**Prettier 3.4.1** **Prettier 3.4.2**
[Playground link](https://prettier.io/playground/#.....) [Playground link](https://prettier.io/playground/#.....)
```sh ```sh
+1 -1
View File
@@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE:
**Environments:** **Environments:**
- Prettier Version: 3.4.1 - Prettier Version: 3.4.2
- 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. -->
+107
View File
@@ -1,3 +1,110 @@
# 3.4.2
[diff](https://github.com/prettier/prettier/compare/3.4.1...3.4.2)
#### Treat U+30A0 & U+30FB in Katakana Block as CJK ([#16796](https://github.com/prettier/prettier/pull/16796) by [@tats-u](https://github.com/tats-u))
Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.
<!-- prettier-ignore -->
```md
<!-- Input (--prose-wrap=never) -->
C言
語
・
C++
・
Go
・
Rust
<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust
<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
```
U+30A0 can be used as the replacement of the `-` in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).
#### Fix comments print on class methods with decorators ([#16891](https://github.com/prettier/prettier/pull/16891) by [@fisker](https://github.com/fisker))
<!-- prettier-ignore -->
```jsx
// Input
class A {
@decorator
/**
* The method description
*
*/
async method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
// Prettier 3.4.1
class A {
@decorator
async /**
* The method description
*
*/
method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
// Prettier 3.4.2
class A {
@decorator
/**
* The method description
*
*/
async method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
```
#### Fix non-idempotent formatting ([#16899](https://github.com/prettier/prettier/pull/16899) by [@seiyab](https://github.com/seiyab))
This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.
<!-- prettier-ignore -->
```jsx
// Input
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
// Prettier 3.4.1 (first)
<div>
foo
<span>
longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
</span>, abc
</div>;
// Prettier 3.4.1 (second)
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
// Prettier 3.4.2
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
```
# 3.4.1 # 3.4.1
[diff](https://github.com/prettier/prettier/compare/3.4.0...3.4.1) [diff](https://github.com/prettier/prettier/compare/3.4.0...3.4.1)
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "prettier", "name": "prettier",
"version": "3.5.0-dev", "version": "3.4.2",
"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",
@@ -19,7 +19,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.4.1/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.4.2/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.
@@ -30,8 +30,8 @@ See below for examples.
### Global ### Global
```html ```html
<script src="https://unpkg.com/prettier@3.4.1/standalone.js"></script> <script src="https://unpkg.com/prettier@3.4.2/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.4.1/plugins/graphql.js"></script> <script src="https://unpkg.com/prettier@3.4.2/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 }", {
@@ -48,8 +48,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.4.1/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.4.2/standalone.mjs";
import prettierPluginGraphql from "https://unpkg.com/prettier@3.4.1/plugins/graphql.mjs"; import prettierPluginGraphql from "https://unpkg.com/prettier@3.4.2/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",
@@ -62,8 +62,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
```js ```js
define([ define([
"https://unpkg.com/prettier@3.4.1/standalone.js", "https://unpkg.com/prettier@3.4.2/standalone.js",
"https://unpkg.com/prettier@3.4.1/plugins/graphql.js", "https://unpkg.com/prettier@3.4.2/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",
@@ -91,8 +91,8 @@ This syntax doesn’t necessarily work in the browser, but it can be used when b
### Worker ### Worker
```js ```js
importScripts("https://unpkg.com/prettier@3.4.1/standalone.js"); importScripts("https://unpkg.com/prettier@3.4.2/standalone.js");
importScripts("https://unpkg.com/prettier@3.4.1/plugins/graphql.js"); importScripts("https://unpkg.com/prettier@3.4.2/plugins/graphql.js");
(async () => { (async () => {
const formatted = await prettier.format("type Query { hello: String }", { const formatted = await prettier.format("type Query { hello: String }", {
@@ -108,9 +108,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.4.1/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.4.2/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.4.1/plugins/babel.mjs"; import prettierPluginBabel from "https://unpkg.com/prettier@3.4.2/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.4.1/plugins/estree.mjs"; import prettierPluginEstree from "https://unpkg.com/prettier@3.4.2/plugins/estree.mjs";
console.log( console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", { await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
@@ -126,10 +126,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.4.1/standalone.mjs"; import * as prettier from "https://unpkg.com/prettier@3.4.2/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.4.1/plugins/babel.mjs"; import prettierPluginBabel from "https://unpkg.com/prettier@3.4.2/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.4.1/plugins/estree.mjs"; import prettierPluginEstree from "https://unpkg.com/prettier@3.4.2/plugins/estree.mjs";
import prettierPluginHtml from "https://unpkg.com/prettier@3.4.1/plugins/html.mjs"; import prettierPluginHtml from "https://unpkg.com/prettier@3.4.2/plugins/html.mjs";
console.log( console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", { await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {