@@ -2,24 +2,27 @@ import * as vscode from "vscode"
22
33import { EditorUtils } from "./EditorUtils"
44
5- export type CodeActionName = "EXPLAIN" | "FIX" | "ADD_TO_CONTEXT" | "NEW_TASK"
5+ export type CodeActionName = "EXPLAIN" | "FIX" | "IMPROVE" | " ADD_TO_CONTEXT" | "NEW_TASK"
66
77export type CodeActionId =
88 | "roo-cline.explainCode"
99 | "roo-cline.fixCode"
10+ | "roo-cline.improveCode"
1011 | "roo-cline.addToContext"
1112 | "roo-cline.newTask"
1213
13- export const ACTION_NAMES : Record < CodeActionName , string > = {
14+ export const ACTION_TITLES : Record < CodeActionName , string > = {
1415 EXPLAIN : "Explain with Roo Code" ,
1516 FIX : "Fix with Roo Code" ,
17+ IMPROVE : "Improve with Roo Code" ,
1618 ADD_TO_CONTEXT : "Add to Roo Code" ,
1719 NEW_TASK : "New Roo Code Task" ,
1820} as const
1921
2022export const COMMAND_IDS : Record < CodeActionName , CodeActionId > = {
2123 EXPLAIN : "roo-cline.explainCode" ,
2224 FIX : "roo-cline.fixCode" ,
25+ IMPROVE : "roo-cline.improveCode" ,
2326 ADD_TO_CONTEXT : "roo-cline.addToContext" ,
2427 NEW_TASK : "roo-cline.newTask" ,
2528} as const
@@ -30,7 +33,12 @@ export class CodeActionProvider implements vscode.CodeActionProvider {
3033 vscode . CodeActionKind . RefactorRewrite ,
3134 ]
3235
33- private createAction ( title : string , kind : vscode . CodeActionKind , command : string , args : any [ ] ) : vscode . CodeAction {
36+ private createAction (
37+ title : string ,
38+ kind : vscode . CodeActionKind ,
39+ command : CodeActionId ,
40+ args : any [ ] ,
41+ ) : vscode . CodeAction {
3442 const action = new vscode . CodeAction ( title , kind )
3543 action . command = { command, title, arguments : args }
3644 return action
@@ -53,7 +61,7 @@ export class CodeActionProvider implements vscode.CodeActionProvider {
5361
5462 actions . push (
5563 this . createAction (
56- ACTION_NAMES . ADD_TO_CONTEXT ,
64+ ACTION_TITLES . ADD_TO_CONTEXT ,
5765 vscode . CodeActionKind . QuickFix ,
5866 COMMAND_IDS . ADD_TO_CONTEXT ,
5967 [
@@ -65,23 +73,14 @@ export class CodeActionProvider implements vscode.CodeActionProvider {
6573 ) ,
6674 )
6775
68- actions . push (
69- this . createAction ( ACTION_NAMES . EXPLAIN , vscode . CodeActionKind . QuickFix , COMMAND_IDS . EXPLAIN , [
70- filePath ,
71- effectiveRange . text ,
72- effectiveRange . range . start . line + 1 ,
73- effectiveRange . range . end . line + 1 ,
74- ] ) ,
75- )
76-
7776 if ( context . diagnostics . length > 0 ) {
7877 const relevantDiagnostics = context . diagnostics . filter ( ( d ) =>
7978 EditorUtils . hasIntersectingRange ( effectiveRange . range , d . range ) ,
8079 )
8180
8281 if ( relevantDiagnostics . length > 0 ) {
8382 actions . push (
84- this . createAction ( ACTION_NAMES . FIX , vscode . CodeActionKind . QuickFix , COMMAND_IDS . FIX , [
83+ this . createAction ( ACTION_TITLES . FIX , vscode . CodeActionKind . QuickFix , COMMAND_IDS . FIX , [
8584 filePath ,
8685 effectiveRange . text ,
8786 effectiveRange . range . start . line + 1 ,
@@ -90,6 +89,24 @@ export class CodeActionProvider implements vscode.CodeActionProvider {
9089 ] ) ,
9190 )
9291 }
92+ } else {
93+ actions . push (
94+ this . createAction ( ACTION_TITLES . EXPLAIN , vscode . CodeActionKind . QuickFix , COMMAND_IDS . EXPLAIN , [
95+ filePath ,
96+ effectiveRange . text ,
97+ effectiveRange . range . start . line + 1 ,
98+ effectiveRange . range . end . line + 1 ,
99+ ] ) ,
100+ )
101+
102+ actions . push (
103+ this . createAction ( ACTION_TITLES . IMPROVE , vscode . CodeActionKind . QuickFix , COMMAND_IDS . IMPROVE , [
104+ filePath ,
105+ effectiveRange . text ,
106+ effectiveRange . range . start . line + 1 ,
107+ effectiveRange . range . end . line + 1 ,
108+ ] ) ,
109+ )
93110 }
94111
95112 return actions
0 commit comments