Skip to content

Commit

Permalink
feat: init auto doc
Browse files Browse the repository at this point in the history
  • Loading branch information
phodal committed Apr 8, 2024
1 parent 3a4cc70 commit 95ab70d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 17 deletions.
50 changes: 35 additions & 15 deletions src/providers/AutoDevCodeActionProvider.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,39 @@
import * as vscode from "vscode";

export class AutoDevCodeActionProvider implements vscode.CodeActionProvider {
provideCodeActions(
document: vscode.TextDocument,
range: vscode.Range | vscode.Selection,
context: vscode.CodeActionContext,
token: vscode.CancellationToken
): vscode.ProviderResult<(vscode.CodeAction | vscode.Command)[]> {
throw new Error("Method not implemented.");
}
export class AutoDocumentationCodeActionProvider
implements vscode.CodeActionProvider
{
provideCodeActions(
document: vscode.TextDocument,
range: vscode.Range | vscode.Selection,
context: vscode.CodeActionContext,
token: vscode.CancellationToken
): vscode.ProviderResult<vscode.CodeAction[]> {
// 获取用户选择的代码范围
const selectedCode = document.getText(range);

resolveCodeAction?(
codeAction: vscode.CodeAction,
token: vscode.CancellationToken
): vscode.ProviderResult<vscode.CodeAction> {
throw new Error("Method not implemented.");
}
// 分析选中的代码,生成文档注释
const documentation = this.generateDocumentation(selectedCode);

// 创建修复建议
const codeAction = new vscode.CodeAction(
"Generate Documentation",
vscode.CodeActionKind.QuickFix
);
codeAction.edit = new vscode.WorkspaceEdit();
codeAction.edit.insert(document.uri, range.end, "\n\n" + documentation); // 在代码后面插入生成的文档注释

return [codeAction];
}

private generateDocumentation(code: string): string {
// 实现根据选中的代码生成文档注释的逻辑
// 这里是一个示例,您可能需要根据您的语言和需求进行修改
// 例如,您可以使用代码解析工具来分析代码结构并生成相应的文档注释
return `/**
* This function/method does something.
* @param {string} param1 Description of parameter 1.
* @returns {number} Description of the return value.
*/`;
}
}
1 change: 1 addition & 0 deletions src/providers/AutoDevQuickFixProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export class AutoDevQuickFixProvider implements vscode.CodeActionProvider {
};
return quickFix;
};

return [
// createQuickFix(true),
createQuickFix(false),
Expand Down
4 changes: 2 additions & 2 deletions src/providers/registerProviders.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as vscode from "vscode";
import { AutoDevQuickFixProvider } from "./AutoDevQuickFixProvider";
import { AutoDevCodeActionProvider } from "./AutoDevCodeActionProvider";
import { AutoDocumentationCodeActionProvider } from "./AutoDevCodeActionProvider";

export function registerQuickFixProvider() {
// In your extension's activate function:
Expand All @@ -15,7 +15,7 @@ export function registerQuickFixProvider() {
// Normal action
vscode.languages.registerCodeActionsProvider(
{ language: "*" },
new AutoDevCodeActionProvider(),
new AutoDocumentationCodeActionProvider(),
{
providedCodeActionKinds: [vscode.CodeActionKind.Empty],
}
Expand Down

0 comments on commit 95ab70d

Please sign in to comment.