소스 검색

Include tags in documentation string of suggestion items

Sebastian Pahnke 4 년 전
부모
커밋
5f2d3f73ab
1개의 변경된 파일20개의 추가작업 그리고 1개의 파일을 삭제
  1. 20 1
      src/languageFeatures.ts

+ 20 - 1
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