diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ddb715..8d25b7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## version 2.12.3 + +- hideScore 配置变化时刷新题目列表 + ## version 2.12.2 - 修复 使用${tag}作为文件夹名称不生效 @@ -5,8 +9,8 @@ ## version 2.12.1 -- 配置filePath文件名 增加 ${yyyymmdd}格式 -- 配置filePath文件名 增加 ${timestamp}格式 +- 配置 filePath 文件名 增加 ${yyyymmdd}格式 +- 配置 filePath 文件名 增加 ${timestamp}格式 ## version 2.11.16 diff --git a/package-lock.json b/package-lock.json index bba72f1..7455b8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-leetcode-problem-rating", - "version": "2.12.1", + "version": "2.12.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "vscode-leetcode-problem-rating", - "version": "2.12.1", + "version": "2.12.2", "license": "MIT", "dependencies": { "ansi-styles": "3.2.1", diff --git a/package.json b/package.json index 868f2a4..9091fa8 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vscode-leetcode-problem-rating", "displayName": "LeetCode", "description": "LeetCode 官方插件增强, 代码开源, 增加 LeetCode 题目难度分, 给个star吧, 球球了", - "version": "2.12.2", + "version": "2.12.3", "author": "ccagml", "publisher": "ccagml", "license": "MIT", diff --git a/src/controller/TreeViewController.ts b/src/controller/TreeViewController.ts index 17e3c19..b2a6f8f 100644 --- a/src/controller/TreeViewController.ts +++ b/src/controller/TreeViewController.ts @@ -11,7 +11,7 @@ import * as lodash from "lodash"; import * as path from "path"; import * as vscode from "vscode"; import { toNumber } from "lodash"; -import { Disposable, Uri, window } from "vscode"; +import { Disposable, Uri, window, workspace, ConfigurationChangeEvent } from "vscode"; import { SearchNode, userContestRankingObj, @@ -78,7 +78,16 @@ class TreeViewController implements Disposable { private searchSet: Map = new Map(); private waitTodayQuestion: boolean; private waitUserContest: boolean; + private configurationChangeListener: Disposable; + constructor() { + this.configurationChangeListener = workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => { + if (event.affectsConfiguration("leetcode-problem-rating.hideScore")) { + treeDataService.refresh(); + bricksDataService.refresh(); + } + }, this); + } // 获取当前文件的路径 /** * It returns the path of the currently active file, or undefined if there is no active file @@ -996,7 +1005,7 @@ class TreeViewController implements Disposable { } public async resolveTagForProblem(problem: IProblem): Promise { - let path_en_tags = treeDataService.getTagsDataEn(problem.id) + let path_en_tags = treeDataService.getTagsDataEn(problem.id); if (path_en_tags.length === 1) { return path_en_tags[0]; } @@ -1078,7 +1087,7 @@ class TreeViewController implements Disposable { const temp_searchSet: Map = this.searchSet; const temp_waitTodayQuestion: boolean = this.waitTodayQuestion; const temp_waitUserContest: boolean = this.waitUserContest; - this.dispose(); + this.clearCache(); let user_score = statusBarService.getUserContestScore(); for (const problem of await this.getAllProblems()) { this.explorerNodeMap.set(problem.id, new NodeModel(problem, true, user_score)); @@ -1492,7 +1501,7 @@ class TreeViewController implements Disposable { return this.applySortingStrategy(res); } - public dispose(): void { + public clearCache(): void { this.explorerNodeMap.clear(); this.companySet.clear(); this.tagSet.clear(); @@ -1500,6 +1509,11 @@ class TreeViewController implements Disposable { this.qidToFid.clear(); } + public dispose(): void { + this.configurationChangeListener.dispose(); + this.clearCache(); + } + private sortSubCategoryNodes(subCategoryNodes: NodeModel[], category: Category): void { switch (category) { case Category.Difficulty: diff --git a/src/service/TreeDataService.ts b/src/service/TreeDataService.ts index 04012ae..718c6b7 100644 --- a/src/service/TreeDataService.ts +++ b/src/service/TreeDataService.ts @@ -122,7 +122,7 @@ export class TreeDataService implements vscode.TreeDataProvider { return []; } else { switch ( - element.id // First-level + element.id // First-level ) { case Category.All: return treeViewController.getAllNodes();