Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb5d44ce

Browse files
authored
Improve the experience of switch endpoint (LeetCode-OpenSource#92)
1 parent424ba0c commitb5d44ce

17 files changed

+93
-61
lines changed

‎package.json

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,37 +43,40 @@
4343
"commands": [
4444
{
4545
"command":"leetcode.deleteCache",
46-
"title":"Deletecache",
46+
"title":"DeleteCache",
4747
"category":"LeetCode"
4848
},
4949
{
5050
"command":"leetcode.toogleLeetCodeCn",
51-
"title":"Switchendpoint",
51+
"title":"SwitchEndpoint",
5252
"category":"LeetCode",
53-
"icon":"resources/cn.png"
53+
"icon": {
54+
"light":"resources/light/endpoint.svg",
55+
"dark":"resources/dark/endpoint.svg"
56+
}
5457
},
5558
{
5659
"command":"leetcode.signin",
57-
"title":"Signin",
60+
"title":"SignIn",
5861
"category":"LeetCode",
5962
"icon": {
60-
"light":"resources/light/signin.png",
61-
"dark":"resources/dark/signin.png"
63+
"light":"resources/light/signin.svg",
64+
"dark":"resources/dark/signin.svg"
6265
}
6366
},
6467
{
6568
"command":"leetcode.signout",
66-
"title":"Signout",
69+
"title":"SignOut",
6770
"category":"LeetCode"
6871
},
6972
{
7073
"command":"leetcode.selectSessions",
71-
"title":"Selectsession",
74+
"title":"SelectSession",
7275
"category":"LeetCode"
7376
},
7477
{
7578
"command":"leetcode.createSession",
76-
"title":"Createnew session",
79+
"title":"CreateNew Session",
7780
"category":"LeetCode"
7881
},
7982
{
@@ -87,14 +90,17 @@
8790
},
8891
{
8992
"command":"leetcode.showProblem",
90-
"title":"Showproblem",
93+
"title":"ShowProblem",
9194
"category":"LeetCode"
9295
},
9396
{
9497
"command":"leetcode.searchProblem",
9598
"title":"Search Problem",
9699
"category":"LeetCode",
97-
"icon":"resources/search.png"
100+
"icon": {
101+
"light":"resources/light/search.svg",
102+
"dark":"resources/dark/search.svg"
103+
}
98104
},
99105
{
100106
"command":"leetcode.testSolution",

‎resources/cn.png

-4.8 KB
Binary file not shown.

‎resources/dark/endpoint.svg

Lines changed: 6 additions & 0 deletions
Loading

‎resources/dark/refresh.svg

Lines changed: 6 additions & 1 deletion
Loading

‎resources/dark/search.svg

Lines changed: 6 additions & 0 deletions
Loading

‎resources/dark/signin.png

-395 Bytes
Binary file not shown.

‎resources/dark/signin.svg

Lines changed: 7 additions & 0 deletions
Loading

‎resources/light/endpoint.svg

Lines changed: 6 additions & 0 deletions
Loading

‎resources/light/refresh.svg

Lines changed: 6 additions & 1 deletion
Loading

‎resources/light/search.svg

Lines changed: 6 additions & 0 deletions
Loading

‎resources/light/signin.png

-427 Bytes
Binary file not shown.

‎resources/light/signin.svg

Lines changed: 7 additions & 0 deletions
Loading

‎resources/search.png

-541 Bytes
Binary file not shown.

‎src/commands/plugin.ts

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,28 @@
11
// Copyright (c) jdneo. All rights reserved.
22
// Licensed under the MIT license.
33

4-
import*asfsefrom"fs-extra";
5-
import*asosfrom"os";
6-
import*aspathfrom"path";
74
import*asvscodefrom"vscode";
85
import{leetCodeExecutor}from"../leetCodeExecutor";
96
import{IQuickItemEx}from"../shared";
107
import{Endpoint}from"../shared";
118
import{DialogType,promptForOpenOutputChannel,promptForSignIn}from"../utils/uiUtils";
129
import{deleteCache}from"./cache";
1310

14-
exportasyncfunctiontoogleLeetCodeCn():Promise<void>{
15-
constisCnEnbaled:boolean=isLeetCodeCnEnabled();
11+
exportasyncfunctionswitchEndpoint():Promise<void>{
12+
constisCnEnbaled:boolean=getLeetCodeEndpoint()===Endpoint.LeetCodeCN;
1613
constpicks:Array<IQuickItemEx<string>>=[];
1714
picks.push(
1815
{
19-
label:`${isCnEnbaled ?"$(check) " :""}On`,
20-
description:"",
21-
detail:`Enable${Endpoint.LeetCodeCN}.`,
22-
value:"on",
16+
label:`${isCnEnbaled ?"" :"$(check) "}LeetCode`,
17+
description:"leetcode.com",
18+
detail:`EnableLeetCode US`,
19+
value:Endpoint.LeetCode,
2320
},
2421
{
25-
label:`${isCnEnbaled ?"" :"$(check) "}Off`,
26-
description:"",
27-
detail:`Disable${Endpoint.LeetCodeCN}.`,
28-
value:"off",
22+
label:`${isCnEnbaled ?"$(check) " :""}力扣`,
23+
description:"leetcode-cn.com",
24+
detail:`启用中国版 LeetCode`,
25+
value:Endpoint.LeetCodeCN,
2926
},
3027
);
3128
constchoice:IQuickItemEx<string>|undefined=awaitvscode.window.showQuickPick(picks);
@@ -34,9 +31,8 @@ export async function toogleLeetCodeCn(): Promise<void> {
3431
}
3532
constleetCodeConfig:vscode.WorkspaceConfiguration=vscode.workspace.getConfiguration("leetcode");
3633
try{
37-
constenabled:boolean=choice.value==="on";
38-
constendpoint:string=enabled ?Endpoint.LeetCodeCN :Endpoint.LeetCode;
39-
awaitleetCodeExecutor.toggleLeetCodeCn(enabled);
34+
constendpoint:string=choice.value;
35+
awaitleetCodeExecutor.switchEndpoint(endpoint);
4036
awaitleetCodeConfig.update("endpoint",endpoint,true/* UserSetting */);
4137
vscode.window.showInformationMessage(`Switched the endpoint to${endpoint}`);
4238
}catch(error){
@@ -52,29 +48,7 @@ export async function toogleLeetCodeCn(): Promise<void> {
5248
}
5349
}
5450

55-
exportasyncfunctioninitializeEndpoint():Promise<void>{
56-
constisCnEnabledInExtension:boolean=isLeetCodeCnEnabled();
57-
constisCnEnabledInCli:boolean=awaitisLeetCodeCnEnabledInCli();
58-
awaitleetCodeExecutor.toggleLeetCodeCn(isCnEnabledInExtension);
59-
if(isCnEnabledInCli!==isCnEnabledInExtension){
60-
awaitdeleteCache();
61-
}
62-
}
63-
64-
exportfunctionisLeetCodeCnEnabled():boolean{
51+
exportfunctiongetLeetCodeEndpoint():string{
6552
constleetCodeConfig:vscode.WorkspaceConfiguration=vscode.workspace.getConfiguration("leetcode");
66-
constendpoint:string|undefined=leetCodeConfig.get<string>("endpoint");
67-
if(endpoint&&endpoint===Endpoint.LeetCodeCN){
68-
returntrue;
69-
}
70-
returnfalse;
71-
}
72-
73-
asyncfunctionisLeetCodeCnEnabledInCli():Promise<boolean>{
74-
constpluginsStatusFile:string=path.join(os.homedir(),".lc","plugins.json");
75-
if(!awaitfse.pathExists(pluginsStatusFile)){
76-
returnfalse;
77-
}
78-
constpluginsObj:{}=awaitfse.readJson(pluginsStatusFile);
79-
returnpluginsObj["leetcode.cn"];
53+
returnleetCodeConfig.get<string>("endpoint",Endpoint.LeetCode);
8054
}

‎src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
3636
vscode.window.registerTreeDataProvider("leetCodeExplorer",leetCodeTreeDataProvider),
3737
vscode.languages.registerCodeLensProvider({scheme:"file"},codeLensProvider),
3838
vscode.commands.registerCommand("leetcode.deleteCache",()=>cache.deleteCache()),
39-
vscode.commands.registerCommand("leetcode.toogleLeetCodeCn",()=>plugin.toogleLeetCodeCn()),
39+
vscode.commands.registerCommand("leetcode.toogleLeetCodeCn",()=>plugin.switchEndpoint()),
4040
vscode.commands.registerCommand("leetcode.signin",()=>leetCodeManager.signIn()),
4141
vscode.commands.registerCommand("leetcode.signout",()=>leetCodeManager.signOut()),
4242
vscode.commands.registerCommand("leetcode.selectSessions",()=>session.selectSession()),
@@ -48,7 +48,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
4848
vscode.commands.registerCommand("leetcode.submitSolution",(uri?:vscode.Uri)=>submit.submitSolution(uri)),
4949
);
5050

51-
awaitplugin.initializeEndpoint();
51+
awaitleetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint());
5252
leetCodeManager.getLoginStatus();
5353
}
5454

‎src/leetCodeExecutor.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import*ascpfrom"child_process";
55
import*aspathfrom"path";
66
import*asvscodefrom"vscode";
7+
import{Endpoint}from"./shared";
78
import{executeCommand,executeCommandWithProgress}from"./utils/cpUtils";
89
import{DialogOptions,openUrl}from"./utils/uiUtils";
910
import*aswslfrom"./utils/wslUtils";
@@ -89,11 +90,14 @@ class LeetCodeExecutor {
8990
returnawaitthis.executeCommandWithProgressEx("Submitting to LeetCode...","node",[awaitthis.getLeetCodeBinaryPath(),"test",`"${filePath}"`]);
9091
}
9192

92-
publicasynctoggleLeetCodeCn(isEnable:boolean):Promise<string>{
93-
if(isEnable){
94-
returnawaitthis.executeCommandEx("node",[awaitthis.getLeetCodeBinaryPath(),"plugin","-e","leetcode.cn"]);
93+
publicasyncswitchEndpoint(endpoint:string):Promise<string>{
94+
switch(endpoint){
95+
caseEndpoint.LeetCodeCN:
96+
returnawaitthis.executeCommandEx("node",[awaitthis.getLeetCodeBinaryPath(),"plugin","-e","leetcode.cn"]);
97+
caseEndpoint.LeetCode:
98+
default:
99+
returnawaitthis.executeCommandEx("node",[awaitthis.getLeetCodeBinaryPath(),"plugin","-d","leetcode.cn"]);
95100
}
96-
returnawaitthis.executeCommandEx("node",[awaitthis.getLeetCodeBinaryPath(),"plugin","-d","leetcode.cn"]);
97101
}
98102

99103
privateasyncexecuteCommandEx(command:string,args:string[],options:cp.SpawnOptions={shell:true}):Promise<string>{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp