Skip to content

Commit 9d440f8

Browse files
committed
增加自动引入 includeTemplates 设置选项,默认引入
1 parent 16aed39 commit 9d440f8

File tree

11 files changed

+115
-9
lines changed

11 files changed

+115
-9
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# version 2.19.18
2+
3+
- 使用新的 mvc 代码结构修改 statusBar 相关内容
4+
- 增加自动引入 includeTemplates 设置选项,默认引入
5+
16
# version 2.19.17
27

38
- 更新基础的分数数据 data.json

package.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-leetcode-problem-rating",
33
"displayName": "LeetCode",
44
"description": "%main.description%",
5-
"version": "2.19.17",
5+
"version": "2.19.18",
66
"author": "ccagml",
77
"publisher": "ccagml",
88
"license": "MIT",
@@ -643,6 +643,11 @@
643643
}
644644
}
645645
},
646+
"leetcode-problem-rating.includeTemplatesAuto": {
647+
"type": "boolean",
648+
"default": true,
649+
"description": "%main.contributes.configuration.properties.leetcode-problem-rating.includeTemplatesAuto.description%"
650+
},
646651
"leetcode-problem-rating.hideSolved": {
647652
"type": "boolean",
648653
"default": false,

package.nls.json

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"main.contributes.submenus.lcpr.setBricksType_sub1.label": "Set repetition time",
4949
"main.contributes.configuration.title": "leetcode-problem-rating",
5050
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplates.description": "Introduce some default content to prevent VSCode from wavy red lines",
51+
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplatesAuto.description": "auto Introduce some default content to prevent VSCode from wavy red lines",
5152
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplates.items.properties.language.description": "Programming language",
5253
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplates.items.properties.template.description": "template content",
5354
"main.contributes.configuration.properties.leetcode-problem-rating.hideSolved.description": "Hide solved problems.",

package.nls.zh-cn.json

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"main.contributes.submenus.lcpr.setBricksType_sub1.label": "设置砖头类型",
4949
"main.contributes.configuration.title": "leetcode-problem-rating",
5050
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplates.description": "引入一些默认内容,防止VSCode都是波浪红线",
51+
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplatesAuto.description": "自动引入模板",
5152
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplates.items.properties.language.description": "哪种语言",
5253
"main.contributes.configuration.properties.leetcode-problem-rating.includeTemplates.items.properties.template.description": "模板内容",
5354
"main.contributes.configuration.properties.leetcode-problem-rating.hideSolved.description": "隐藏已解决的问题",

src/BABA.ts

+4
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,12 @@ export enum BabaStr {
1313
every_second = "every_second",
1414
StatusBarTimeMediator = "StatusBarTimeMediator",
1515
StatusBarTimeProxy = "StatusBarTimeProxy",
16+
RemarkMediator = "RemarkMediator",
17+
RemarkProxy = "RemarkProxy",
1618
submit = "submit",
1719
showProblemFinish = "showProblemFinish",
20+
showProblemFinishOpen = "showProblemFinishOpen",
21+
showProblemFinishError = "showProblemFinishError",
1822
VSCODE_DISPOST = "VSCODE_DISPOST",
1923
statusBarTime_start = "statusBarTime_start",
2024
statusBarTime_stop = "statusBarTime_stop",

src/controller/TreeViewController.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -859,10 +859,19 @@ class TreeViewController implements Disposable {
859859
);
860860
if (show_code == 100) {
861861
const promises: any[] = [
862-
vscode.window.showTextDocument(vscode.Uri.file(finalPath), {
863-
preview: false,
864-
viewColumn: vscode.ViewColumn.One,
865-
}),
862+
vscode.window
863+
.showTextDocument(vscode.Uri.file(finalPath), {
864+
preview: false,
865+
viewColumn: vscode.ViewColumn.One,
866+
})
867+
.then(
868+
(editor) => {
869+
eventService.emit("showProblemFinishOpen", node, editor);
870+
},
871+
(error) => {
872+
eventService.emit("showProblemFinishError", node, error);
873+
}
874+
),
866875
promptHintMessage(
867876
"hint.commentDescription",
868877
'You can config how to show the problem description through "leetcode-problem-rating.showDescription".',

src/extension.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { debugContorller } from "./controller/DebugController";
3131
import { BABA, BabaStr } from "./BABA";
3232
import { StatusBarTimeMediator, StatusBarTimeProxy } from "./statusBarTime/StatusBarTimeModule";
3333
import { StatusBarMediator, StatusBarProxy } from "./statusBar/StatusBarModule";
34+
import { RemarkProxy, RemarkMediator } from "./service/RemarkService";
3435

3536
//==================================BABA========================================
3637

@@ -44,7 +45,14 @@ let lcpr_timer;
4445
export async function activate(context: ExtensionContext): Promise<void> {
4546
try {
4647
BABA.init();
47-
BABA.regClazz([StatusBarTimeMediator, StatusBarTimeProxy, StatusBarProxy, StatusBarMediator]);
48+
BABA.regClazz([
49+
StatusBarTimeMediator,
50+
StatusBarTimeProxy,
51+
StatusBarProxy,
52+
StatusBarMediator,
53+
RemarkProxy,
54+
RemarkMediator,
55+
]);
4856

4957
// 初始化控制器
5058
mainContorller.initialize(context);

src/rpc/actionChain/chainNode/leetcode.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ and csrf token to the user object and saves the user object to the session. */
445445
statusMessage: resp.statusMessage,
446446
msg: "密码错误?",
447447
msg1: "invalid password?",
448-
msg2: "要是用浏览器在力扣官网登录过账号还没过期, 插件的登录会被拒绝,使得登录失败",
448+
msg2: "要是用浏览器在力扣官网登录过账号还没过期, 插件的登录会被拒绝,使得登录失败,尝试用cookie方式登录",
449449
});
450450
return cb(_temp_msg);
451451
}

src/service/EventService.ts

+6
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ class EventService extends EventEmitter {
5252
this.on("showProblemFinish", (node: IProblem) => {
5353
BABA.sendNotification(BabaStr.showProblemFinish, node);
5454
});
55+
this.on("showProblemFinishOpen", (node: IProblem, editor) => {
56+
BABA.sendNotification(BabaStr.showProblemFinishOpen, { node: node, editor: editor });
57+
});
58+
this.on("showProblemFinishError", (node: IProblem, error) => {
59+
BABA.sendNotification(BabaStr.showProblemFinishError, { node: node, error: error });
60+
});
5561

5662
this.on("groupUpdate", () => {
5763
bricksDataService.refresh();

src/service/RemarkService.ts

+36-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import {
1414
import { treeViewController } from "../controller/TreeViewController";
1515
import { remarkDao } from "../dao/remarkDao";
1616
import { RemarkComment } from "../model/Model";
17-
import { getIncludeTemplate } from "../utils/ConfigUtils";
17+
import { includeTemplatesAuto, getIncludeTemplate } from "../utils/ConfigUtils";
18+
import { BABAMediator, BABAProxy, BaseCC, BabaStr } from "../BABA";
1819

1920
class RemarkService implements Disposable {
2021
private _remarkComment;
@@ -59,6 +60,10 @@ class RemarkService implements Disposable {
5960
}
6061
for (let i: number = 0; i < document.lineCount; i++) {
6162
const lineContent: string = document.lineAt(i).text;
63+
// 有了就不添加了
64+
if (lineContent.indexOf("@lcpr-template-start") >= 0) {
65+
break;
66+
}
6267

6368
if (lineContent.indexOf("@lc code=start") >= 0) {
6469
const editor = window.activeTextEditor;
@@ -193,3 +198,33 @@ class RemarkService implements Disposable {
193198
}
194199

195200
export const remarkService: RemarkService = new RemarkService();
201+
202+
export class RemarkProxy extends BABAProxy {
203+
static NAME = BabaStr.RemarkProxy;
204+
constructor() {
205+
super(RemarkProxy.NAME);
206+
}
207+
}
208+
209+
export class RemarkMediator extends BABAMediator {
210+
static NAME = BabaStr.RemarkMediator;
211+
constructor() {
212+
super(RemarkMediator.NAME);
213+
}
214+
215+
listNotificationInterests(): string[] {
216+
return [BabaStr.showProblemFinishOpen];
217+
}
218+
handleNotification(_notification: BaseCC.BaseCC.INotification) {
219+
switch (_notification.getName()) {
220+
case BabaStr.showProblemFinishOpen:
221+
let temp_doc = window.activeTextEditor?.document;
222+
if (temp_doc != undefined && includeTemplatesAuto()) {
223+
remarkService.includeTemplates(temp_doc);
224+
}
225+
break;
226+
default:
227+
break;
228+
}
229+
}
230+
}

src/utils/ConfigUtils.ts

+33-1
Original file line numberDiff line numberDiff line change
@@ -402,17 +402,49 @@ export function isAnswerDiffColor(): boolean {
402402
return getVsCodeConfig().get<boolean>("answerDiffColor", false);
403403
}
404404

405+
const singleLineFlag = {
406+
bash: "#",
407+
c: "//",
408+
cpp: "//",
409+
csharp: "//",
410+
golang: "//",
411+
java: "//",
412+
javascript: "//",
413+
kotlin: "//",
414+
mysql: "--",
415+
php: "//",
416+
python: "#",
417+
python3: "#",
418+
ruby: "#",
419+
rust: "//",
420+
scala: "//",
421+
swift: "//",
422+
typescript: "//",
423+
};
424+
425+
export function includeTemplatesAuto() {
426+
return getVsCodeConfig().get<boolean>("includeTemplatesAuto", true);
427+
}
428+
405429
export function getIncludeTemplate(lang: string): string {
406430
let temp_cfg = getVsCodeConfig().get<any>("includeTemplates") || [];
407431
let result = "";
432+
let singleLine = singleLineFlag[lang] || "";
408433
temp_cfg.forEach((element) => {
409434
if (element.language == lang) {
410435
result = (element.template || []).join("\n");
411436
return;
412437
}
413438
});
414439

415-
return result;
440+
let new_include_template: any = [
441+
`\n`,
442+
`${singleLine} @lcpr-template-start`,
443+
`${result}`,
444+
`${singleLine} @lcpr-template-end`,
445+
];
446+
447+
return new_include_template.join("\n");
416448
}
417449

418450
// 获取清除缓存修改时间间隔

0 commit comments

Comments
 (0)