Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.

Commit f3e341a

Browse files
committed
add (hacky!) theme icons
1 parent 93fcb2b commit f3e341a

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

src/provider.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export class CallItemDataProvider implements vscode.TreeDataProvider<CallHierarc
8484
const item = new vscode.TreeItem(element.item.name);
8585
item.description = element.item.detail;
8686
item.contextValue = 'call-item';
87-
// item.iconPath = vscode.Uri.parse('vscode-icon://codicon/zap'); // todo@joh
87+
item.iconPath = CallItemDataProvider._getThemeIcon(element.item.kind);
8888
item.command = { command: 'references-view.show', title: 'Open Call', arguments: [element] };
8989
item.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed;
9090
return item;
@@ -101,6 +101,41 @@ export class CallItemDataProvider implements vscode.TreeDataProvider<CallHierarc
101101
getParent(element: CallHierarchyItem) {
102102
return element.parent;
103103
}
104+
105+
private static _themeIconIds = {
106+
[vscode.SymbolKind.File]: 'symbol-file',
107+
[vscode.SymbolKind.Module]: 'symbol-module',
108+
[vscode.SymbolKind.Namespace]: 'symbol-namespace',
109+
[vscode.SymbolKind.Package]: 'symbol-package',
110+
[vscode.SymbolKind.Class]: 'symbol-class',
111+
[vscode.SymbolKind.Method]: 'symbol-method',
112+
[vscode.SymbolKind.Property]: 'symbol-property',
113+
[vscode.SymbolKind.Field]: 'symbol-field',
114+
[vscode.SymbolKind.Constructor]: 'symbol-constructor',
115+
[vscode.SymbolKind.Enum]: 'symbol-enum',
116+
[vscode.SymbolKind.Interface]: 'symbol-interface',
117+
[vscode.SymbolKind.Function]: 'symbol-function',
118+
[vscode.SymbolKind.Variable]: 'symbol-variable',
119+
[vscode.SymbolKind.Constant]: 'symbol-constant',
120+
[vscode.SymbolKind.String]: 'symbol-string',
121+
[vscode.SymbolKind.Number]: 'symbol-number',
122+
[vscode.SymbolKind.Boolean]: 'symbol-boolean',
123+
[vscode.SymbolKind.Array]: 'symbol-array',
124+
[vscode.SymbolKind.Object]: 'symbol-object',
125+
[vscode.SymbolKind.Key]: 'symbol-key',
126+
[vscode.SymbolKind.Null]: 'symbol-null',
127+
[vscode.SymbolKind.EnumMember]: 'symbol-enum-member',
128+
[vscode.SymbolKind.Struct]: 'symbol-struct',
129+
[vscode.SymbolKind.Event]: 'symbol-event',
130+
[vscode.SymbolKind.Operator]: 'symbol-operator',
131+
[vscode.SymbolKind.TypeParameter]: 'symbol-type-parameter',
132+
};
133+
134+
private static _getThemeIcon(kind: vscode.SymbolKind): vscode.ThemeIcon | undefined {
135+
let id = CallItemDataProvider._themeIconIds[kind];
136+
// @ts-ignore
137+
return id && new vscode.ThemeIcon(id);
138+
}
104139
}
105140

106141
export class HistoryDataProvider implements vscode.TreeDataProvider<HistoryItem> {

0 commit comments

Comments
 (0)