Skip to content

Commit 82f7e88

Browse files
OlegOAndreevhannesrudolphRooCode
authored
Added Enable Roo Code quick fixes setting to disable quick fixes. (#4878)
* Added Enable Roo Code quick fixes setting to disable quick fixes. * Fix: Address PR review comments and failing tests for #4878 * Fix localization consistency and add test coverage - Add missing period to French translation for consistency - Add test case for disabled enableCodeActions setting - Fix existing test mock setup for proper configuration handling --------- Co-authored-by: hannesrudolph <[email protected]> Co-authored-by: RooCode <[email protected]>
1 parent 6670e1a commit 82f7e88

21 files changed

+72
-18
lines changed

src/activate/CodeActionProvider.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as vscode from "vscode"
22

33
import { CodeActionName, CodeActionId } from "@roo-code/types"
4+
import { Package } from "../shared/package"
45

56
import { getCodeActionCommand } from "../utils/commands"
67
import { EditorUtils } from "../integrations/editor/EditorUtils"
@@ -36,6 +37,10 @@ export class CodeActionProvider implements vscode.CodeActionProvider {
3637
context: vscode.CodeActionContext,
3738
): vscode.ProviderResult<(vscode.CodeAction | vscode.Command)[]> {
3839
try {
40+
if (!vscode.workspace.getConfiguration(Package.name).get<boolean>("enableCodeActions", true)) {
41+
return []
42+
}
43+
3944
const effectiveRange = EditorUtils.getEffectiveRange(document, range)
4045

4146
if (!effectiveRange) {

src/activate/__tests__/CodeActionProvider.spec.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ vi.mock("vscode", () => ({
2525
Information: 2,
2626
Hint: 3,
2727
},
28+
workspace: {
29+
getConfiguration: vi.fn().mockReturnValue({
30+
get: vi.fn().mockReturnValue(true),
31+
}),
32+
},
2833
}))
2934

3035
vi.mock("../../integrations/editor/EditorUtils", () => ({
@@ -94,9 +99,30 @@ describe("CodeActionProvider", () => {
9499
expect(actions).toEqual([])
95100
})
96101

102+
it("should return empty array when enableCodeActions is disabled", () => {
103+
// Mock the configuration to return false for enableCodeActions
104+
const mockGet = vi.fn().mockReturnValue(false)
105+
const mockGetConfiguration = vi.fn().mockReturnValue({
106+
get: mockGet,
107+
})
108+
;(vscode.workspace.getConfiguration as Mock).mockReturnValue(mockGetConfiguration())
109+
110+
const actions = provider.provideCodeActions(mockDocument, mockRange, mockContext)
111+
112+
expect(actions).toEqual([])
113+
expect(vscode.workspace.getConfiguration).toHaveBeenCalledWith("roo-cline")
114+
expect(mockGet).toHaveBeenCalledWith("enableCodeActions", true)
115+
})
116+
97117
it("should handle errors gracefully", () => {
98118
const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => {})
99119

120+
// Reset the workspace mock to return true for enableCodeActions
121+
const mockGet = vi.fn().mockReturnValue(true)
122+
const mockGetConfiguration = vi.fn().mockReturnValue({
123+
get: mockGet,
124+
})
125+
;(vscode.workspace.getConfiguration as Mock).mockReturnValue(mockGetConfiguration())
100126
;(EditorUtils.getEffectiveRange as Mock).mockImplementation(() => {
101127
throw new Error("Test error")
102128
})

src/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,11 @@
344344
"type": "boolean",
345345
"default": false,
346346
"description": "%settings.rooCodeCloudEnabled.description%"
347+
},
348+
"roo-cline.enableCodeActions": {
349+
"type": "boolean",
350+
"default": true,
351+
"description": "%settings.enableCodeActions.description%"
347352
}
348353
}
349354
}

src/package.nls.ca.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "El proveïdor del model de llenguatge (p. ex. copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "La família del model de llenguatge (p. ex. gpt-4)",
3232
"settings.customStoragePath.description": "Ruta d'emmagatzematge personalitzada. Deixeu-la buida per utilitzar la ubicació predeterminada. Admet rutes absolutes (p. ex. 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud."
33+
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud.",
34+
"settings.enableCodeActions.description": "Habilitar correccions ràpides de Roo Code."
3435
}

src/package.nls.de.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "Der Anbieter des Sprachmodells (z.B. copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "Die Familie des Sprachmodells (z.B. gpt-4)",
3232
"settings.customStoragePath.description": "Benutzerdefinierter Speicherpfad. Leer lassen, um den Standardspeicherort zu verwenden. Unterstützt absolute Pfade (z.B. 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Aktiviere Roo Code Cloud."
33+
"settings.rooCodeCloudEnabled.description": "Aktiviere Roo Code Cloud.",
34+
"settings.enableCodeActions.description": "Roo Code Schnelle Problembehebung aktivieren."
3435
}

src/package.nls.es.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "El proveedor del modelo de lenguaje (ej. copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "La familia del modelo de lenguaje (ej. gpt-4)",
3232
"settings.customStoragePath.description": "Ruta de almacenamiento personalizada. Dejar vacío para usar la ubicación predeterminada. Admite rutas absolutas (ej. 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud."
33+
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud.",
34+
"settings.enableCodeActions.description": "Habilitar correcciones rápidas de Roo Code."
3435
}

src/package.nls.fr.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "Le fournisseur du modèle de langage (ex: copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "La famille du modèle de langage (ex: gpt-4)",
3232
"settings.customStoragePath.description": "Chemin de stockage personnalisé. Laisser vide pour utiliser l'emplacement par défaut. Prend en charge les chemins absolus (ex: 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Activer Roo Code Cloud."
33+
"settings.rooCodeCloudEnabled.description": "Activer Roo Code Cloud.",
34+
"settings.enableCodeActions.description": "Activer les correctifs rapides de Roo Code."
3435
}

src/package.nls.hi.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "भाषा मॉडल का विक्रेता (उदा. copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "भाषा मॉडल का परिवार (उदा. gpt-4)",
3232
"settings.customStoragePath.description": "कस्टम स्टोरेज पाथ। डिफ़ॉल्ट स्थान का उपयोग करने के लिए खाली छोड़ें। पूर्ण पथ का समर्थन करता है (उदा. 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud सक्षम करें।"
33+
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud सक्षम करें।",
34+
"settings.enableCodeActions.description": "Roo Code त्वरित सुधार सक्षम करें"
3435
}

src/package.nls.id.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "Vendor dari model bahasa (misalnya copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "Keluarga dari model bahasa (misalnya gpt-4)",
3232
"settings.customStoragePath.description": "Path penyimpanan kustom. Biarkan kosong untuk menggunakan lokasi default. Mendukung path absolut (misalnya 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Aktifkan Roo Code Cloud."
33+
"settings.rooCodeCloudEnabled.description": "Aktifkan Roo Code Cloud.",
34+
"settings.enableCodeActions.description": "Aktifkan perbaikan cepat Roo Code."
3435
}

src/package.nls.it.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"settings.vsCodeLmModelSelector.vendor.description": "Il fornitore del modello linguistico (es. copilot)",
3131
"settings.vsCodeLmModelSelector.family.description": "La famiglia del modello linguistico (es. gpt-4)",
3232
"settings.customStoragePath.description": "Percorso di archiviazione personalizzato. Lasciare vuoto per utilizzare la posizione predefinita. Supporta percorsi assoluti (es. 'D:\\RooCodeStorage')",
33-
"settings.rooCodeCloudEnabled.description": "Abilita Roo Code Cloud."
33+
"settings.rooCodeCloudEnabled.description": "Abilita Roo Code Cloud.",
34+
"settings.enableCodeActions.description": "Abilita correzioni rapide di Roo Code."
3435
}

0 commit comments

Comments
 (0)