Skip to content

Commit

Permalink
feat(vscode): adding inline edit into quick fix bar (#3010)
Browse files Browse the repository at this point in the history
* feat(vscode): adding inline edit into quick fix bar

asd

* to: change the kind and name for inline edit
  • Loading branch information
Sma1lboy authored and icycodes committed Sep 2, 2024
1 parent 78fff9d commit fcd4e59
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
31 changes: 31 additions & 0 deletions clients/vscode/src/InlineEditCodeActionProvider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import {
CancellationToken,
CodeAction,
CodeActionContext,
CodeActionKind,
CodeActionProvider,
Range,
Selection,
TextDocument,
} from "vscode";

export class InlineEditCodeActionProvider implements CodeActionProvider {
provideCodeActions(
_document: TextDocument,
_range: Range | Selection,
_context: CodeActionContext,
token: CancellationToken,
): CodeAction[] | undefined {
if (token.isCancellationRequested) {
return;
}
const quickFix = new CodeAction("Edit with Tabby", CodeActionKind.RefactorRewrite);

quickFix.command = {
command: "tabby.chat.edit.start",
title: "Start Tabby Chat Edit",
};

return [quickFix];
}
}
2 changes: 2 additions & 0 deletions clients/vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { StatusBarItem } from "./StatusBarItem";
import { ChatViewProvider } from "./chat/ChatViewProvider";
import { Commands } from "./Commands";
import { Status } from "tabby-agent";
import { InlineEditCodeActionProvider } from "./InlineEditCodeActionProvider";

const isBrowser = !!process.env["IS_BROWSER"];
const logger = getLogger();
Expand Down Expand Up @@ -55,6 +56,7 @@ export async function activate(context: ExtensionContext) {
client.registerConfigManager(config);
client.registerInlineCompletionProvider(inlineCompletionProvider);
client.registerGitProvider(gitProvider);
client.registerCodeActionProvider(new InlineEditCodeActionProvider());

// Register config callback for past ServerConfig
client.agent.addListener("didChangeStatus", async (status: Status) => {
Expand Down
5 changes: 4 additions & 1 deletion clients/vscode/src/lsp/Client.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ExtensionContext } from "vscode";
import { CodeActionProvider, ExtensionContext, languages } from "vscode";
import { BaseLanguageClient } from "vscode-languageclient";
import { AgentFeature } from "./AgentFeature";
import { ChatFeature } from "./ChatFeature";
Expand Down Expand Up @@ -74,4 +74,7 @@ export class Client {
const feature = new GitProviderFeature(this.languageClient, provider);
this.languageClient.registerFeature(feature);
}
registerCodeActionProvider(provider: CodeActionProvider) {
this.context.subscriptions.push(languages.registerCodeActionsProvider("*", provider));
}
}

0 comments on commit fcd4e59

Please sign in to comment.