HTML: treat scripts as blocks (not inline) (#6423)

* HTML: treat scripts as blocks (not inline)

Fixes #6393

Signed-off-by: Georgii Dolzhykov <thorn.mailbox@gmail.com>

* update CHANGELOG.unreleased.md
master
Georgii Dolzhykov 2019-09-05 21:24:20 +03:00 committed by Simon Lydell
parent 223443c057
commit ff9b2b6cb5
4 changed files with 51 additions and 4 deletions

View File

@ -453,6 +453,33 @@ const foo = [abc, def, ghi, jkl, mno, pqr, stu, vwx, yz] as (
)[]; )[];
``` ```
#### HTML: Script tags are now treated as blocks for the purposes of formatting ([#6423] by [@thorn0])
Previously, in the [whitespace-sensitive mode](https://prettier.io/docs/en/options.html#html-whitespace-sensitivity), they were formatted as if they were inline.
<!-- prettier-ignore-->
```html
<!-- Input -->
<script
async
src="/_next/static/development/pages/_app.js?ts=1565732195968"
></script><script></script>
<!-- Prettier (stable) -->
<script
async
src="/_next/static/development/pages/_app.js?ts=1565732195968"
></script
><script></script>
<!-- Prettier (master) -->
<script
async
src="/_next/static/development/pages/_app.js?ts=1565732195968"
></script>
<script></script>
```
#### TypeScript: Fixed to break line and add a semicolon in one execution on one line long mapped types ([#6420] by [@sosukesuzuki]) #### TypeScript: Fixed to break line and add a semicolon in one execution on one line long mapped types ([#6420] by [@sosukesuzuki])
Previously, when Prettier formatted long, one-line mapped types, it would break the line but didnt add a semicolon until you ran Prettier again (which broke Prettiers idempotency rule). Now, Prettier adds the semicolon in the first run, fixing the issue. Previously, when Prettier formatted long, one-line mapped types, it would break the line but didnt add a semicolon until you ran Prettier again (which broke Prettiers idempotency rule). Now, Prettier adds the semicolon in the first run, fixing the issue.
@ -519,6 +546,7 @@ class Class {
[#6307]: https://github.com/prettier/prettier/pull/6307 [#6307]: https://github.com/prettier/prettier/pull/6307
[#6340]: https://github.com/prettier/prettier/pull/6340 [#6340]: https://github.com/prettier/prettier/pull/6340
[#6412]: https://github.com/prettier/prettier/pull/6412 [#6412]: https://github.com/prettier/prettier/pull/6412
[#6423]: https://github.com/prettier/prettier/pull/6423
[#6420]: https://github.com/prettier/prettier/pull/6420 [#6420]: https://github.com/prettier/prettier/pull/6420
[#6411]: https://github.com/prettier/prettier/pull/6411 [#6411]: https://github.com/prettier/prettier/pull/6411
[@duailibe]: https://github.com/duailibe [@duailibe]: https://github.com/duailibe
@ -527,3 +555,4 @@ class Class {
[@g-harel]: https://github.com/g-harel [@g-harel]: https://github.com/g-harel
[@jounqin]: https://github.com/JounQin [@jounqin]: https://github.com/JounQin
[@bakkot]: https://gibhub.com/bakkot [@bakkot]: https://gibhub.com/bakkot
[@thorn0]: https://github.com/thorn0

View File

@ -25,6 +25,7 @@ const CSS_DISPLAY_TAGS = Object.assign({}, getCssStyleTags("display"), {
template: "inline", template: "inline",
source: "block", source: "block",
track: "block", track: "block",
script: "block",
// there's no css display for these elements but they behave these ways // there's no css display for these elements but they behave these ways
video: "inline-block", video: "inline-block",

View File

@ -17,11 +17,16 @@ printWidth: 80
</script> </script>
<script type="systemjs-importmap"> <script type="systemjs-importmap">
{ "json":true } { "json":true }
</script> </script><script type="invalid">
<script type="invalid">
{ "json":false } { "json":false }
</script> </script>
<script
async=""
id=""
src="/_next/static/development/pages/_app.js?ts=1565732195968"
></script><script></script>
=====================================output===================================== =====================================output=====================================
<script type="application/ld+json"> <script type="application/ld+json">
{ "json": true } { "json": true }
@ -39,5 +44,12 @@ printWidth: 80
{ "json":false } { "json":false }
</script> </script>
<script
async=""
id=""
src="/_next/static/development/pages/_app.js?ts=1565732195968"
></script>
<script></script>
================================================================================ ================================================================================
`; `;

View File

@ -9,7 +9,12 @@
</script> </script>
<script type="systemjs-importmap"> <script type="systemjs-importmap">
{ "json":true } { "json":true }
</script> </script><script type="invalid">
<script type="invalid">
{ "json":false } { "json":false }
</script> </script>
<script
async=""
id=""
src="/_next/static/development/pages/_app.js?ts=1565732195968"
></script><script></script>