From 900e2b7241643a79f1f1af8bd2ee512e6e2cf781 Mon Sep 17 00:00:00 2001 From: ZephyrJung <2895205695@qq.com> Date: Thu, 21 Feb 2019 15:11:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=80=E6=9C=89=E9=A2=98?= =?UTF-8?q?=E7=9A=84=E4=B8=B4=E6=97=B6=E5=A4=84=E7=90=86=E5=8A=9E=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 11 +++++++++++ src/commands/show.ts | 15 +++++++++++++++ src/extension.ts | 1 + 3 files changed, 27 insertions(+) diff --git a/package.json b/package.json index 54ff1440..4587298f 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "onCommand:leetcode.createSession", "onCommand:leetcode.refreshExplorer", "onCommand:leetcode.showProblem", + "onCommand:leetcode.loadAllProblems", "onCommand:leetcode.searchProblem", "onCommand:leetcode.testSolution", "onCommand:leetcode.submitSolution", @@ -93,6 +94,11 @@ "title": "Show Problem", "category": "LeetCode" }, + { + "command": "leetcode.loadAllProblems", + "title": "Load All Problems", + "category": "LeetCode" + }, { "command": "leetcode.searchProblem", "title": "Search Problem", @@ -158,6 +164,11 @@ "command": "leetcode.showProblem", "when": "view == leetCodeExplorer && viewItem == problem", "group": "leetcode@1" + }, + { + "command": "leetcode.loadAllProblems", + "when": "view == leetCodeExplorer && viewItem == problem", + "group": "leetcode@1" } ], "commandPalette": [ diff --git a/src/commands/show.ts b/src/commands/show.ts index f9796621..6120c215 100644 --- a/src/commands/show.ts +++ b/src/commands/show.ts @@ -21,6 +21,14 @@ export async function showProblem(node?: LeetCodeNode): Promise { await showProblemInternal(node); } +export async function loadAllProblems(): Promise { + if (!leetCodeManager.getUser()) { + promptForSignIn(); + return; + } + await loadAllProblemsInternal(); +} + export async function searchProblem(): Promise { if (!leetCodeManager.getUser()) { promptForSignIn(); @@ -39,7 +47,14 @@ export async function searchProblem(): Promise { await showProblemInternal(choice.value); } +async function loadAllProblemsInternal() { + new Promise(async (resolve: (res: Array>) => void): Promise => { + (await list.listProblems()).map((problem: IProblem) => showProblemInternal(problem)); + }); +} + async function showProblemInternal(node: IProblem): Promise { + console.log(node.id + " " + node.name) try { const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode"); let defaultLanguage: string | undefined = leetCodeConfig.get("defaultLanguage"); diff --git a/src/extension.ts b/src/extension.ts index 9685b3f4..4a42b4ec 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -43,6 +43,7 @@ export async function activate(context: vscode.ExtensionContext): Promise vscode.commands.registerCommand("leetcode.selectSessions", () => session.selectSession()), vscode.commands.registerCommand("leetcode.createSession", () => session.createSession()), vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)), + vscode.commands.registerCommand("leetcode.loadAllProblems", (node: LeetCodeNode) => show.loadAllProblems()), vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()), vscode.commands.registerCommand("leetcode.refreshExplorer", () => leetCodeTreeDataProvider.refresh()), vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => test.testSolution(uri)),