Remove space in empty object type (#19583)
This commit is contained in:
1 parent
6394c73209
commit
cbee7377a1
10 files changed
+237
-11
No files matched your search
@@ -0,0 +1,20 @@
|
|||||||
|
#### Remove space in comment-only object type (#19583 by @fisker)
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```tsx
|
||||||
|
// Input
|
||||||
|
var foo = {
|
||||||
|
/* comment */
|
||||||
|
};
|
||||||
|
type Foo = {
|
||||||
|
/* comment */
|
||||||
|
};
|
||||||
|
|
||||||
|
// Prettier stable
|
||||||
|
var foo = {/* comment */};
|
||||||
|
type Foo = { /* comment */ };
|
||||||
|
|
||||||
|
// Prettier main
|
||||||
|
var foo = {/* comment */};
|
||||||
|
type Foo = {/* comment */};
|
||||||
|
```
|
||||||
@@ -39,10 +39,12 @@ function printClassBody(path, options, print) {
|
|||||||
|
|
||||||
const [openingBrace, closingBrace] =
|
const [openingBrace, closingBrace] =
|
||||||
isFlowTypeAnnotation && node.exact ? ["{|", "|}"] : "{}";
|
isFlowTypeAnnotation && node.exact ? ["{|", "|}"] : "{}";
|
||||||
|
let isEmpty = true;
|
||||||
let firstMember;
|
let firstMember;
|
||||||
|
|
||||||
iterateClassMembersPath(path, ({ node, next, isLast }) => {
|
iterateClassMembersPath(path, ({ node, next, isLast }) => {
|
||||||
firstMember ??= node;
|
firstMember ??= node;
|
||||||
|
isEmpty &&= false;
|
||||||
parts.push(print());
|
parts.push(print());
|
||||||
|
|
||||||
if (!isFlowRecordDeclaration && isObjectType && isFlowTypeAnnotation) {
|
if (!isFlowRecordDeclaration && isObjectType && isFlowTypeAnnotation) {
|
||||||
@@ -83,6 +85,7 @@ function printClassBody(path, options, print) {
|
|||||||
|
|
||||||
// TODO: this part can unify with the similar part in `printObject`
|
// TODO: this part can unify with the similar part in `printObject`
|
||||||
if (node.type === "ObjectTypeAnnotation" && node.inexact) {
|
if (node.type === "ObjectTypeAnnotation" && node.inexact) {
|
||||||
|
isEmpty &&= false;
|
||||||
let printed;
|
let printed;
|
||||||
if (hasComment(node, CommentCheckFlags.Dangling)) {
|
if (hasComment(node, CommentCheckFlags.Dangling)) {
|
||||||
const hasLineComments = hasComment(node, CommentCheckFlags.Line);
|
const hasLineComments = hasComment(node, CommentCheckFlags.Line);
|
||||||
@@ -114,7 +117,8 @@ function printClassBody(path, options, print) {
|
|||||||
if (parts.length === 0) {
|
if (parts.length === 0) {
|
||||||
content = openingBrace + closingBrace;
|
content = openingBrace + closingBrace;
|
||||||
} else {
|
} else {
|
||||||
const spacing = options.bracketSpacing ? line : softline;
|
const spacing =
|
||||||
|
!options.bracketSpacing || (isEmpty && !shouldBreak) ? softline : line;
|
||||||
content = [
|
content = [
|
||||||
openingBrace,
|
openingBrace,
|
||||||
indent([spacing, ...parts]),
|
indent([spacing, ...parts]),
|
||||||
|
|||||||
@@ -43,16 +43,16 @@ T6 = {/* comment */ // comment
|
|||||||
};
|
};
|
||||||
|
|
||||||
=====================================output=====================================
|
=====================================output=====================================
|
||||||
type T1 = {| /* comment */ |};
|
type T1 = {|/* comment */|};
|
||||||
type T12 = { /* comment */ };
|
type T12 = {/* comment */};
|
||||||
T1 = {/* comment */};
|
T1 = {/* comment */};
|
||||||
|
|
||||||
type T2 = {| /* comment */ |};
|
type T2 = {|/* comment */|};
|
||||||
type T22 = { /* comment */ };
|
type T22 = {/* comment */};
|
||||||
T2 = {/* comment */};
|
T2 = {/* comment */};
|
||||||
|
|
||||||
type T3 = {| /* comment */ |};
|
type T3 = {|/* comment */|};
|
||||||
type T32 = { /* comment */ };
|
type T32 = {/* comment */};
|
||||||
T3 = {/* comment */};
|
T3 = {/* comment */};
|
||||||
|
|
||||||
type T4 = {|
|
type T4 = {|
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||||
|
|
||||||
|
exports[`empty.js - {"bracketSpacing":false} format 1`] = `
|
||||||
|
====================================options=====================================
|
||||||
|
bracketSpacing: false
|
||||||
|
parsers: ["flow"]
|
||||||
|
printWidth: 80 (default) |
|
||||||
|
=====================================input======================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
type O23 = {...};
|
||||||
|
type O24 = {/*c*/ ...};
|
||||||
|
type O31 = {||};
|
||||||
|
type O32 = {|/*c*/|};
|
||||||
|
// type O33 = {|...|};
|
||||||
|
// type O34 = {|/*c*/ ...|};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {/*c*/}
|
||||||
|
|
||||||
|
=====================================output=====================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
type O23 = {...};
|
||||||
|
type O24 = {/*c*/ ...};
|
||||||
|
type O31 = {||};
|
||||||
|
type O32 = {|/*c*/|};
|
||||||
|
// type O33 = {|...|};
|
||||||
|
// type O34 = {|/*c*/ ...|};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {
|
||||||
|
/*c*/
|
||||||
|
}
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`empty.js - {"bracketSpacing":true} format 1`] = `
|
||||||
|
====================================options=====================================
|
||||||
|
bracketSpacing: true
|
||||||
|
parsers: ["flow"]
|
||||||
|
printWidth: 80 (default) |
|
||||||
|
=====================================input======================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
type O23 = {...};
|
||||||
|
type O24 = {/*c*/ ...};
|
||||||
|
type O31 = {||};
|
||||||
|
type O32 = {|/*c*/|};
|
||||||
|
// type O33 = {|...|};
|
||||||
|
// type O34 = {|/*c*/ ...|};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {/*c*/}
|
||||||
|
|
||||||
|
=====================================output=====================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
type O23 = { ... };
|
||||||
|
type O24 = { /*c*/ ... };
|
||||||
|
type O31 = {||};
|
||||||
|
type O32 = {|/*c*/|};
|
||||||
|
// type O33 = {|...|};
|
||||||
|
// type O34 = {|/*c*/ ...|};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {
|
||||||
|
/*c*/
|
||||||
|
}
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
`;
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
type O23 = {...};
|
||||||
|
type O24 = {/*c*/ ...};
|
||||||
|
type O31 = {||};
|
||||||
|
type O32 = {|/*c*/|};
|
||||||
|
// type O33 = {|...|};
|
||||||
|
// type O34 = {|/*c*/ ...|};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {/*c*/}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
runFormatTest(import.meta, ["flow"], { bracketSpacing: true });
|
||||||
|
runFormatTest(import.meta, ["flow"], { bracketSpacing: false });
|
||||||
@@ -63,10 +63,10 @@ type T2 = {
|
|||||||
type T3 = {
|
type T3 = {
|
||||||
//comment
|
//comment
|
||||||
};
|
};
|
||||||
type T4 = { /*comment*/ };
|
type T4 = {/*comment*/};
|
||||||
type T5 = { /*comment*/ };
|
type T5 = {/*comment*/};
|
||||||
type T6 = { /*comment*/ };
|
type T6 = {/*comment*/};
|
||||||
type T7 = { /*comment*/ };
|
type T7 = {/*comment*/};
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
`;
|
`;
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||||
|
|
||||||
|
exports[`empty.ts - {"bracketSpacing":false} format 1`] = `
|
||||||
|
====================================options=====================================
|
||||||
|
bracketSpacing: false
|
||||||
|
parsers: ["typescript"]
|
||||||
|
printWidth: 80 (default) |
|
||||||
|
=====================================input======================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {/*c*/}
|
||||||
|
|
||||||
|
=====================================output=====================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {
|
||||||
|
/*c*/
|
||||||
|
}
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`empty.ts - {"bracketSpacing":true} format 1`] = `
|
||||||
|
====================================options=====================================
|
||||||
|
bracketSpacing: true
|
||||||
|
parsers: ["typescript"]
|
||||||
|
printWidth: 80 (default) |
|
||||||
|
=====================================input======================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {/*c*/}
|
||||||
|
|
||||||
|
=====================================output=====================================
|
||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {
|
||||||
|
/*c*/
|
||||||
|
}
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
`;
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
a = [];
|
||||||
|
a = [/*c*/];
|
||||||
|
type A11 = [];
|
||||||
|
type A12 = [/*c*/];
|
||||||
|
|
||||||
|
o = {};
|
||||||
|
o = {/*c*/};
|
||||||
|
type O21 = {};
|
||||||
|
type O22 = {/*c*/};
|
||||||
|
interface I21 {}
|
||||||
|
interface I22 {/*c*/}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
runFormatTest(import.meta, ["typescript"], { bracketSpacing: true });
|
||||||
|
runFormatTest(import.meta, ["typescript"], { bracketSpacing: false });
|
||||||
Reference in new issue
Block a user