diff --git a/src/providers/AutoDocumentationActionProvider.ts b/src/providers/AutoDocumentationActionProvider.ts index afe25e50..49bb00e3 100644 --- a/src/providers/AutoDocumentationActionProvider.ts +++ b/src/providers/AutoDocumentationActionProvider.ts @@ -11,10 +11,6 @@ export class AutoDocumentationActionProvider token: vscode.CancellationToken ): vscode.ProviderResult { const langId = document.languageId; - // check is our support id; - if (!SUPPORTED_LANGID.includes(langId as any)) { - return []; - } // 获取用户选择的代码范围 const selectedCode = document.getText(range); diff --git a/src/providers/ChatWithThisActionProvider.ts b/src/providers/ChatWithThisActionProvider.ts new file mode 100644 index 00000000..bf472bef --- /dev/null +++ b/src/providers/ChatWithThisActionProvider.ts @@ -0,0 +1,20 @@ +import * as vscode from "vscode"; + +export class ChatWithThisActionProvider extends vscode.CodeAction { + provideCodeActions( + document: vscode.TextDocument, + range: vscode.Range | vscode.Selection, + context: vscode.CodeActionContext, + token: vscode.CancellationToken + ): vscode.ProviderResult { + const langId = document.languageId; + + const codeAction = new vscode.CodeAction( + "Chat With this (AutoDev)", + vscode.CodeActionKind.Empty + ); + + codeAction.edit = new vscode.WorkspaceEdit(); + return [codeAction]; + } +} diff --git a/src/providers/registerProviders.ts b/src/providers/registerProviders.ts index 76e242ab..7736f215 100644 --- a/src/providers/registerProviders.ts +++ b/src/providers/registerProviders.ts @@ -1,9 +1,10 @@ import * as vscode from "vscode"; import { AutoDevQuickFixProvider } from "./AutoDevQuickFixProvider"; import { AutoDocumentationActionProvider } from "./AutoDocumentationActionProvider"; +import { SUPPORTED_LANGID } from "../supported"; +import { ChatWithThisActionProvider } from "./ChatWithThisActionProvider"; export function registerQuickFixProvider() { - // In your extension's activate function: vscode.languages.registerCodeActionsProvider( { language: "*" }, new AutoDevQuickFixProvider(), @@ -12,14 +13,21 @@ export function registerQuickFixProvider() { } ); - // Normal action - vscode.languages.registerCodeActionsProvider( - { language: "*" }, - new AutoDocumentationActionProvider(), - { - providedCodeActionKinds: [vscode.CodeActionKind.Empty], - } - ); -} - + SUPPORTED_LANGID.forEach((langId) => { + vscode.languages.registerCodeActionsProvider( + { language: langId }, + new AutoDocumentationActionProvider(), + { + providedCodeActionKinds: [vscode.CodeActionKind.Empty], + } + ); + vscode.languages.registerCodeActionsProvider( + { language: langId }, + new ChatWithThisActionProvider("Chat with This"), + { + providedCodeActionKinds: [vscode.CodeActionKind.Empty], + } + ); + }); +}