Print comment following a JSX generic (#6209)
parent
d6cf6ac548
commit
4e8f911a29
|
@ -43,3 +43,36 @@ const link = <a href="example.com">http://example.com</a>;
|
|||
```
|
||||
|
||||
-->
|
||||
|
||||
#### TypeScript: Print comment following a JSX element with generic ([#6209] by [@duailibe])
|
||||
|
||||
Previous versions would not print this comment, this has been fixed in this version.
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
```ts
|
||||
// Input
|
||||
const comp = (
|
||||
<Foo<number>
|
||||
// This comment goes missing
|
||||
value={4}
|
||||
>
|
||||
Test
|
||||
</Foo>
|
||||
);
|
||||
|
||||
// Output (Prettier stable)
|
||||
const comp = <Foo<number> value={4}>Test</Foo>;
|
||||
|
||||
// Output (Prettier master)
|
||||
const comp = (
|
||||
<Foo<number>
|
||||
// This comment goes missing
|
||||
value={4}
|
||||
>
|
||||
Test
|
||||
</Foo>
|
||||
);
|
||||
```
|
||||
|
||||
[#6209]: https://github.com/prettier/prettier/pull/6209
|
||||
[@duailibe]: https://github.com/duailibe
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
"@babel/parser": "7.2.0",
|
||||
"@glimmer/syntax": "0.38.4",
|
||||
"@iarna/toml": "2.2.3",
|
||||
"@typescript-eslint/typescript-estree": "1.6.0",
|
||||
"@typescript-eslint/typescript-estree": "1.10.2",
|
||||
"angular-estree-parser": "1.1.5",
|
||||
"angular-html-parser": "1.2.0",
|
||||
"camelcase": "4.1.0",
|
||||
|
|
|
@ -2154,7 +2154,10 @@ function printPathNoParens(path, options, print, args) {
|
|||
const n = path.getValue();
|
||||
|
||||
const nameHasComments =
|
||||
n.name && n.name.comments && n.name.comments.length > 0;
|
||||
(n.name && n.name.comments && n.name.comments.length > 0) ||
|
||||
(n.typeParameters &&
|
||||
n.typeParameters.comments &&
|
||||
n.typeParameters.comments.length > 0);
|
||||
|
||||
// Don't break self-closing elements with no attributes and no comments
|
||||
if (n.selfClosing && !n.attributes.length && !nameHasComments) {
|
||||
|
|
|
@ -28,6 +28,68 @@ abstract class AbstractRule {
|
|||
================================================================================
|
||||
`;
|
||||
|
||||
exports[`after_jsx_generic.ts 1`] = `
|
||||
====================================options=====================================
|
||||
parsers: ["typescript"]
|
||||
printWidth: 80
|
||||
| printWidth
|
||||
=====================================input======================================
|
||||
let comp = (
|
||||
<>
|
||||
<Component<number> /* comment1 */></Component>
|
||||
<Component<number> foo /* comment2 */></Component>
|
||||
<Component<number> /* comment3 */ bar></Component>
|
||||
<Component<number> foo /* comment4 */ bar></Component>
|
||||
|
||||
<Component<number>
|
||||
// comment5
|
||||
></Component>
|
||||
<Component<number>
|
||||
foo
|
||||
// comment6
|
||||
></Component>
|
||||
<Component<number>
|
||||
// comment7
|
||||
foo
|
||||
></Component>
|
||||
<Component<number>
|
||||
foo
|
||||
// comment8
|
||||
bar
|
||||
></Component>
|
||||
</>
|
||||
);
|
||||
|
||||
=====================================output=====================================
|
||||
let comp = (
|
||||
<>
|
||||
<Component<number> /* comment1 */></Component>
|
||||
<Component<number> foo /* comment2 */></Component>
|
||||
<Component<number> /* comment3 */ bar></Component>
|
||||
<Component<number> foo /* comment4 */ bar></Component>
|
||||
|
||||
<Component<number>
|
||||
// comment5
|
||||
></Component>
|
||||
<Component<number>
|
||||
foo
|
||||
// comment6
|
||||
></Component>
|
||||
<Component<number>
|
||||
// comment7
|
||||
foo
|
||||
></Component>
|
||||
<Component<number>
|
||||
foo
|
||||
// comment8
|
||||
bar
|
||||
></Component>
|
||||
</>
|
||||
);
|
||||
|
||||
================================================================================
|
||||
`;
|
||||
|
||||
exports[`jsx.ts 1`] = `
|
||||
====================================options=====================================
|
||||
parsers: ["typescript"]
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
let comp = (
|
||||
<>
|
||||
<Component<number> /* comment1 */></Component>
|
||||
<Component<number> foo /* comment2 */></Component>
|
||||
<Component<number> /* comment3 */ bar></Component>
|
||||
<Component<number> foo /* comment4 */ bar></Component>
|
||||
|
||||
<Component<number>
|
||||
// comment5
|
||||
></Component>
|
||||
<Component<number>
|
||||
foo
|
||||
// comment6
|
||||
></Component>
|
||||
<Component<number>
|
||||
// comment7
|
||||
foo
|
||||
></Component>
|
||||
<Component<number>
|
||||
foo
|
||||
// comment8
|
||||
bar
|
||||
></Component>
|
||||
</>
|
||||
);
|
|
@ -782,9 +782,10 @@
|
|||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45"
|
||||
|
||||
"@typescript-eslint/typescript-estree@1.6.0":
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.6.0.tgz#6cf43a07fee08b8eb52e4513b428c8cdc9751ef0"
|
||||
"@typescript-eslint/typescript-estree@1.10.2":
|
||||
version "1.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.10.2.tgz#8403585dd74b6cfb6f78aa98b6958de158b5897b"
|
||||
integrity sha512-Kutjz0i69qraOsWeI8ETqYJ07tRLvD9URmdrMoF10bG8y8ucLmPtSxROvVejWvlJUGl2et/plnMiKRDW+rhEhw==
|
||||
dependencies:
|
||||
lodash.unescape "4.0.1"
|
||||
semver "5.5.0"
|
||||
|
|
Loading…
Reference in New Issue