From d96be353cb1a1539ad4df1de816d02805dcf3951 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Fri, 20 Dec 2019 15:23:53 -0600 Subject: [PATCH] =?UTF-8?q?Fix=20JSDoc=20param=20type=20completions=20when?= =?UTF-8?q?=20name=20hasn=E2=80=99t=20been=20written=20yet=20(#35787)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/completions.ts | 2 +- .../completionsJsdocParamTypeBeforeName.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts diff --git a/src/services/completions.ts b/src/services/completions.ts index af3698d5cd1..d64692f2dce 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -854,7 +854,7 @@ namespace ts.Completions { insideJsDocTagTypeExpression = isCurrentlyEditingNode(tag.typeExpression); } } - if (isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) { + if (!insideJsDocTagTypeExpression && isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) { return { kind: CompletionDataKind.JsDocParameterName, tag }; } } diff --git a/tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts b/tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts new file mode 100644 index 00000000000..b638c2d0cc8 --- /dev/null +++ b/tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts @@ -0,0 +1,18 @@ +/// +//// /** @param /*name1*/ {/*type*/} /*name2*/ */ +//// function toString(obj) {} + +verify.completions({ + marker: "type", + exact: completion.globalTypes +}); + +verify.completions({ + marker: "name1", + exact: ["obj"] +}); + +verify.completions({ + marker: "name2", + exact: ["obj"] +});