fix(55694): format issues (#55721)

This commit is contained in:
Oleksandr T 2023-09-12 21:36:03 +03:00 committed by GitHub
parent d1738cef6f
commit a0c51b5336
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View File

@ -106,7 +106,7 @@ export function getAllRules(): RuleSpec[] {
rule("SpaceAfterQuestionMarkInConditionalOperator", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], RuleAction.InsertSpace),
// in other cases there should be no space between '?' and next token
rule("NoSpaceAfterQuestionMark", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace),
rule("NoSpaceAfterQuestionMark", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], RuleAction.DeleteSpace),
rule("NoSpaceBeforeDot", anyToken, [SyntaxKind.DotToken, SyntaxKind.QuestionDotToken], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], RuleAction.DeleteSpace),
rule("NoSpaceAfterDot", [SyntaxKind.DotToken, SyntaxKind.QuestionDotToken], anyToken, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace),
@ -561,6 +561,14 @@ function isTypeAnnotationContext(context: FormattingContext): boolean {
isFunctionLikeKind(contextKind);
}
function isOptionalPropertyContext(context: FormattingContext) {
return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;
}
function isNonOptionalPropertyContext(context: FormattingContext) {
return !isOptionalPropertyContext(context);
}
function isConditionalOperatorContext(context: FormattingContext): boolean {
return context.contextNode.kind === SyntaxKind.ConditionalExpression ||
context.contextNode.kind === SyntaxKind.ConditionalType;

View File

@ -0,0 +1,13 @@
///<reference path="fourslash.ts"/>
////export class C extends Error {
//// message: string;
//// data? = {};
////}
format.document();
verify.currentFileContentIs(
`export class C extends Error {
message: string;
data? = {};
}`);