Skip to content

Commit b85f39f

Browse files
committed
refactor: tree item
1 parent 5e209f3 commit b85f39f

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/elements/treeItem.ts

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Namespace, Task } from '../models/models.js';
44
export type TreeItem = WorkspaceTreeItem | NamespaceTreeItem | TaskTreeItem;
55

66
export class WorkspaceTreeItem extends vscode.TreeItem {
7+
private static readonly icon = 'folder';
78
constructor(
89
readonly label: string,
910
readonly workspace: string,
@@ -13,12 +14,16 @@ export class WorkspaceTreeItem extends vscode.TreeItem {
1314
) {
1415
super(label, collapsibleState);
1516
this.description = this.workspace;
16-
this.iconPath = new vscode.ThemeIcon('folder', new vscode.ThemeColor('vscodetask.workspaceIcon'));
17+
this.iconPath = new vscode.ThemeIcon(
18+
WorkspaceTreeItem.icon,
19+
new vscode.ThemeColor('vscodetask.workspaceIcon')
20+
);
1721
this.contextValue = `workspaceTreeItem`;
1822
}
1923
}
2024

2125
export class NamespaceTreeItem extends vscode.TreeItem {
26+
private static readonly icon = 'symbol-namespace';
2227
constructor(
2328
readonly label: string,
2429
readonly workspace: string,
@@ -27,12 +32,16 @@ export class NamespaceTreeItem extends vscode.TreeItem {
2732
readonly command?: vscode.Command
2833
) {
2934
super(label, collapsibleState);
30-
this.iconPath = new vscode.ThemeIcon('symbol-namespace', new vscode.ThemeColor('vscodetask.namespaceIcon'));
35+
this.iconPath = new vscode.ThemeIcon(
36+
NamespaceTreeItem.icon,
37+
new vscode.ThemeColor('vscodetask.namespaceIcon')
38+
);
3139
this.contextValue = `namespaceTreeItem`;
3240
}
3341
}
3442

3543
export class TaskTreeItem extends vscode.TreeItem {
44+
private static readonly icon = 'symbol-function';
3645
constructor(
3746
readonly label: string,
3847
readonly workspace: string,
@@ -44,13 +53,22 @@ export class TaskTreeItem extends vscode.TreeItem {
4453
this.description = this.task?.desc;
4554
switch (this.task.up_to_date) {
4655
case true:
47-
this.iconPath = new vscode.ThemeIcon('debug-breakpoint-data-unverified', new vscode.ThemeColor('vscodetask.upToDateIcon'));
56+
this.iconPath = new vscode.ThemeIcon(
57+
TaskTreeItem.icon,
58+
new vscode.ThemeColor('vscodetask.upToDateIcon')
59+
);
4860
break;
4961
case false:
50-
this.iconPath = new vscode.ThemeIcon('debug-breakpoint-data-unverified', new vscode.ThemeColor('vscodetask.outOfDateIcon'));
62+
this.iconPath = new vscode.ThemeIcon(
63+
TaskTreeItem.icon,
64+
new vscode.ThemeColor('vscodetask.outOfDateIcon')
65+
);
5166
break;
5267
default:
53-
this.iconPath = new vscode.ThemeIcon('debug-breakpoint-data-unverified', new vscode.ThemeColor('vscodetask.primaryColor'));
68+
this.iconPath = new vscode.ThemeIcon(
69+
TaskTreeItem.icon,
70+
new vscode.ThemeColor('vscodetask.primaryColor')
71+
);
5472
}
5573
this.contextValue = `taskTreeItem`;
5674
}

0 commit comments

Comments
 (0)