@@ -120,6 +120,115 @@ export function initCodeReview(
120120 reviewInstance . askWithAI ( comment . id )
121121 }
122122 } ,
123+ codeReviewJetbrains : async ( args : any ) => {
124+ const visibleProvider = await ClineProvider . getInstance ( )
125+ if ( ! visibleProvider ) {
126+ return
127+ }
128+ visibleProvider . log ( `[CodeReview] start review ${ args } ` )
129+
130+ const data = args ?. [ 0 ] ?. [ 0 ]
131+ if ( ! data ) {
132+ visibleProvider . log ( "[CodeReview] Invalid args structure" )
133+ return
134+ }
135+
136+ const { startLine, endLine, filePath, selectedText } = data
137+ visibleProvider . log (
138+ `[CodeReview] extracted data: filePath=${ filePath } , startLine=${ startLine } , endLine=${ endLine } ` ,
139+ )
140+
141+ const cwd = visibleProvider . cwd . toPosix ( )
142+ reviewInstance . setProvider ( visibleProvider )
143+ const params = {
144+ filePath,
145+ endLine : endLine + "" ,
146+ startLine : startLine + "" ,
147+ selectedText : selectedText ,
148+ }
149+ const prompt = supportPrompt . create ( "ADD_TO_CONTEXT" , params )
150+ reviewInstance . createReviewTask ( prompt , [
151+ {
152+ type : ReviewTargetType . CODE ,
153+ file_path : toRelativePath ( filePath . toPosix ( ) , cwd ) ,
154+ line_range : [ startLine , endLine ] ,
155+ } ,
156+ ] )
157+ } ,
158+ reviewFilesAndFoldersJetbrains : async ( args : any ) => {
159+ const visibleProvider = await ClineProvider . getInstance ( )
160+ if ( ! visibleProvider ) {
161+ return
162+ }
163+ visibleProvider . log ( `[CodeReview] start review ${ JSON . stringify ( args ) } ` )
164+ const data = args ?. [ 0 ] ?. [ 0 ]
165+ if ( ! data ) {
166+ visibleProvider . log ( "[CodeReview] Invalid args structure" )
167+ return
168+ }
169+ const cwd = visibleProvider . cwd . toPosix ( )
170+ const { filePaths } = data
171+ const targets : ReviewTarget [ ] = await Promise . all (
172+ filePaths . map ( async ( filePath : string ) => {
173+ return {
174+ type : ReviewTargetType . FILE ,
175+ file_path : toRelativePath ( filePath . toPosix ( ) , cwd ) ,
176+ }
177+ } ) ,
178+ )
179+ reviewInstance . setProvider ( visibleProvider )
180+ reviewInstance . startReview ( targets )
181+ } ,
182+ acceptIssueJetbrains : async ( args : any ) => {
183+ const visibleProvider = await ClineProvider . getInstance ( )
184+ if ( ! visibleProvider ) {
185+ return
186+ }
187+ reviewInstance . setProvider ( visibleProvider )
188+ visibleProvider . log ( `[CodeReview] accept issue ${ JSON . stringify ( args ) } ` )
189+ const data = args ?. [ 0 ] ?. [ 0 ]
190+ if ( ! data ) {
191+ visibleProvider . log ( "[CodeReview] Invalid args structure" )
192+ return
193+ }
194+
195+ const { id } = data
196+ reviewInstance . updateIssueStatus ( id , IssueStatus . ACCEPT )
197+ } ,
198+ rejectIssueJetbrains : async ( args : any ) => {
199+ const visibleProvider = await ClineProvider . getInstance ( )
200+ if ( ! visibleProvider ) {
201+ return
202+ }
203+ reviewInstance . setProvider ( visibleProvider )
204+ visibleProvider . log ( `[CodeReview] reject issue ${ JSON . stringify ( args ) } ` )
205+ const data = args ?. [ 0 ] ?. [ 0 ]
206+ if ( ! data ) {
207+ visibleProvider . log ( "[CodeReview] Invalid args structure" )
208+ return
209+ }
210+
211+ const { id } = data
212+ reviewInstance . updateIssueStatus ( id , IssueStatus . REJECT )
213+ } ,
214+ askReviewSuggestionWithAIJetbrains : async ( args : any ) => {
215+ const visibleProvider = await ClineProvider . getInstance ( )
216+ if ( ! visibleProvider ) {
217+ return
218+ }
219+ visibleProvider . log ( `[CodeReview] ask review suggestion with AI ${ JSON . stringify ( args ) } ` )
220+ reviewInstance . setProvider ( visibleProvider )
221+ const data = args ?. [ 0 ] ?. [ 0 ]
222+ if ( ! data ) {
223+ visibleProvider . log ( "[CodeReview] Invalid args structure" )
224+ return
225+ }
226+
227+ const { id } = data
228+ if ( id ) {
229+ reviewInstance . askWithAI ( id )
230+ }
231+ } ,
123232 }
124233 for ( const [ id , callback ] of Object . entries ( commandMap ) ) {
125234 const command = getCommand ( id as CostrictCommandId )
0 commit comments