From 01cae69e3403a831bc5c752b95c8b7547dd95821 Mon Sep 17 00:00:00 2001 From: magic-akari Date: Sat, 17 Sep 2022 01:06:03 +0800 Subject: [PATCH] fix(50796): omit questionToken in object literal method completions (#50802) --- src/services/completions.ts | 2 +- .../completionsObjectLiteralMethod5.ts | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionsObjectLiteralMethod5.ts diff --git a/src/services/completions.ts b/src/services/completions.ts index 48e1c28bf01de..eb2933f3682ae 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -1171,7 +1171,7 @@ namespace ts.Completions { /*modifiers*/ undefined, typedParam.dotDotDotToken, typedParam.name, - typedParam.questionToken, + /*questionToken*/ undefined, /*type*/ undefined, typedParam.initializer, )); diff --git a/tests/cases/fourslash/completionsObjectLiteralMethod5.ts b/tests/cases/fourslash/completionsObjectLiteralMethod5.ts new file mode 100644 index 0000000000000..7e87be7bba47d --- /dev/null +++ b/tests/cases/fourslash/completionsObjectLiteralMethod5.ts @@ -0,0 +1,38 @@ +/// + +// @newline: LF +// @Filename: a.ts +////interface Foo { +//// method(x?: string): void; +////} +////const foo: Foo = { +//// /*m*/ +////} + +verify.completions({ + marker: "m", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: true, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "method", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "method"), + insertText: undefined, + }, + { + name: "method", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "method")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + isSnippet: true, + insertText: "method(x) {\n $0\n},", + labelDetails: { + detail: "(x)", + }, + }, + ], +});