Improve plain text display of jsdocs tags

This commit is contained in:
Matt Bierner 2017-05-10 16:39:10 -07:00
parent 9587f8f379
commit 9cce34d949
3 changed files with 9 additions and 8 deletions

View file

@ -243,8 +243,7 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP
const detail = details[0];
item.detail = Previewer.plain(detail.displayParts);
const tags = Previewer.tagsPlainPreview(detail.tags);
item.documentation = Previewer.plain(detail.documentation) + (tags ? '\n\n' + tags : '');
item.documentation = Previewer.plainDocumentation(detail.documentation, detail.tags);
if (detail && this.config.useCodeSnippetsOnMethodSuggest && (item.kind === CompletionItemKind.Function || item.kind === CompletionItemKind.Method)) {
return this.isValidFunctionCompletionContext(filepath, item.position).then(shouldCompleteFunction => {

View file

@ -26,7 +26,7 @@ export function tagsMarkdownPreview(tags: Proto.JSDocTagInfo[]): string {
.join(' \n\n');
}
export function tagsPlainPreview(tags: Proto.JSDocTagInfo[]): string {
function tagsPlainPreview(tags: Proto.JSDocTagInfo[]): string {
return (tags || [])
.map(tag => {
const label = `@${tag.name}`;
@ -35,5 +35,10 @@ export function tagsPlainPreview(tags: Proto.JSDocTagInfo[]): string {
}
return label + (tag.text.match(/\r\n|\n/g) ? '\n' + tag.text : `${tag.text}`);
})
.join('\n');
.join('\n\ngit');
}
export function plainDocumentation(documentation: Proto.SymbolDisplayPart[], tags: Proto.JSDocTagInfo[]): string {
const parts = [plain(documentation), tagsPlainPreview(tags)];
return parts.filter(x => x).join('\n\n');
}

View file

@ -61,10 +61,7 @@ export default class TypeScriptSignatureHelpProvider implements SignatureHelpPro
}
});
signature.label += Previewer.plain(item.suffixDisplayParts);
const tags = Previewer.tagsPlainPreview(item.tags);
signature.documentation = Previewer.plain(item.documentation) + (tags ? '\n\n' + tags : '');
signature.documentation = Previewer.plainDocumentation(item.documentation, item.tags);
result.signatures.push(signature);
});