Skip to content

Commit

Permalink
Add tooltips for sub-category folder (#143)
Browse files Browse the repository at this point in the history
  • Loading branch information
pujiaxun authored and jdneo committed Feb 20, 2019
1 parent f171937 commit 72acef9
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/explorer/LeetCodeTreeDataProvider.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) jdneo. All rights reserved.
// Licensed under the MIT license.

import * as os from "os";
import * as path from "path";
import * as vscode from "vscode";
import * as list from "../commands/list";
Expand Down Expand Up @@ -46,6 +47,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
const idPrefix: number = Date.now();
return {
label: element.isProblem ? `[${element.id}] ${element.name}` : element.name,
tooltip: this.getSubCategoryTooltip(element),
id: `${idPrefix}.${element.parentName}.${element.id}`,
collapsibleState: element.isProblem ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed,
contextValue: element.isProblem ? "problem" : element.id.toLowerCase(),
Expand Down Expand Up @@ -168,6 +170,36 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
}
}

private getSubCategoryTooltip(element: LeetCodeNode): string {
// return '' unless it is a sub-category node
if (element.isProblem || !this.treeData[element.parentName]) {
return "";
}

const problems: IProblem[] = this.treeData[element.parentName].get(element.id);

let acceptedNum: number = 0;
let failedNum: number = 0;
for (const prob of problems) {
switch (prob.state) {
case ProblemState.AC:
acceptedNum++;
break;
case ProblemState.NotAC:
failedNum++;
break;
default:
break;
}
}

return [
`AC: ${acceptedNum}`,
`Failed: ${failedNum}`,
`Total: ${problems.length}`,
].join(os.EOL);
}

private addProblemToTreeData(problem: IProblem): void {
this.putProblemToMap(this.treeData.Difficulty, problem.difficulty, problem);
for (const tag of problem.tags) {
Expand Down

0 comments on commit 72acef9

Please sign in to comment.