diff --git a/package.json b/package.json index 290ea02c..d62d8c7a 100644 --- a/package.json +++ b/package.json @@ -244,7 +244,7 @@ "vscode:prepublish": "npm run compile", "compile": "tsc -p ./", "watch": "tsc -watch -p ./", - "postinstall": "node ./node_modules/vscode/bin/install && node ./node_modules/leetcode-cli/bin/leetcode plugin -e leetcode.cn", + "postinstall": "node ./node_modules/vscode/bin/install", "test": "npm run compile && node ./node_modules/vscode/bin/test", "lint": "tslint --project tsconfig.json -e src/*.d.ts -t verbose" }, diff --git a/src/extension.ts b/src/extension.ts index 715a4ad7..2605e52b 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -22,6 +22,8 @@ export async function activate(context: vscode.ExtensionContext): Promise const leetCodeTreeDataProvider: LeetCodeTreeDataProvider = new LeetCodeTreeDataProvider(context); context.subscriptions.push( + leetCodeStatusBarItem, + leetCodeChannel, vscode.window.registerTreeDataProvider("leetCodeExplorer", leetCodeTreeDataProvider), vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()), vscode.commands.registerCommand("leetcode.toogleLeetCodeCn", () => plugin.toogleLeetCodeCn()), @@ -45,6 +47,5 @@ export async function activate(context: vscode.ExtensionContext): Promise } export function deactivate(): void { - leetCodeStatusBarItem.dispose(); - leetCodeChannel.dispose(); + // Do nothing. } diff --git a/src/leetCodeChannel.ts b/src/leetCodeChannel.ts index 16bb1262..fa32ac26 100644 --- a/src/leetCodeChannel.ts +++ b/src/leetCodeChannel.ts @@ -3,14 +3,7 @@ import * as vscode from "vscode"; -export interface ILeetCodeChannel { - appendLine(message: any, title?: string): void; - append(message: any): void; - show(): void; - dispose(): void; -} - -class LeetCodeChannel implements ILeetCodeChannel { +class LeetCodeChannel implements vscode.Disposable { private readonly channel: vscode.OutputChannel = vscode.window.createOutputChannel("LeetCode"); public appendLine(message: string): void { @@ -30,4 +23,4 @@ class LeetCodeChannel implements ILeetCodeChannel { } } -export const leetCodeChannel: ILeetCodeChannel = new LeetCodeChannel(); +export const leetCodeChannel: LeetCodeChannel = new LeetCodeChannel(); diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts index 45cf2306..3a656c5c 100644 --- a/src/leetCodeExecutor.ts +++ b/src/leetCodeExecutor.ts @@ -9,37 +9,7 @@ import { executeCommand, executeCommandWithProgress } from "./utils/cpUtils"; import { DialogOptions } from "./utils/uiUtils"; import * as wsl from "./utils/wslUtils"; -export interface ILeetCodeExecutor { - meetRequirements(): Promise; - getLeetCodeBinaryPath(): Promise; - - /* section for cache command */ - deleteCache(): Promise; - - /* section for user command */ - getUserInfo(): Promise; - signOut(): Promise; - // TODO: implement login when leetcode-cli support login in batch mode. - // signIn(): Promise; - - /* section for problem command */ - listProblems(showLocked: boolean): Promise; - showProblem(id: string, language: string, outdir: string): Promise; - - /* section for session command */ - listSessions(): Promise; - enableSession(name: string): Promise; - createSession(name: string): Promise; - - /* section for solution command */ - submitSolution(filePath: string): Promise; - testSolution(filePath: string, testString?: string): Promise; - - /* section for plugin command */ - toggleLeetCodeCn(isEnable: boolean): Promise; -} - -class LeetCodeExecutor implements ILeetCodeExecutor { +class LeetCodeExecutor { private leetCodeBinaryPath: string; private leetCodeBinaryPathInWsl: string; @@ -142,4 +112,4 @@ class LeetCodeExecutor implements ILeetCodeExecutor { } } -export const leetCodeExecutor: ILeetCodeExecutor = new LeetCodeExecutor(); +export const leetCodeExecutor: LeetCodeExecutor = new LeetCodeExecutor(); diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts index 5640b458..c61bc476 100644 --- a/src/leetCodeManager.ts +++ b/src/leetCodeManager.ts @@ -10,15 +10,7 @@ import { UserStatus } from "./shared"; import { DialogType, promptForOpenOutputChannel } from "./utils/uiUtils"; import * as wsl from "./utils/wslUtils"; -export interface ILeetCodeManager extends EventEmitter { - getLoginStatus(): void; - getStatus(): UserStatus; - getUser(): string | undefined; - signIn(): void; - signOut(): void; -} - -class LeetCodeManager extends EventEmitter implements ILeetCodeManager { +class LeetCodeManager extends EventEmitter { private currentUser: string | undefined; private userStatus: UserStatus; @@ -123,4 +115,4 @@ class LeetCodeManager extends EventEmitter implements ILeetCodeManager { } } -export const leetCodeManager: ILeetCodeManager = new LeetCodeManager(); +export const leetCodeManager: LeetCodeManager = new LeetCodeManager(); diff --git a/src/leetCodeStatusBarItem.ts b/src/leetCodeStatusBarItem.ts index dab832a9..224a3536 100644 --- a/src/leetCodeStatusBarItem.ts +++ b/src/leetCodeStatusBarItem.ts @@ -4,12 +4,7 @@ import * as vscode from "vscode"; import { UserStatus } from "./shared"; -export interface ILeetCodeStatusBarItem { - updateStatusBar(status: UserStatus, user?: string): void; - dispose(): void; -} - -class LeetCodeStatusBarItem implements ILeetCodeStatusBarItem { +class LeetCodeStatusBarItem implements vscode.Disposable { private readonly statusBarItem: vscode.StatusBarItem; constructor() { @@ -35,4 +30,4 @@ class LeetCodeStatusBarItem implements ILeetCodeStatusBarItem { } } -export const leetCodeStatusBarItem: ILeetCodeStatusBarItem = new LeetCodeStatusBarItem(); +export const leetCodeStatusBarItem: LeetCodeStatusBarItem = new LeetCodeStatusBarItem();