Skip to content

Commit 72acef9

Browse files
pujiaxunjdneo
authored andcommitted
Add tooltips for sub-category folder (#143)
1 parent f171937 commit 72acef9

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Diff for: src/explorer/LeetCodeTreeDataProvider.ts

+32
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) jdneo. All rights reserved.
22
// Licensed under the MIT license.
33

4+
import * as os from "os";
45
import * as path from "path";
56
import * as vscode from "vscode";
67
import * as list from "../commands/list";
@@ -46,6 +47,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
4647
const idPrefix: number = Date.now();
4748
return {
4849
label: element.isProblem ? `[${element.id}] ${element.name}` : element.name,
50+
tooltip: this.getSubCategoryTooltip(element),
4951
id: `${idPrefix}.${element.parentName}.${element.id}`,
5052
collapsibleState: element.isProblem ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed,
5153
contextValue: element.isProblem ? "problem" : element.id.toLowerCase(),
@@ -168,6 +170,36 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
168170
}
169171
}
170172

173+
private getSubCategoryTooltip(element: LeetCodeNode): string {
174+
// return '' unless it is a sub-category node
175+
if (element.isProblem || !this.treeData[element.parentName]) {
176+
return "";
177+
}
178+
179+
const problems: IProblem[] = this.treeData[element.parentName].get(element.id);
180+
181+
let acceptedNum: number = 0;
182+
let failedNum: number = 0;
183+
for (const prob of problems) {
184+
switch (prob.state) {
185+
case ProblemState.AC:
186+
acceptedNum++;
187+
break;
188+
case ProblemState.NotAC:
189+
failedNum++;
190+
break;
191+
default:
192+
break;
193+
}
194+
}
195+
196+
return [
197+
`AC: ${acceptedNum}`,
198+
`Failed: ${failedNum}`,
199+
`Total: ${problems.length}`,
200+
].join(os.EOL);
201+
}
202+
171203
private addProblemToTreeData(problem: IProblem): void {
172204
this.putProblemToMap(this.treeData.Difficulty, problem.difficulty, problem);
173205
for (const tag of problem.tags) {

0 commit comments

Comments
 (0)