diff --git a/package-lock.json b/package-lock.json index 632f6f87..70718eea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1603,9 +1603,8 @@ } }, "leetcode-cli": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/leetcode-cli/-/leetcode-cli-2.6.1.tgz", - "integrity": "sha512-B3OXkxcsHUBnXoO2X5JOt2tDAEjMO+Mf3PxVJwgLhjdbK5XeR2GKDa6YcMuBv5fhJRzGUfQ+l6KEMQE6lRl8eg==", + "version": "github:skygragon/leetcode-cli#8dc0b2ab9b04771bfeef29f02e52371ff8f16db6", + "from": "github:skygragon/leetcode-cli#master", "requires": { "ansi-styles": "3.2.1", "cheerio": "0.20.0", diff --git a/package.json b/package.json index 9f2db0af..b84c4df7 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "onCommand:leetcode.searchProblem", "onCommand:leetcode.testSolution", "onCommand:leetcode.submitSolution", + "onCommand:leetcode.switchDefaultLanguage", "onView:leetCodeExplorer" ], "main": "./out/src/extension", @@ -55,6 +56,11 @@ "dark": "resources/dark/endpoint.svg" } }, + { + "command": "leetcode.switchDefaultLanguage", + "title": "Switch Default Language", + "category": "LeetCode" + }, { "command": "leetcode.signin", "title": "Sign In", diff --git a/src/commands/plugin.ts b/src/commands/plugin.ts index 3e3b5bf0..c46440f1 100644 --- a/src/commands/plugin.ts +++ b/src/commands/plugin.ts @@ -4,10 +4,19 @@ import * as vscode from "vscode"; import { leetCodeExecutor } from "../leetCodeExecutor"; import { IQuickItemEx } from "../shared"; -import { Endpoint } from "../shared"; +import { Endpoint, languages } from "../shared"; import { DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils"; import { deleteCache } from "./cache"; +export async function switchDefaultLanguage(): Promise { + const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode"); + const language: string | undefined = await vscode.window.showQuickPick(languages, { placeHolder: "Select the language you want to use" }); + if (!language) { + return; + } + leetCodeConfig.update("defaultLanguage", language, true); +} + export async function switchEndpoint(): Promise { const isCnEnabled: boolean = getLeetCodeEndpoint() === Endpoint.LeetCodeCN; const picks: Array> = []; diff --git a/src/extension.ts b/src/extension.ts index 9685b3f4..cd97a326 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -47,6 +47,7 @@ export async function activate(context: vscode.ExtensionContext): Promise 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", () => plugin.switchDefaultLanguage()), ); await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint());