diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index f23822aad..e4c1197ed 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -5,6 +5,8 @@
# See https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-fileltfilegt
# Prettier bump after release
+# 2.8.7
+0e26a75ebf0cb5b436f6a2d26a7bb88d04f23b90
# 2.8.6
0461cdd8149f0bb9bb95dfac5faed75b47f77689
# 2.8.5
diff --git a/.github/ISSUE_TEMPLATE/formatting.md b/.github/ISSUE_TEMPLATE/formatting.md
index dde56b359..fefab43bd 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 2.8.6**
+**Prettier 2.8.7**
[Playground link](https://prettier.io/playground/#.....)
```sh
diff --git a/.github/ISSUE_TEMPLATE/integration.md b/.github/ISSUE_TEMPLATE/integration.md
index e3aba155c..a50a5df0c 100644
--- a/.github/ISSUE_TEMPLATE/integration.md
+++ b/.github/ISSUE_TEMPLATE/integration.md
@@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE:
**Environments:**
-- Prettier Version: 2.8.6
+- Prettier Version: 2.8.7
- Running Prettier via:
- Runtime:
- Operating System:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e07428f2f..5f3b3a55c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,39 @@
+# 2.8.7
+
+[diff](https://github.com/prettier/prettier/compare/2.8.6...2.8.7)
+
+#### Allow multiple decorators on same getter/setter ([#14584](https://github.com/prettier/prettier/pull/14584) by [@fisker](https://github.com/fisker))
+
+
+```ts
+// Input
+class A {
+ @decorator()
+ get foo () {}
+
+ @decorator()
+ set foo (value) {}
+}
+
+// Prettier 2.8.6
+SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3)
+ 3 | get foo () {}
+ 4 |
+> 5 | @decorator()
+ | ^^^^^^^^^^^^
+ 6 | set foo (value) {}
+ 7 | }
+
+// Prettier 2.8.7
+class A {
+ @decorator()
+ get foo() {}
+
+ @decorator()
+ set foo(value) {}
+}
+```
+
# 2.8.6
[diff](https://github.com/prettier/prettier/compare/2.8.5...2.8.6)
diff --git a/changelog_unreleased/vue/14587.md b/changelog_unreleased/vue/14587.md
new file mode 100644
index 000000000..707e519f2
--- /dev/null
+++ b/changelog_unreleased/vue/14587.md
@@ -0,0 +1,25 @@
+#### Format TS expressions when any script tag has `lang="ts"` (#14587 by @seiyab)
+
+
+```vue
+
+
+
+
+ {{ (x as number).toFixed(2) }}
+
+
+
+
+
+
+ {{ (x as number).toFixed(2) }}
+
+
+
+
+
+
+ {{ (x as number).toFixed(2) }}
+
+```
diff --git a/docs/browser.md b/docs/browser.md
index b06a74a29..62ba96f26 100644
--- a/docs/browser.md
+++ b/docs/browser.md
@@ -18,7 +18,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
+- **`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
You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option.
@@ -29,8 +29,8 @@ See below for examples.
### Global
```html
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ (x as number).toFixed(2) }}
+
+
+
+=====================================output=====================================
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ (x as number).toFixed(2) }}
+
+
+
+================================================================================
+`;
+
exports[`lang-tsx.vue format 1`] = `
====================================options=====================================
parsers: ["vue"]
diff --git a/tests/format/vue/multiparser/lang-ts-multiple-script-tags.vue b/tests/format/vue/multiparser/lang-ts-multiple-script-tags.vue
new file mode 100644
index 000000000..d60027bb2
--- /dev/null
+++ b/tests/format/vue/multiparser/lang-ts-multiple-script-tags.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ (x as number).toFixed(2) }}
+
+
diff --git a/website/versioned_docs/version-stable/browser.md b/website/versioned_docs/version-stable/browser.md
index f1dc9b526..44592f6aa 100644
--- a/website/versioned_docs/version-stable/browser.md
+++ b/website/versioned_docs/version-stable/browser.md
@@ -21,8 +21,8 @@ Required options:
- **`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 named
- - `parser-*.js` in and
- - `parser-*.mjs` in
+ - `parser-*.js` in and
+ - `parser-*.mjs` in
You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option.
@@ -33,8 +33,8 @@ See below for examples.
### Global
```html
-
-
+
+