diff --git a/packages/kilo-vscode/src/services/autocomplete/AutocompleteCodeActionProvider.ts b/packages/kilo-vscode/src/services/autocomplete/AutocompleteCodeActionProvider.ts index fde8fedea09..b94bb234d89 100644 --- a/packages/kilo-vscode/src/services/autocomplete/AutocompleteCodeActionProvider.ts +++ b/packages/kilo-vscode/src/services/autocomplete/AutocompleteCodeActionProvider.ts @@ -6,12 +6,20 @@ export class AutocompleteCodeActionProvider implements vscode.CodeActionProvider quickfix: vscode.CodeActionKind.QuickFix, } + private _enabled = false + + public set enabled(value: boolean) { + this._enabled = value + } + public provideCodeActions( document: vscode.TextDocument, range: vscode.Range | vscode.Selection, _context: vscode.CodeActionContext, _token: vscode.CancellationToken, ): vscode.ProviderResult<(vscode.CodeAction | vscode.Command)[]> { + if (!this._enabled) return [] + const action = new vscode.CodeAction( t("kilocode:autocomplete.codeAction.title"), this.providedCodeActionKinds["quickfix"], diff --git a/packages/kilo-vscode/src/services/autocomplete/AutocompleteServiceManager.ts b/packages/kilo-vscode/src/services/autocomplete/AutocompleteServiceManager.ts index 329240445d5..dbf5280f304 100644 --- a/packages/kilo-vscode/src/services/autocomplete/AutocompleteServiceManager.ts +++ b/packages/kilo-vscode/src/services/autocomplete/AutocompleteServiceManager.ts @@ -118,6 +118,7 @@ export class AutocompleteServiceManager { public async load() { this.settings = readSettings() + this.codeActionProvider.enabled = this.settings?.enableSmartInlineTaskKeybinding ?? false await this.updateGlobalContext() this.updateStatusBar() await this.ensureInlineCompletionProviderRegistration() diff --git a/packages/kilo-vscode/src/services/code-actions/code-action-provider.ts b/packages/kilo-vscode/src/services/code-actions/code-action-provider.ts index ddbaf025e87..d204521a0c3 100644 --- a/packages/kilo-vscode/src/services/code-actions/code-action-provider.ts +++ b/packages/kilo-vscode/src/services/code-actions/code-action-provider.ts @@ -23,7 +23,6 @@ export class KiloCodeActionProvider implements vscode.CodeActionProvider { if (hasDiagnostics) { const fix = new vscode.CodeAction("Fix with Kilo Code", vscode.CodeActionKind.QuickFix) fix.command = { command: "kilo-code.new.fixCode", title: "Fix with Kilo Code" } - fix.isPreferred = true actions.push(fix) } diff --git a/packages/kilo-vscode/tests/unit/code-action-provider.test.ts b/packages/kilo-vscode/tests/unit/code-action-provider.test.ts index 639c8fd2a09..07688c506a2 100644 --- a/packages/kilo-vscode/tests/unit/code-action-provider.test.ts +++ b/packages/kilo-vscode/tests/unit/code-action-provider.test.ts @@ -78,10 +78,10 @@ describe("KiloCodeActionProvider", () => { expect(result).toHaveLength(2) }) - it("Fix action is preferred", () => { + it("Fix action is not preferred so it does not hijack auto-fix", () => { const result = provider.provideCodeActions({} as never, makeRange(false) as never, makeContext(1) as never) const fix = result.find((a) => a.title === "Fix with Kilo Code") - expect(fix?.isPreferred).toBe(true) + expect(fix?.isPreferred).toBeFalsy() }) it("Fix action uses QuickFix kind", () => {