Skip to content

Commit a34c756

Browse files
authored
Allow unsupported types for tree tooltip (microsoft#102366)
Fixes microsoft#102170
1 parent 4201b3d commit a34c756

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

src/vs/workbench/api/common/extHostTreeViews.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { ExtHostTreeViewsShape, MainThreadTreeViewsShape } from './extHost.proto
1313
import { ITreeItem, TreeViewItemHandleArg, ITreeItemLabel, IRevealOptions } from 'vs/workbench/common/views';
1414
import { ExtHostCommands, CommandsConverter } from 'vs/workbench/api/common/extHostCommands';
1515
import { asPromise } from 'vs/base/common/async';
16-
import { TreeItemCollapsibleState, ThemeIcon } from 'vs/workbench/api/common/extHostTypes';
16+
import { TreeItemCollapsibleState, ThemeIcon, MarkdownString as MarkdownStringType } from 'vs/workbench/api/common/extHostTypes';
1717
import { isUndefinedOrNull, isString } from 'vs/base/common/types';
1818
import { equals, coalesce } from 'vs/base/common/arrays';
1919
import { ILogService } from 'vs/platform/log/common/log';
@@ -527,14 +527,11 @@ class ExtHostTreeView<T> extends Disposable {
527527
}
528528

529529
private getTooltip(tooltip?: string | vscode.MarkdownString): string | IMarkdownString | undefined {
530-
if (typeof tooltip === 'string') {
531-
return tooltip;
532-
} else if (tooltip === undefined) {
533-
return undefined;
534-
} else {
530+
if (MarkdownStringType.isMarkdownString(tooltip)) {
535531
checkProposedApiEnabled(this.extension);
536532
return MarkdownString.from(tooltip);
537533
}
534+
return tooltip;
538535
}
539536

540537
private createTreeNode(element: T, extensionTreeItem: vscode.TreeItem2, parent: TreeNode | Root): TreeNode {

src/vs/workbench/api/common/extHostTypes.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1271,6 +1271,13 @@ export class MarkdownString {
12711271
this.value += '\n```\n';
12721272
return this;
12731273
}
1274+
1275+
static isMarkdownString(thing: any): thing is vscode.MarkdownString {
1276+
if (thing instanceof MarkdownString) {
1277+
return true;
1278+
}
1279+
return thing && thing.appendCodeblock && thing.appendMarkdown && thing.appendText && (thing.value !== undefined);
1280+
}
12741281
}
12751282

12761283
@es5ClassCompat

0 commit comments

Comments
 (0)