From 2e92ac0ee29fb83b7ce32277cb914c2eee192955 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 30 Jun 2026 09:05:20 +0800 Subject: [PATCH 1/4] Angular: Format `@content(name)` -> `@content (name)` to align with other block syntax (#19499) --- changelog_unreleased/angular/19499.md | 37 +++++++++++++ .../print/angular-control-flow-block.js | 9 +--- .../__snapshots__/format.test.js.snap | 52 ++++++++++++++++++- .../format/angular/control-flow/content.html | 24 +++++++++ 4 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 changelog_unreleased/angular/19499.md diff --git a/changelog_unreleased/angular/19499.md b/changelog_unreleased/angular/19499.md new file mode 100644 index 000000000..01d08f675 --- /dev/null +++ b/changelog_unreleased/angular/19499.md @@ -0,0 +1,37 @@ +#### Format `@content(name)` -> `@content (name)` to align with other block syntax (#19499 by @fisker) + + +```html + + + @content (icon) { + Icon! + } + @content (description) { + Description text + } + Other children + + + + + @content(icon) { + Icon! + } + @content(description) { + Description text + } + Other children + + + + + @content (icon) { + Icon! + } + @content (description) { + Description text + } + Other children + +``` diff --git a/src/language-html/print/angular-control-flow-block.js b/src/language-html/print/angular-control-flow-block.js index 95eafa604..6281a5c1b 100644 --- a/src/language-html/print/angular-control-flow-block.js +++ b/src/language-html/print/angular-control-flow-block.js @@ -10,8 +10,6 @@ import { hasPrettierIgnore } from "../utilities/index.js"; import { ANGULAR_CONTROL_FLOW_BLOCK_SETTINGS } from "./angular-control-flow-block-settings.evaluate.js"; import { printChildren } from "./children.js"; -const blocksShouldNotPrintSpaceAfterName = new Set(["content"]); - function printAngularControlFlowBlock(path, options, print) { const { node } = path; const docs = []; @@ -28,12 +26,7 @@ function printAngularControlFlowBlock(path, options, print) { } if (node.parameters) { - docs.push( - blocksShouldNotPrintSpaceAfterName.has(node.name) ? "" : " ", - "(", - group(print("parameters")), - ")", - ); + docs.push(" ", "(", group(print("parameters")), ")"); } if (!isSwitchFallthroughCase(node)) { diff --git a/tests/format/angular/control-flow/__snapshots__/format.test.js.snap b/tests/format/angular/control-flow/__snapshots__/format.test.js.snap index 00682d5a2..deac6b286 100644 --- a/tests/format/angular/control-flow/__snapshots__/format.test.js.snap +++ b/tests/format/angular/control-flow/__snapshots__/format.test.js.snap @@ -90,17 +90,65 @@ parsers: ["angular"] Other children + + @content (items; let item, index) { + #{{index}}: {{item}} + } + + + + @content (renderHeader; let _) { + Header Content + } + + + + @content (renderRow; let row, idx, isLast) { + {{ idx }} - {{ row }} (Last: {{ isLast }}) + } + + + + @content (children; let result) { + {{ result }} + } + + =====================================output===================================== - @content(icon) { + @content (icon) { Icon! } - @content(description) { + @content (description) { Description text } Other children + + @content (items; let item, index) { + #{{ index }}: {{ item }} + } + + + + @content (renderHeader; let _) { + Header Content + } + + + + @content (renderRow; let row, idx, isLast) { + {{ idx }} - {{ row }} (Last: {{ isLast }}) + } + + + + @content (children; let result) { + {{ result }} + } + + ================================================================================ `; diff --git a/tests/format/angular/control-flow/content.html b/tests/format/angular/control-flow/content.html index 0e8e013fd..21bf3a8da 100644 --- a/tests/format/angular/control-flow/content.html +++ b/tests/format/angular/control-flow/content.html @@ -7,3 +7,27 @@ } Other children + + + @content (items; let item, index) { + #{{index}}: {{item}} + } + + + + @content (renderHeader; let _) { + Header Content + } + + + + @content (renderRow; let row, idx, isLast) { + {{ idx }} - {{ row }} (Last: {{ isLast }}) + } + + + + @content (children; let result) { + {{ result }} + } + From b693cb22b412b759784bc2298fc86880e351cd3a Mon Sep 17 00:00:00 2001 From: fisker Date: Tue, 30 Jun 2026 09:08:19 +0800 Subject: [PATCH 2/4] Release 3.9.4 --- .github/ISSUE_TEMPLATE/formatting.md | 2 +- .github/ISSUE_TEMPLATE/integration.md | 2 +- CHANGELOG.md | 42 +++++++++++++++++++ package.json | 2 +- .../versioned_docs/version-stable/browser.md | 36 ++++++++-------- .../versioned_docs/version-stable/install.md | 10 ++--- .../version-stable/sharing-configurations.md | 4 +- 7 files changed, 70 insertions(+), 28 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/formatting.md b/.github/ISSUE_TEMPLATE/formatting.md index fa46e7a0d..9fdb15549 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.3** +**Prettier 3.9.4** [Playground link](https://prettier.io/playground/#.....) ```sh diff --git a/.github/ISSUE_TEMPLATE/integration.md b/.github/ISSUE_TEMPLATE/integration.md index a917eafcf..1281985d4 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.3 +- Prettier Version: 3.9.4 - Running Prettier via: - Runtime: - Operating System: diff --git a/CHANGELOG.md b/CHANGELOG.md index 794b314db..006c2fffc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,45 @@ +# 3.9.4 + +[diff](https://github.com/prettier/prettier/compare/3.9.3...3.9.4) + +#### Angular: Format `@content(name)` -> `@content (name)` to align with other block syntax ([#19499](https://github.com/prettier/prettier/pull/19499) by [@fisker](https://github.com/fisker)) + + +```html + + + @content (icon) { + Icon! + } + @content (description) { + Description text + } + Other children + + + + + @content(icon) { + Icon! + } + @content(description) { + Description text + } + Other children + + + + + @content (icon) { + Icon! + } + @content (description) { + Description text + } + Other children + +``` + # 3.9.3 [diff](https://github.com/prettier/prettier/compare/3.9.1...3.9.3) diff --git a/package.json b/package.json index 0f5120f0b..41739d94c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "3.10.0-dev", + "version": "3.9.4", "description": "Prettier is an opinionated code formatter", "bin": "./bin/prettier.cjs", "repository": "prettier/prettier", diff --git a/website/versioned_docs/version-stable/browser.md b/website/versioned_docs/version-stable/browser.md index c98038389..b988fabb6 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.3/plugins](https://unpkg.com/browse/prettier@3.9.3/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.4/plugins](https://unpkg.com/browse/prettier@3.9.4/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 - - + +