From 1787037e902dca8aab3728c18106bac65d5dbb2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sun, 1 Sep 2024 10:09:05 +0200 Subject: [PATCH 1/2] Don't return `tags` when returning quick info for JSDoc nodes --- src/services/symbolDisplay.ts | 4 +++- tests/cases/fourslash/jsDocContextualTagsInJsDoc1.ts | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/jsDocContextualTagsInJsDoc1.ts diff --git a/src/services/symbolDisplay.ts b/src/services/symbolDisplay.ts index 5ba8170b17b32..7ce04c1325bb2 100644 --- a/src/services/symbolDisplay.ts +++ b/src/services/symbolDisplay.ts @@ -13,6 +13,7 @@ import { EnumMember, ExportAssignment, find, + findAncestor, first, firstDefined, forEach, @@ -50,6 +51,7 @@ import { isFunctionLike, isIdentifier, isInExpressionContext, + isJSDoc, isJsxOpeningLikeElement, isLet, isModuleWithStringLiteralName, @@ -730,7 +732,7 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker: Type } } - if (tags.length === 0 && !hasMultipleSignatures) { + if (tags.length === 0 && !hasMultipleSignatures && !findAncestor(location, isJSDoc)) { tags = symbol.getContextualJsDocTags(enclosingDeclaration, typeChecker); } diff --git a/tests/cases/fourslash/jsDocContextualTagsInJsDoc1.ts b/tests/cases/fourslash/jsDocContextualTagsInJsDoc1.ts new file mode 100644 index 0000000000000..23ecdce7b335c --- /dev/null +++ b/tests/cases/fourslash/jsDocContextualTagsInJsDoc1.ts @@ -0,0 +1,9 @@ +/// + +//// /** +//// * @param x/*1*/ Does the thing +//// */ +//// function foo(x/*2*/) {} + +verify.quickInfoAt("1", "(parameter) x: any", "Does the thing", undefined); +verify.quickInfoAt("2", "(parameter) x: any", "Does the thing", [{ name: "param", text: "x Does the thing" }]); From 6e3931dc1923dcae03504d19abeb82cf76a524df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 30 Jun 2025 21:49:49 +0200 Subject: [PATCH 2/2] simplify --- src/services/symbolDisplay.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/services/symbolDisplay.ts b/src/services/symbolDisplay.ts index 7ce04c1325bb2..29c2512cb5d51 100644 --- a/src/services/symbolDisplay.ts +++ b/src/services/symbolDisplay.ts @@ -13,7 +13,6 @@ import { EnumMember, ExportAssignment, find, - findAncestor, first, firstDefined, forEach, @@ -51,7 +50,7 @@ import { isFunctionLike, isIdentifier, isInExpressionContext, - isJSDoc, + isInJSDoc, isJsxOpeningLikeElement, isLet, isModuleWithStringLiteralName, @@ -732,7 +731,7 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker: Type } } - if (tags.length === 0 && !hasMultipleSignatures && !findAncestor(location, isJSDoc)) { + if (tags.length === 0 && !hasMultipleSignatures && !isInJSDoc(location)) { tags = symbol.getContextualJsDocTags(enclosingDeclaration, typeChecker); }