Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/activate/CodeActionProvider.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as vscode from "vscode"

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

import { getCodeActionCommand } from "../utils/commands"
import { EditorUtils } from "../integrations/editor/EditorUtils"
Expand Down Expand Up @@ -36,6 +37,10 @@ export class CodeActionProvider implements vscode.CodeActionProvider {
context: vscode.CodeActionContext,
): vscode.ProviderResult<(vscode.CodeAction | vscode.Command)[]> {
try {
if (!vscode.workspace.getConfiguration(Package.name).get<boolean>("enableCodeActions", true)) {
return []
}

const effectiveRange = EditorUtils.getEffectiveRange(document, range)

if (!effectiveRange) {
Expand Down
26 changes: 26 additions & 0 deletions src/activate/__tests__/CodeActionProvider.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ vi.mock("vscode", () => ({
Information: 2,
Hint: 3,
},
workspace: {
getConfiguration: vi.fn().mockReturnValue({
get: vi.fn().mockReturnValue(true),
}),
},
}))

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

it("should return empty array when enableCodeActions is disabled", () => {
// Mock the configuration to return false for enableCodeActions
const mockGet = vi.fn().mockReturnValue(false)
const mockGetConfiguration = vi.fn().mockReturnValue({
get: mockGet,
})
;(vscode.workspace.getConfiguration as Mock).mockReturnValue(mockGetConfiguration())

const actions = provider.provideCodeActions(mockDocument, mockRange, mockContext)

expect(actions).toEqual([])
expect(vscode.workspace.getConfiguration).toHaveBeenCalledWith("roo-cline")
expect(mockGet).toHaveBeenCalledWith("enableCodeActions", true)
})

it("should handle errors gracefully", () => {
const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => {})

// Reset the workspace mock to return true for enableCodeActions
const mockGet = vi.fn().mockReturnValue(true)
const mockGetConfiguration = vi.fn().mockReturnValue({
get: mockGet,
})
;(vscode.workspace.getConfiguration as Mock).mockReturnValue(mockGetConfiguration())
;(EditorUtils.getEffectiveRange as Mock).mockImplementation(() => {
throw new Error("Test error")
})
Expand Down
5 changes: 5 additions & 0 deletions src/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,11 @@
"type": "boolean",
"default": false,
"description": "%settings.rooCodeCloudEnabled.description%"
},
"roo-cline.enableCodeActions": {
"type": "boolean",
"default": true,
"description": "%settings.enableCodeActions.description%"
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/package.nls.ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "El proveïdor del model de llenguatge (p. ex. copilot)",
"settings.vsCodeLmModelSelector.family.description": "La família del model de llenguatge (p. ex. gpt-4)",
"settings.customStoragePath.description": "Ruta d'emmagatzematge personalitzada. Deixeu-la buida per utilitzar la ubicació predeterminada. Admet rutes absolutes (p. ex. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud.",
"settings.enableCodeActions.description": "Habilitar correccions ràpides de Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.de.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Der Anbieter des Sprachmodells (z.B. copilot)",
"settings.vsCodeLmModelSelector.family.description": "Die Familie des Sprachmodells (z.B. gpt-4)",
"settings.customStoragePath.description": "Benutzerdefinierter Speicherpfad. Leer lassen, um den Standardspeicherort zu verwenden. Unterstützt absolute Pfade (z.B. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Aktiviere Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Aktiviere Roo Code Cloud.",
"settings.enableCodeActions.description": "Roo Code Schnelle Problembehebung aktivieren."
}
3 changes: 2 additions & 1 deletion src/package.nls.es.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "El proveedor del modelo de lenguaje (ej. copilot)",
"settings.vsCodeLmModelSelector.family.description": "La familia del modelo de lenguaje (ej. gpt-4)",
"settings.customStoragePath.description": "Ruta de almacenamiento personalizada. Dejar vacío para usar la ubicación predeterminada. Admite rutas absolutas (ej. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud.",
"settings.enableCodeActions.description": "Habilitar correcciones rápidas de Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Le fournisseur du modèle de langage (ex: copilot)",
"settings.vsCodeLmModelSelector.family.description": "La famille du modèle de langage (ex: gpt-4)",
"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')",
"settings.rooCodeCloudEnabled.description": "Activer Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Activer Roo Code Cloud.",
"settings.enableCodeActions.description": "Activer les correctifs rapides de Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "भाषा मॉडल का विक्रेता (उदा. copilot)",
"settings.vsCodeLmModelSelector.family.description": "भाषा मॉडल का परिवार (उदा. gpt-4)",
"settings.customStoragePath.description": "कस्टम स्टोरेज पाथ। डिफ़ॉल्ट स्थान का उपयोग करने के लिए खाली छोड़ें। पूर्ण पथ का समर्थन करता है (उदा. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud सक्षम करें।"
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud सक्षम करें।",
"settings.enableCodeActions.description": "Roo Code त्वरित सुधार सक्षम करें"
}
3 changes: 2 additions & 1 deletion src/package.nls.id.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Vendor dari model bahasa (misalnya copilot)",
"settings.vsCodeLmModelSelector.family.description": "Keluarga dari model bahasa (misalnya gpt-4)",
"settings.customStoragePath.description": "Path penyimpanan kustom. Biarkan kosong untuk menggunakan lokasi default. Mendukung path absolut (misalnya 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Aktifkan Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Aktifkan Roo Code Cloud.",
"settings.enableCodeActions.description": "Aktifkan perbaikan cepat Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.it.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Il fornitore del modello linguistico (es. copilot)",
"settings.vsCodeLmModelSelector.family.description": "La famiglia del modello linguistico (es. gpt-4)",
"settings.customStoragePath.description": "Percorso di archiviazione personalizzato. Lasciare vuoto per utilizzare la posizione predefinita. Supporta percorsi assoluti (es. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Abilita Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Abilita Roo Code Cloud.",
"settings.enableCodeActions.description": "Abilita correzioni rapide di Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "言語モデルのベンダー(例:copilot)",
"settings.vsCodeLmModelSelector.family.description": "言語モデルのファミリー(例:gpt-4)",
"settings.customStoragePath.description": "カスタムストレージパス。デフォルトの場所を使用する場合は空のままにします。絶対パスをサポートします(例:'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud を有効にする。"
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud を有効にする。",
"settings.enableCodeActions.description": "Roo Codeのクイック修正を有効にする。"
}
3 changes: 2 additions & 1 deletion src/package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "The vendor of the language model (e.g. copilot)",
"settings.vsCodeLmModelSelector.family.description": "The family of the language model (e.g. gpt-4)",
"settings.customStoragePath.description": "Custom storage path. Leave empty to use the default location. Supports absolute paths (e.g. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Enable Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Enable Roo Code Cloud.",
"settings.enableCodeActions.description": "Enable Roo Code quick fixes"
}
3 changes: 2 additions & 1 deletion src/package.nls.ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "언어 모델 공급자 (예: copilot)",
"settings.vsCodeLmModelSelector.family.description": "언어 모델 계열 (예: gpt-4)",
"settings.customStoragePath.description": "사용자 지정 저장소 경로. 기본 위치를 사용하려면 비워두세요. 절대 경로를 지원합니다 (예: 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud 사용 설정"
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud 사용 설정",
"settings.enableCodeActions.description": "Roo Code 빠른 수정 사용 설정"
}
3 changes: 2 additions & 1 deletion src/package.nls.nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "De leverancier van het taalmodel (bijv. copilot)",
"settings.vsCodeLmModelSelector.family.description": "De familie van het taalmodel (bijv. gpt-4)",
"settings.customStoragePath.description": "Aangepast opslagpad. Laat leeg om de standaardlocatie te gebruiken. Ondersteunt absolute paden (bijv. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud inschakelen."
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud inschakelen.",
"settings.enableCodeActions.description": "Snelle correcties van Roo Code inschakelen."
}
3 changes: 2 additions & 1 deletion src/package.nls.pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Dostawca modelu językowego (np. copilot)",
"settings.vsCodeLmModelSelector.family.description": "Rodzina modelu językowego (np. gpt-4)",
"settings.customStoragePath.description": "Niestandardowa ścieżka przechowywania. Pozostaw puste, aby użyć domyślnej lokalizacji. Obsługuje ścieżki bezwzględne (np. 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Włącz Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Włącz Roo Code Cloud.",
"settings.enableCodeActions.description": "Włącz szybkie poprawki Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "O fornecedor do modelo de linguagem (ex: copilot)",
"settings.vsCodeLmModelSelector.family.description": "A família do modelo de linguagem (ex: gpt-4)",
"settings.customStoragePath.description": "Caminho de armazenamento personalizado. Deixe vazio para usar o local padrão. Suporta caminhos absolutos (ex: 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Habilitar Roo Code Cloud.",
"settings.enableCodeActions.description": "Habilitar correções rápidas do Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Поставщик языковой модели (например, copilot)",
"settings.vsCodeLmModelSelector.family.description": "Семейство языковой модели (например, gpt-4)",
"settings.customStoragePath.description": "Пользовательский путь хранения. Оставьте пустым для использования пути по умолчанию. Поддерживает абсолютные пути (например, 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Включить Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Включить Roo Code Cloud.",
"settings.enableCodeActions.description": "Включить быстрые исправления Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Dil modelinin sağlayıcısı (örn: copilot)",
"settings.vsCodeLmModelSelector.family.description": "Dil modelinin ailesi (örn: gpt-4)",
"settings.customStoragePath.description": "Özel depolama yolu. Varsayılan konumu kullanmak için boş bırakın. Mutlak yolları destekler (örn: 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud'u Etkinleştir."
"settings.rooCodeCloudEnabled.description": "Roo Code Cloud'u Etkinleştir.",
"settings.enableCodeActions.description": "Roo Code hızlı düzeltmeleri etkinleştir."
}
3 changes: 2 additions & 1 deletion src/package.nls.vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "Nhà cung cấp mô hình ngôn ngữ (ví dụ: copilot)",
"settings.vsCodeLmModelSelector.family.description": "Họ mô hình ngôn ngữ (ví dụ: gpt-4)",
"settings.customStoragePath.description": "Đường dẫn lưu trữ tùy chỉnh. Để trống để sử dụng vị trí mặc định. Hỗ trợ đường dẫn tuyệt đối (ví dụ: 'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "Bật Roo Code Cloud."
"settings.rooCodeCloudEnabled.description": "Bật Roo Code Cloud.",
"settings.enableCodeActions.description": "Bật sửa lỗi nhanh Roo Code."
}
3 changes: 2 additions & 1 deletion src/package.nls.zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "语言模型的供应商(例如:copilot)",
"settings.vsCodeLmModelSelector.family.description": "语言模型的系列(例如:gpt-4)",
"settings.customStoragePath.description": "自定义存储路径。留空以使用默认位置。支持绝对路径(例如:'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "启用 Roo Code Cloud。"
"settings.rooCodeCloudEnabled.description": "启用 Roo Code Cloud。",
"settings.enableCodeActions.description": "启用 Roo Code 快速修复"
}
3 changes: 2 additions & 1 deletion src/package.nls.zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"settings.vsCodeLmModelSelector.vendor.description": "語言模型供應商(例如:copilot)",
"settings.vsCodeLmModelSelector.family.description": "語言模型系列(例如:gpt-4)",
"settings.customStoragePath.description": "自訂儲存路徑。留空以使用預設位置。支援絕對路徑(例如:'D:\\RooCodeStorage')",
"settings.rooCodeCloudEnabled.description": "啟用 Roo Code Cloud。"
"settings.rooCodeCloudEnabled.description": "啟用 Roo Code Cloud。",
"settings.enableCodeActions.description": "啟用 Roo Code 快速修復。"
}
Loading