extensions/typescript-language-features/src/languageFeatures/hover.ts/TypeScriptHoverProvider/getContents
class TypeScriptHoverProvider:	private getContents(
		resource: vscode.Uri,
		data: Proto.QuickInfoResponseBody,
		source: ServerType | undefined,
	) {
		const parts: vscode.MarkdownString[] = [];

		if (data.displayString) {
			const displayParts: string[] = [];

			if (source === ServerType.Syntax && this.client.hasCapabilityForResource(resource, ClientCapability.Semantic)) {
				displayParts.push(
					localize({
						key: 'loadingPrefix',
						comment: ['Prefix displayed for hover entries while the server is still loading']
					}, "(loading...)"));
			}

			displayParts.push(data.displayString);
			parts.push(new vscode.MarkdownString().appendCodeblock(displayParts.join(' '), 'typescript'));
		}
		parts.push(markdownDocumentation(data.documentation, data.tags, this.client));
		return parts;
	}