From 5f2d3f73ab37c1cfd7fdb4ef706cbce490ca8e13 Mon Sep 17 00:00:00 2001 From: Sebastian Pahnke Date: Mon, 7 Sep 2020 23:49:30 +0200 Subject: [PATCH] Include tags in documentation string of suggestion items --- src/languageFeatures.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/languageFeatures.ts b/src/languageFeatures.ts index d4fe4e5d..c59d19a8 100644 --- a/src/languageFeatures.ts +++ b/src/languageFeatures.ts @@ -508,7 +508,7 @@ export class SuggestAdapter kind: SuggestAdapter.convertKind(details.kind), detail: displayPartsToString(details.displayParts), documentation: { - value: displayPartsToString(details.documentation) + value: SuggestAdapter.createDocumentationString(details) } }; } @@ -545,6 +545,25 @@ export class SuggestAdapter return languages.CompletionItemKind.Property; } + + private static createDocumentationString( + details: ts.CompletionEntryDetails + ): string { + let documentationString = displayPartsToString(details.documentation); + if (details.tags) { + for (const tag of details.tags) { + documentationString += `\n\n*@${tag.name}*`; + if (tag.name === 'param' && tag.text) { + const [paramName, ...rest] = tag.text.split(' '); + documentationString += `\`${paramName}\``; + if (rest.length > 0) documentationString += ` — ${rest.join(' ')}`; + } else if (tag.text) { + documentationString += ` — ${tag.text}`; + } + } + } + return documentationString; + } } export class SignatureHelpAdapter