Sitelet https://github.com/prettier/prettier/pull/19629
Skip to content

Add yuku-ts parser - #19629

Merged
fisker merged 49 commits into
prettier:mainfrom
fisker:yuku-ts
Jul 15, 2026
Merged

fisker merged 49 commits into
prettier:mainfrom
fisker:yuku-ts

Conversation

@fisker

@fisker fisker commented Jul 14, 2026 •

Copy link
Copy Markdown
Member

Description

Fixes #19627

Checklist

  • I’ve added tests to confirm my change works.
  • (If changing the API or CLI) I’ve documented the changes I’ve made (in the docs/ directory).
  • (If the change is user-facing) I’ve added my changes to changelog_unreleased/*/XXXX.md file following changelog_unreleased/TEMPLATE.md.
  • I’ve read the contributing guidelines.
  • I did not use AI to generate this PR.
  • (If the above is not checked) I have reviewed the AI-generated content before submitting.

@fisker fisker mentioned this pull request Jul 14, 2026
3 of 6 tasks
fisker added 2 commits July 15, 2026 01:55
# Conflicts:
#	.github/renovate.json5
#	package.json
#	src/language-js/parse/postprocess/index.js
#	src/language-js/parse/yuku.js
#	src/main/plugins/builtin-plugins/development-plugins.js
#	src/main/range.js
#	tests/config/format-test/failed-format-tests.js
#	tests/config/format-test/verify-fixtures.js
#	tests/format/js/_errors_/class-property-named-constructor/__snapshots__/format.test.js.snap
#	tests/format/js/_errors_/class-property-named-constructor/format.test.js
#	tests/format/js/_errors_/discard-binding/__snapshots__/format.test.js.snap
#	tests/format/js/_errors_/discard-binding/format.test.js
#	tests/format/js/_errors_/export-name/__snapshots__/format.test.js.snap
#	tests/format/js/_errors_/export-name/format.test.js
#	tests/format/js/_errors_/reserved-word/__snapshots__/format.test.js.snap
#	tests/format/js/_errors_/reserved-word/format.test.js
#	tests/format/js/arrows-bind/format.test.js
#	tests/format/js/async-do-expressions/format.test.js
#	tests/format/js/babel-plugins/__snapshots__/format.test.js.snap
#	tests/format/js/babel-plugins/format.test.js
#	tests/format/js/bind-expressions/format.test.js
#	tests/format/js/call/invalid/format.test.js
#	tests/format/js/deferred-import-evaluation/__snapshots__/format.test.js.snap
#	tests/format/js/deferred-import-evaluation/format.test.js
#	tests/format/js/destructuring-private-fields/format.test.js
#	tests/format/js/discard-binding/__snapshots__/format.test.js.snap
#	tests/format/js/discard-binding/format.test.js
#	tests/format/js/do/format.test.js
#	tests/format/js/explicit-resource-management/__snapshots__/format.test.js.snap
#	tests/format/js/explicit-resource-management/format.test.js
#	tests/format/js/export-default/escaped/format.test.js
#	tests/format/js/export-default/export-default-from/format.test.js
#	tests/format/js/for/__snapshots__/format.test.js.snap
#	tests/format/js/for/format.test.js
#	tests/format/js/identifier/parentheses/__snapshots__/format.test.js.snap
#	tests/format/js/identifier/parentheses/format.test.js
#	tests/format/js/module-blocks/format.test.js
#	tests/format/js/module-blocks/quote-props/format.test.js
#	tests/format/js/multiparser-invalid/__snapshots__/format.test.js.snap
#	tests/format/js/multiparser-invalid/format.test.js
#	tests/format/js/no-semi-babylon-extensions/format.test.js
#	tests/format/js/objects/__snapshots__/format.test.js.snap
#	tests/format/js/objects/format.test.js
#	tests/format/js/optional-chaining-assignment/format.test.js
#	tests/format/js/partial-application/format.test.js
#	tests/format/js/pipeline-operator/format.test.js
#	tests/format/js/reserved-word/format.test.js
#	tests/format/js/source-phase-imports/format.test.js
#	tests/format/js/throw_expressions/format.test.js
#	tests/format/js/v8_intrinsic/format.test.js
#	tests/unit/builtin-plugins.js
#	yarn.lock
@fisker
fisker marked this pull request as ready for review July 15, 2026 09:29
@fisker
fisker merged commit dc47535 into prettier:main Jul 15, 2026
16 of 17 checks passed
@fisker
fisker deleted the yuku-ts branch July 15, 2026 09:29
fisker added a commit that referenced this pull request Jul 17, 2026
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
# Conflicts:
#	tests/format/js/deferred-import-evaluation/__snapshots__/format.test.js.snap
sys-support pushed a commit to 3caravelle/renovate that referenced this pull request Jul 21, 2026
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.5` → `3.9.6`](https://renovatebot.com/diffs/npm/prettier/3.9.5/3.9.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.9.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.9.5/3.9.6?slim=true) |

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

### [`v3.9.6`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#396)

[Compare Source](prettier/prettier@3.9.5...3.9.6)

[diff](prettier/prettier@3.9.5...3.9.6)

##### TypeScript: Preserve quotes for methods named `new` ([#&#8203;19621](prettier/prettier#19621) by [@&#8203;kovsu](https://github.com/kovsu))

<!-- prettier-ignore -->

```tsx
// Input
interface Container {
  "new"(id: string): number;
}

// Prettier 3.9.5
interface Container {
  new(id: string): number;
}

// Prettier 3.9.6
interface Container {
  "new"(id: string): number;
}
```

##### TypeScript: Support `import defer` ([#&#8203;19624](prettier/prettier#19624), [#&#8203;19675](prettier/prettier#19675) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```tsx
// Input
import defer * as foo from "foo";

// Prettier 3.9.5
import * as foo from "foo";

// Prettier 3.9.6
import defer * as foo from "foo";
```

##### JavaScript: Added a new official plugin `@prettier/plugin-yuku` ([#&#8203;19628](prettier/prettier#19628), [#&#8203;19629](prettier/prettier#19629) by [@&#8203;fisker](https://github.com/fisker))

`@prettier/plugin-yuku` is powered by [Yuku](https://yuku.fyi/) (A high-performance JavaScript/TypeScript compiler toolchain written in Zig).

This plugin includes two new parsers: `yuku` (JavaScript syntax) and `yuku-ts` (TypeScript syntax).

**To use this plugin:**

1. Install the plugin:

   ```bash
   yarn add --dev prettier @&#8203;prettier/plugin-yuku
   ```

2. Add it to your `.prettierrc`:

   ```yaml
   plugins:
     - "@&#8203;prettier/plugin-yuku"
   ```

Due to package size limitations, this plugin is not bundled with the main prettier package and must be installed separately.

For more information, check [the package homepage](https://github.com/prettier/prettier/tree/main/packages/plugin-yuku).

Big thanks to [@&#8203;arshad-yaseen](https://github.com/arshad-yaseen) for his excellent work.

</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/48
Co-authored-by: Renovate Bot <renovate-bot@3caravelle.com>
Co-committed-by: Renovate Bot <renovate-bot@3caravelle.com>
apricote pushed a commit to hetznercloud/fleeting-plugin-hetzner that referenced this pull request Jul 27, 2026
…fleeting-plugin-hetzner!393)

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.5` → `3.9.6` | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.9.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.9.5/3.9.6?slim=true) |

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.6`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#396)

[Compare Source](prettier/prettier@3.9.5...3.9.6)

[diff](prettier/prettier@3.9.5...3.9.6)

##### TypeScript: Preserve quotes for methods named `new` ([#&#8203;19621](prettier/prettier#19621) by [@&#8203;kovsu](https://github.com/kovsu))

<!-- prettier-ignore -->

```tsx
// Input
interface Container {
  "new"(id: string): number;
}

// Prettier 3.9.5
interface Container {
  new(id: string): number;
}

// Prettier 3.9.6
interface Container {
  "new"(id: string): number;
}
```

##### TypeScript: Support `import defer` ([#&#8203;19624](prettier/prettier#19624), [#&#8203;19675](prettier/prettier#19675) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```tsx
// Input
import defer * as foo from "foo";

// Prettier 3.9.5
import * as foo from "foo";

// Prettier 3.9.6
import defer * as foo from "foo";
```

##### JavaScript: Added a new official plugin `@prettier/plugin-yuku` ([#&#8203;19628](prettier/prettier#19628), [#&#8203;19629](prettier/prettier#19629) by [@&#8203;fisker](https://github.com/fisker))

`@prettier/plugin-yuku` is powered by [Yuku](https://yuku.fyi/) (A high-performance JavaScript/TypeScript compiler toolchain written in Zig).

This plugin includes two new parsers: `yuku` (JavaScript syntax) and `yuku-ts` (TypeScript syntax).

**To use this plugin:**

1. Install the plugin:

   ```bash
   yarn add --dev prettier @&#8203;prettier/plugin-yuku
   ```

2. Add it to your `.prettierrc`:

   ```yaml
   plugins:
     - "@&#8203;prettier/plugin-yuku"
   ```

Due to package size limitations, this plugin is not bundled with the main prettier package and must be installed separately.

For more information, check [the package homepage](https://github.com/prettier/prettier/tree/main/packages/plugin-yuku).

Big thanks to [@&#8203;arshad-yaseen](https://github.com/arshad-yaseen) for his excellent work.

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yODMuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support yuku parser

1 participant