Skip to content

Commit a0c51b5

Browse files
authored
fix(55694): format issues (#55721)
1 parent d1738ce commit a0c51b5

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/services/formatting/rules.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export function getAllRules(): RuleSpec[] {
106106
rule("SpaceAfterQuestionMarkInConditionalOperator", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], RuleAction.InsertSpace),
107107

108108
// in other cases there should be no space between '?' and next token
109-
rule("NoSpaceAfterQuestionMark", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace),
109+
rule("NoSpaceAfterQuestionMark", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], RuleAction.DeleteSpace),
110110

111111
rule("NoSpaceBeforeDot", anyToken, [SyntaxKind.DotToken, SyntaxKind.QuestionDotToken], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], RuleAction.DeleteSpace),
112112
rule("NoSpaceAfterDot", [SyntaxKind.DotToken, SyntaxKind.QuestionDotToken], anyToken, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace),
@@ -561,6 +561,14 @@ function isTypeAnnotationContext(context: FormattingContext): boolean {
561561
isFunctionLikeKind(contextKind);
562562
}
563563

564+
function isOptionalPropertyContext(context: FormattingContext) {
565+
return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;
566+
}
567+
568+
function isNonOptionalPropertyContext(context: FormattingContext) {
569+
return !isOptionalPropertyContext(context);
570+
}
571+
564572
function isConditionalOperatorContext(context: FormattingContext): boolean {
565573
return context.contextNode.kind === SyntaxKind.ConditionalExpression ||
566574
context.contextNode.kind === SyntaxKind.ConditionalType;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
///<reference path="fourslash.ts"/>
2+
3+
////export class C extends Error {
4+
//// message: string;
5+
//// data? = {};
6+
////}
7+
8+
format.document();
9+
verify.currentFileContentIs(
10+
`export class C extends Error {
11+
message: string;
12+
data? = {};
13+
}`);

0 commit comments

Comments
 (0)