From 5f372d9d7efa439acb4edc8c99c4950e96af34b0 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Wed, 8 Dec 2021 01:28:41 +0200 Subject: [PATCH] fix(46606): show completion in jsdoc property tag (#46657) --- src/services/completions.ts | 5 +++-- tests/cases/fourslash/jsdocPropertyTagCompletion.ts | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/jsdocPropertyTagCompletion.ts diff --git a/src/services/completions.ts b/src/services/completions.ts index 237c7a716fd..ca265f268f0 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -3531,8 +3531,9 @@ namespace ts.Completions { /** Get the corresponding JSDocTag node if the position is in a jsDoc comment */ function getJsDocTagAtPosition(node: Node, position: number): JSDocTag | undefined { - const jsdoc = findAncestor(node, isJSDoc); - return jsdoc && jsdoc.tags && (rangeContainsPosition(jsdoc, position) ? findLast(jsdoc.tags, tag => tag.pos < position) : undefined); + return findAncestor(node, n => + isJSDocTag(n) && rangeContainsPosition(n, position) ? true : + isJSDoc(n) ? "quit" : false) as JSDocTag | undefined; } export function getPropertiesForObjectExpression(contextualType: Type, completionsType: Type | undefined, obj: ObjectLiteralExpression | JsxAttributes, checker: TypeChecker): Symbol[] { diff --git a/tests/cases/fourslash/jsdocPropertyTagCompletion.ts b/tests/cases/fourslash/jsdocPropertyTagCompletion.ts new file mode 100644 index 00000000000..903806471b0 --- /dev/null +++ b/tests/cases/fourslash/jsdocPropertyTagCompletion.ts @@ -0,0 +1,10 @@ +/// + +/////** +//// * @typedef {Object} Foo +//// * @property {/**/} +//// */ + +verify.completions( + { marker: "", exact: completion.globalTypes }, +);