Skip to content

2.17.1 #186

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,5 @@ out

# Mac
.DS_Store
nls.js
nls.json
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## version 2.17.1

- 增加调试需要参数快速选择按钮

## version 2.16.1

- 增加中英文多语言的配置
Expand Down
7 changes: 5 additions & 2 deletions nls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,11 @@ function check_key(object, father: Array<any>) {
if (result_json[key]) {
console.log("重复", key);
}
result_json[key] = object["enumDescriptions"];
object["enumDescriptions"] = `%${key}%`;
for (let e_index = 0; e_index < object["enumDescriptions"].length; e_index++) {
let b_key = key + `.${e_index}`;
result_json[b_key] = object["enumDescriptions"][e_index];
}
// object["enumDescriptions"] = `%${key}%`;
}
}

Expand Down
36 changes: 22 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "vscode-leetcode-problem-rating",
"displayName": "LeetCode",
"description": "%main.description%",
"version": "2.16.1",
"version": "2.17.1",
"author": "ccagml",
"publisher": "ccagml",
"license": "MIT",
Expand Down Expand Up @@ -1034,13 +1034,13 @@
"allcase"
],
"enumDescriptions": [
"Submit your answer to LeetCode.",
"Test your answer with customized test cases.",
"Star or unstar the current problem.",
"Show the top voted solution for the current problem.",
"Show the problem description page.",
"Test default case",
"Test all default case"
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.0%",
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.1%",
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.2%",
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.3%",
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.4%",
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.5%",
"%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.6%"
]
},
"description": "%main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.description%"
Expand Down Expand Up @@ -1075,6 +1075,14 @@
"Score (Descending)",
"ID (Descending)"
],
"enumDescriptions": [
"%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.0%",
"%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.1%",
"%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.2%",
"%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.3%",
"%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.4%",
"%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.5%"
],
"description": "%main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.description%"
},
"leetcode-problem-rating.pickOneByRankRangeMin": {
Expand All @@ -1099,10 +1107,10 @@
"ScoreRange"
],
"enumDescriptions": [
"Don't hide",
"Hide questions with scores",
"Hide questions with no scores",
"Hide questions outside the range of scores [pickOneByRankRangeMin, pickOneByRankRangeMax]"
"%main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.0%",
"%main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.1%",
"%main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.2%",
"%main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.3%"
],
"scope": "application",
"description": "%main.contributes.configuration.properties.leetcode-problem-rating.hideScore.description%"
Expand All @@ -1127,8 +1135,8 @@
"clang"
],
"enumDescriptions": [
"gdb compiler",
"clang compiler"
"%main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions.0%",
"%main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions.1%"
],
"scope": "resource"
}
Expand Down
21 changes: 20 additions & 1 deletion package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,24 @@
"main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions": [
"gdb compiler",
"clang compiler"
]
],
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.0": "None",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.1": "Acceptance Rate (Ascending)",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.2": "Acceptance Rate (Descending)",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.3": "Score (Ascending)",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.4": "Score (Descending)",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.5": "ID (Descending)",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.0": "Submit your answer to LeetCode.",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.1": "Test your answer with customized test cases.",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.2": "Star or unstar the current problem.",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.3": "Show the top voted solution for the current problem.",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.4": "Show the problem description page.",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.5": "Test default case",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.6": "Test all default case",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.0": "Don't hide",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.1": "Hide questions with scores",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.2": "Hide questions with no scores",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.3": "Hide questions outside the range of scores [pickOneByRankRangeMin, pickOneByRankRangeMax]",
"main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions.0": "gdb compiler",
"main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions.1": "clang compiler"
}
21 changes: 20 additions & 1 deletion package.nls.zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,24 @@
"main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions": [
"gdb compiler",
"clang compiler"
]
],
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.0": "默认题目编号排序",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.1": "通过率升序",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.2": "通过率降序",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.3": "分数升序",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.4": "分数降序",
"main.contributes.configuration.properties.leetcode-problem-rating.problems.sortStrategy.enumDescriptions.5": "题目编号降序",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.0": "提交代码",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.1": "测试代码",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.2": "题目加喜爱",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.3": "获取题解",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.4": "展示题目介绍",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.5": "测试默认用例",
"main.contributes.configuration.properties.leetcode-problem-rating.editor.shortcuts.items.enumDescriptions.6": "测试所有用例",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.0": "不处理",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.1": "隐藏有分数的题目",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.2": "隐藏没有分数的题目",
"main.contributes.configuration.properties.leetcode-problem-rating.hideScore.enumDescriptions.3": "隐藏分数在配置[pickOneByRankRangeMin, pickOneByRankRangeMax]范围外的题目",
"main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions.0": "gdb编译",
"main.contributes.configuration.properties.leetcode-problem-rating.cppCompiler.enumDescriptions.1": "clang编译"
}
120 changes: 119 additions & 1 deletion src/controller/DebugController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@
* Copyright (c) 2023 ccagml . All rights reserved
*/

import { TextDocument, window } from "vscode";
import { TextDocument, window, Range } from "vscode";
import { getTextEditorFilePathByUri } from "../utils/SystemUtils";
import * as fs from "fs";
import { fileMeta, ProblemMeta, supportDebugLanguages } from "../utils/problemUtils";

import { debugService } from "../service/DebugService";
import { debugArgDao } from "../dao/debugArgDao";

import { IQuickItemEx } from "../model/Model";

// 做杂活
class DebugContorller {
constructor() {}
Expand Down Expand Up @@ -66,6 +68,122 @@ class DebugContorller {
//
}
}

public async addDebugType(document: TextDocument, addType) {
const picks: Array<IQuickItemEx<string>> = [
{ label: "number", detail: "类型说明:数字", value: "number" },
{ label: "number[]", detail: "类型说明:数字数组", value: "number[]" },
{ label: "number[][]", detail: "类型说明:数字二维数组", value: "number[][]" },
{ label: "string", detail: "类型说明:字符串", value: "string" },
{ label: "string[]", detail: "类型说明:字符串数组", value: "string[]" },
{ label: "string[][]", detail: "类型说明:字符串二维数组", value: "string[][]" },
{ label: "ListNode", detail: "类型说明:链表", value: "ListNode" },
{ label: "ListNode[]", detail: "类型说明:链表数组", value: "ListNode[]" },
{ label: "character", detail: "类型说明:字节", value: "character" },
{ label: "character[]", detail: "类型说明:字节数组", value: "character[]" },
{ label: "character[][]", detail: "类型说明:字节二维数组", value: "character[][]" },
{ label: "NestedInteger[]", detail: "类型说明:数组", value: "NestedInteger[]" },
{ label: "MountainArray", detail: "类型说明:数组", value: "MountainArray" },
{ label: "TreeNode", detail: "类型说明:树节点", value: "TreeNode" },
];

const choice: IQuickItemEx<string> | undefined = await window.showQuickPick(picks, {
title: "添加调试需要的参数",
matchOnDescription: false,
matchOnDetail: false,
placeHolder: "选择要添加的分类",
canPickMany: false,
});
if (!choice) {
return;
}

const content: string = document.getText();
const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=(.*) lang=(.*)/);
if (!matchResult || !matchResult[2]) {
return undefined;
}
// 搜集所有debug
let debugFlag: boolean = false;
for (let i: number = 0; i < document.lineCount; i++) {
const lineContent: string = document.lineAt(i).text;

// 收集所有用例
if (lineContent.indexOf("@lcpr-div-debug-arg-end") >= 0) {
debugFlag = false;
}

if (debugFlag) {
let equal_index = lineContent.indexOf("=");
const last_index = document.lineAt(i).range.end.character;
if (addType == "paramTypes" && lineContent.indexOf("paramTypes=") >= 0) {
window.activeTextEditor?.edit((edit) => {
// 参数是个数组;
// edit.replace(new Position(i, equal_index + 1), choice.value);
let cur_param_str = lineContent.substring(equal_index + 1);
let cur_param_array: any = [];
try {
cur_param_array = JSON.parse(cur_param_str);
} catch (error) {
cur_param_array = [];
}

cur_param_array.push(choice.value);

edit.replace(new Range(i, equal_index + 1, i, last_index), JSON.stringify(cur_param_array));
});
} else if (addType == "returnType" && lineContent.indexOf("returnType=") >= 0) {
window.activeTextEditor?.edit((edit) => {
edit.replace(new Range(i, equal_index + 1, i, last_index), choice.value);
});
}
}

// 收集所有用例
if (lineContent.indexOf("@lcpr-div-debug-arg-start") >= 0) {
debugFlag = true;
}
}
return;
}
public async resetDebugType(document: TextDocument, addType) {
const content: string = document.getText();
const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=(.*) lang=(.*)/);
if (!matchResult || !matchResult[2]) {
return undefined;
}
// 搜集所有debug
let debugFlag: boolean = false;
for (let i: number = 0; i < document.lineCount; i++) {
const lineContent: string = document.lineAt(i).text;

// 收集所有用例
if (lineContent.indexOf("@lcpr-div-debug-arg-end") >= 0) {
debugFlag = false;
}

if (debugFlag) {
let equal_index = lineContent.indexOf("=");
const last_index = document.lineAt(i).range.end.character;
if (addType == "paramTypes" && lineContent.indexOf("paramTypes=") >= 0) {
window.activeTextEditor?.edit((edit) => {
let cur_param_array: any = [];
edit.replace(new Range(i, equal_index + 1, i, last_index), JSON.stringify(cur_param_array));
});
} else if (addType == "returnType" && lineContent.indexOf("returnType=") >= 0) {
window.activeTextEditor?.edit((edit) => {
edit.replace(new Range(i, equal_index + 1, i, last_index), "");
});
}
}

// 收集所有用例
if (lineContent.indexOf("@lcpr-div-debug-arg-start") >= 0) {
debugFlag = true;
}
}
return;
}
}

export const debugContorller: DebugContorller = new DebugContorller();
6 changes: 6 additions & 0 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@ export async function activate(context: ExtensionContext): Promise<void> {
}),
commands.registerCommand("lcpr.simpleDebug", (document: TextDocument, testCase?) =>
debugContorller.startDebug(document, testCase)
),
commands.registerCommand("lcpr.addDebugType", (document: TextDocument, addType) =>
debugContorller.addDebugType(document, addType)
),
commands.registerCommand("lcpr.resetDebugType", (document: TextDocument, addType) =>
debugContorller.resetDebugType(document, addType)
)
);

Expand Down
Loading