Skip to content

Commit af010a4

Browse files
committed
重构代码
1 parent 0cc7333 commit af010a4

File tree

5 files changed

+29
-21
lines changed

5 files changed

+29
-21
lines changed

src/cvbManager.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,17 @@ export function generateTimestamp(): string {
9393
/**
9494
* 生成 CVB 格式的文件
9595
* @param filePaths 文件路径数组
96-
* @param workspacePath 工作目录路径
9796
* @param userRequest 用户输入的重构需求
9897
* @returns 生成的 CVB 文件路径
9998
*/
100-
export async function generateCvb(filePaths: string[], workspacePath: string, userRequest: string): Promise<string> {
99+
export async function generateCvb(filePaths: string[], userRequest: string): Promise<string> {
100+
const workspaceFolders = vscode.workspace.workspaceFolders;
101+
if (!workspaceFolders) {
102+
throw new Error('No workspace folder found.');
103+
}
104+
105+
const workspacePath = workspaceFolders[0].uri.fsPath;
106+
101107
// Create temporary directory (if not exists)
102108
const tmpDir = path.join(workspacePath, '.CodeReDesignWorkSpace');
103109
if (!fs.existsSync(tmpDir)) {
@@ -228,9 +234,15 @@ export function parseCvb(cvbContent: string): {
228234
/**
229235
* 将 CVB 文件内容应用到当前工作目录
230236
* @param cvbContent CVB 文件内容
231-
* @param workspacePath 当前工作目录路径
232237
*/
233-
export function applyCvbToWorkspace(cvbContent: string, workspacePath: string): void {
238+
export function applyCvbToWorkspace(cvbContent: string): void {
239+
const workspaceFolders = vscode.workspace.workspaceFolders;
240+
if (!workspaceFolders) {
241+
throw new Error('No workspace folder found.');
242+
}
243+
244+
const workspacePath = workspaceFolders[0].uri.fsPath;
245+
234246
// 解析 CVB 文件内容
235247
const { files } = parseCvb(cvbContent);
236248

src/cvbMarkdownHandler.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
import * as vscode from 'vscode';
22

33
export function setupCvbAsMarkdown(context: vscode.ExtensionContext) {
4-
// 获取配置
4+
// 获取配置
55
const config = vscode.workspace.getConfiguration('codeReDesign');
66
const treatCvbAsMarkdown = config.get('treatCvbAsMarkdown', true);
77

8-
// 用于存储原始语言模式
8+
// 用于存储原始语言模式
99
const originalLanguages: { [key: string]: string } = {};
1010

1111
/**
12-
* 设置 .cvb 文件的语言模式
13-
* @param enabled 是否将 .cvb 文件视为 Markdown
12+
* 设置 .cvb 文件的语言模式
13+
* @param enabled 是否将 .cvb 文件视为 Markdown
1414
*/
1515
function setLanguageForCvbDocuments(enabled: boolean) {
1616
vscode.workspace.textDocuments.forEach(doc => {
1717
if (doc.fileName.endsWith('.cvb')) {
1818
if (enabled) {
19-
// 保存原始语言模式
19+
// 保存原始语言模式
2020
originalLanguages[doc.uri.toString()] = doc.languageId;
21-
// 设置为 Markdown
21+
// 设置为 Markdown
2222
vscode.languages.setTextDocumentLanguage(doc, 'markdown');
2323
} else {
24-
// 恢复原始语言模式
24+
// 恢复原始语言模式
2525
const originalLanguage = originalLanguages[doc.uri.toString()];
2626
if (originalLanguage) {
2727
vscode.languages.setTextDocumentLanguage(doc, originalLanguage);
@@ -32,12 +32,12 @@ export function setupCvbAsMarkdown(context: vscode.ExtensionContext) {
3232
});
3333
}
3434

35-
// 初始化时设置语言模式
35+
// 初始化时设置语言模式
3636
if (treatCvbAsMarkdown) {
3737
setLanguageForCvbDocuments(true);
3838
}
3939

40-
// 监听文件打开事件
40+
// 监听文件打开事件
4141
const openDocumentListener = vscode.workspace.onDidOpenTextDocument(document => {
4242
if (document.fileName.endsWith('.cvb') && treatCvbAsMarkdown) {
4343
originalLanguages[document.uri.toString()] = document.languageId;
@@ -46,7 +46,7 @@ export function setupCvbAsMarkdown(context: vscode.ExtensionContext) {
4646
});
4747
context.subscriptions.push(openDocumentListener);
4848

49-
// 监听配置变化
49+
// 监听配置变化
5050
const configChangeListener = vscode.workspace.onDidChangeConfiguration((e: vscode.ConfigurationChangeEvent) => {
5151
if (e.affectsConfiguration('codeReDesign.treatCvbAsMarkdown')) {
5252
const newValue = config.get('treatCvbAsMarkdown', true);

src/extension.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ export function activate(context: vscode.ExtensionContext) {
2222
return;
2323
}
2424

25-
const workspacePath = workspaceFolders[0].uri.fsPath;
2625
const selectedFiles = await selectFiles();
2726
if (selectedFiles.length === 0) {
2827
vscode.window.showErrorMessage('No files selected.');
@@ -38,7 +37,7 @@ export function activate(context: vscode.ExtensionContext) {
3837
return;
3938
}
4039

41-
const cvbFilePath = generateCvb(selectedFiles, workspacePath, userRequest);
40+
const cvbFilePath = generateCvb(selectedFiles, userRequest);
4241
vscode.window.showInformationMessage(`CVB file generated at: ${cvbFilePath}`);
4342
});
4443

@@ -130,7 +129,7 @@ export function activate(context: vscode.ExtensionContext) {
130129

131130
try {
132131
// 应用 CVB 到工作目录
133-
applyCvbToWorkspace(cvbContent, workspacePath);
132+
applyCvbToWorkspace(cvbContent);
134133
} catch (error) {
135134
vscode.window.showErrorMessage(`Failed to apply CVB: ${(error as Error).message}`);
136135
}

src/fileSelector.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ export async function selectFiles(): Promise<string[]> {
1111
return [];
1212
}
1313

14-
// 获取当前工作目录
15-
const workspacePath = workspaceFolders[0].uri.fsPath;
16-
1714
// 获取当前目录下的所有源文件
1815
const files = await vscode.workspace.findFiles('**/*.{cpp,h,c,cxx,hpp,py,lua,ls,lh,ts,js}'); // 支持的文件类型
1916
const filePaths = files.map(file => file.fsPath);

src/siderBar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function applyCvb(filePath: string) {
131131

132132
const workspaceFolders = vscode.workspace.workspaceFolders;
133133
if (workspaceFolders) {
134-
applyCvbToWorkspace(cvbContent, workspaceFolders[0].uri.path);
134+
applyCvbToWorkspace(cvbContent);
135135
}
136136
}
137137

0 commit comments

Comments
 (0)