(context: vscode.ExtensionContext)
| 26 | import { markdownEngine } from "./webview/markdownEngine"; |
| 27 | |
| 28 | export async function activate(context: vscode.ExtensionContext): Promise<void> { |
| 29 | try { |
| 30 | if (!await leetCodeExecutor.meetRequirements(context)) { |
| 31 | throw new Error("The environment doesn't meet requirements."); |
| 32 | } |
| 33 | |
| 34 | leetCodeManager.on("statusChanged", () => { |
| 35 | leetCodeStatusBarController.updateStatusBar(leetCodeManager.getStatus(), leetCodeManager.getUser()); |
| 36 | leetCodeTreeDataProvider.refresh(); |
| 37 | }); |
| 38 | |
| 39 | leetCodeTreeDataProvider.initialize(context); |
| 40 | |
| 41 | context.subscriptions.push( |
| 42 | leetCodeStatusBarController, |
| 43 | leetCodeChannel, |
| 44 | leetCodePreviewProvider, |
| 45 | leetCodeSubmissionProvider, |
| 46 | leetCodeSolutionProvider, |
| 47 | leetCodeExecutor, |
| 48 | markdownEngine, |
| 49 | codeLensController, |
| 50 | explorerNodeManager, |
| 51 | vscode.window.registerFileDecorationProvider(leetCodeTreeItemDecorationProvider), |
| 52 | vscode.window.createTreeView("leetCodeExplorer", { treeDataProvider: leetCodeTreeDataProvider, showCollapseAll: true }), |
| 53 | vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()), |
| 54 | vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()), |
| 55 | vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()), |
| 56 | vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()), |
| 57 | vscode.commands.registerCommand("leetcode.manageSessions", () => session.manageSessions()), |
| 58 | vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => show.previewProblem(node)), |
| 59 | vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)), |
| 60 | vscode.commands.registerCommand("leetcode.pickOne", () => show.pickOne()), |
| 61 | vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()), |
| 62 | vscode.commands.registerCommand("leetcode.showSolution", (input: LeetCodeNode | vscode.Uri) => show.showSolution(input)), |
| 63 | vscode.commands.registerCommand("leetcode.refreshExplorer", () => leetCodeTreeDataProvider.refresh()), |
| 64 | vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => test.testSolution(uri)), |
| 65 | vscode.commands.registerCommand("leetcode.submitSolution", (uri?: vscode.Uri) => submit.submitSolution(uri)), |
| 66 | vscode.commands.registerCommand("leetcode.switchDefaultLanguage", () => switchDefaultLanguage()), |
| 67 | vscode.commands.registerCommand("leetcode.addFavorite", (node: LeetCodeNode) => star.addFavorite(node)), |
| 68 | vscode.commands.registerCommand("leetcode.removeFavorite", (node: LeetCodeNode) => star.removeFavorite(node)), |
| 69 | vscode.commands.registerCommand("leetcode.problems.sort", () => plugin.switchSortingStrategy()), |
| 70 | ); |
| 71 | |
| 72 | await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint()); |
| 73 | await leetCodeManager.getLoginStatus(); |
| 74 | } catch (error) { |
| 75 | leetCodeChannel.appendLine(error.toString()); |
| 76 | promptForOpenOutputChannel("Extension initialization failed. Please open output channel for details.", DialogType.error); |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | export function deactivate(): void { |
| 81 | // Do nothing. |
nothing calls this directly
no test coverage detected