From d1999dad0d63af968b1a6266e0bb4cc01ab022eb Mon Sep 17 00:00:00 2001 From: Vigilans Date: Mon, 1 Apr 2019 16:35:29 +0800 Subject: [PATCH 1/2] Add try-catch block during extesion's activation --- src/extension.ts | 78 ++++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 7a389142..5c6f957b 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -16,51 +16,57 @@ import { leetCodeChannel } from "./leetCodeChannel"; import { leetCodeExecutor } from "./leetCodeExecutor"; import { leetCodeManager } from "./leetCodeManager"; import { leetCodeStatusBarController } from "./statusbar/leetCodeStatusBarController"; +import { DialogType, promptForOpenOutputChannel } from "./utils/uiUtils"; import { leetCodePreviewProvider } from "./webview/leetCodePreviewProvider"; import { leetCodeResultProvider } from "./webview/leetCodeResultProvider"; import { leetCodeSolutionProvider } from "./webview/leetCodeSolutionProvider"; export async function activate(context: vscode.ExtensionContext): Promise { - if (!await leetCodeExecutor.meetRequirements()) { - return; - } + try { + if (!await leetCodeExecutor.meetRequirements()) { + throw new Error("The environment doesn't meet requirements"); + } - leetCodeManager.on("statusChanged", () => { - leetCodeStatusBarController.updateStatusBar(leetCodeManager.getStatus(), leetCodeManager.getUser()); - leetCodeTreeDataProvider.refresh(); - }); + leetCodeManager.on("statusChanged", () => { + leetCodeStatusBarController.updateStatusBar(leetCodeManager.getStatus(), leetCodeManager.getUser()); + leetCodeTreeDataProvider.refresh(); + }); - const leetCodeTreeDataProvider: LeetCodeTreeDataProvider = new LeetCodeTreeDataProvider(context); - leetCodePreviewProvider.initialize(context); - leetCodeResultProvider.initialize(context); - leetCodeSolutionProvider.initialize(context); + const leetCodeTreeDataProvider: LeetCodeTreeDataProvider = new LeetCodeTreeDataProvider(context); + leetCodePreviewProvider.initialize(context); + leetCodeResultProvider.initialize(context); + leetCodeSolutionProvider.initialize(context); - context.subscriptions.push( - leetCodeStatusBarController, - leetCodeChannel, - leetCodePreviewProvider, - leetCodeResultProvider, - leetCodeSolutionProvider, - vscode.window.createTreeView("leetCodeExplorer", { treeDataProvider: leetCodeTreeDataProvider, showCollapseAll: true }), - vscode.languages.registerCodeLensProvider({ scheme: "file" }, codeLensProvider), - vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()), - vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()), - vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()), - vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()), - vscode.commands.registerCommand("leetcode.selectSessions", () => session.selectSession()), - vscode.commands.registerCommand("leetcode.createSession", () => session.createSession()), - vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => leetCodePreviewProvider.preview(node)), - vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)), - vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()), - vscode.commands.registerCommand("leetcode.showSolution", (node: LeetCodeNode) => show.showSolution(node)), - vscode.commands.registerCommand("leetcode.refreshExplorer", () => leetCodeTreeDataProvider.refresh()), - vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => test.testSolution(uri)), - vscode.commands.registerCommand("leetcode.submitSolution", (uri?: vscode.Uri) => submit.submitSolution(uri)), - vscode.commands.registerCommand("leetcode.switchDefaultLanguage", () => switchDefaultLanguage()), - ); + context.subscriptions.push( + leetCodeStatusBarController, + leetCodeChannel, + leetCodePreviewProvider, + leetCodeResultProvider, + leetCodeSolutionProvider, + vscode.window.createTreeView("leetCodeExplorer", { treeDataProvider: leetCodeTreeDataProvider, showCollapseAll: true }), + vscode.languages.registerCodeLensProvider({ scheme: "file" }, codeLensProvider), + vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()), + vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()), + vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()), + vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()), + vscode.commands.registerCommand("leetcode.selectSessions", () => session.selectSession()), + vscode.commands.registerCommand("leetcode.createSession", () => session.createSession()), + vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => leetCodePreviewProvider.preview(node)), + vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)), + vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()), + vscode.commands.registerCommand("leetcode.showSolution", (node: LeetCodeNode) => show.showSolution(node)), + vscode.commands.registerCommand("leetcode.refreshExplorer", () => leetCodeTreeDataProvider.refresh()), + vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => test.testSolution(uri)), + vscode.commands.registerCommand("leetcode.submitSolution", (uri?: vscode.Uri) => submit.submitSolution(uri)), + vscode.commands.registerCommand("leetcode.switchDefaultLanguage", () => switchDefaultLanguage()), + ); - await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint()); - leetCodeManager.getLoginStatus(); + await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint()); + leetCodeManager.getLoginStatus(); + } catch (error) { + leetCodeChannel.appendLine(error.message); + promptForOpenOutputChannel("Extension initialization failed. Please open output channel for details.", DialogType.error); + } } export function deactivate(): void { From 7479df2c7ce1458992ad1ce462440de3c24575a4 Mon Sep 17 00:00:00 2001 From: Vigilans Date: Mon, 1 Apr 2019 17:18:00 +0800 Subject: [PATCH 2/2] Address comments in review --- src/extension.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index a0780396..87faaac1 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -24,7 +24,7 @@ import { leetCodeSolutionProvider } from "./webview/leetCodeSolutionProvider"; export async function activate(context: vscode.ExtensionContext): Promise { try { if (!await leetCodeExecutor.meetRequirements()) { - throw new Error("The environment doesn't meet requirements"); + throw new Error("The environment doesn't meet requirements."); } leetCodeManager.on("statusChanged", () => { @@ -65,7 +65,7 @@ export async function activate(context: vscode.ExtensionContext): Promise await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint()); leetCodeManager.getLoginStatus(); } catch (error) { - leetCodeChannel.appendLine(error.message); + leetCodeChannel.appendLine(error.toString()); promptForOpenOutputChannel("Extension initialization failed. Please open output channel for details.", DialogType.error); } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy