11import * as vscode from "vscode" ;
22import * as _ from "lodash" ;
3- import { findIssueWithRange , ignoreIssueCommentText } from '../../../utils/analysisUtils' ;
3+ import { getDeepCodeSeverity , findIssueWithRange , ignoreIssueCommentText } from '../../../utils/analysisUtils' ;
44import {
5+ SHOW_ISSUE_ACTION_NAME ,
56 IGNORE_ISSUE_ACTION_NAME ,
67 FILE_IGNORE_ACTION_NAME ,
78 IGNORE_ISSUE_BASE_COMMENT_TEXT ,
89 FILE_IGNORE_ISSUE_BASE_COMMENT_TEXT ,
910} from "../../../constants/analysis" ;
1011import {
12+ DEEPCODE_OPEN_ISSUE_COMMAND ,
1113 DEEPCODE_IGNORE_ISSUE_COMMAND ,
12- VSCODE_ADD_COMMENT_COMMAND
14+ VSCODE_ADD_COMMENT_COMMAND ,
1315} from "../../../constants/commands" ;
1416import { COMMAND_DEBOUNCE_INTERVAL } from "../../../constants/general" ;
1517
@@ -167,6 +169,28 @@ export class DeepCodeIssuesActionProvider implements vscode.CodeActionProvider {
167169 return ignoreIssueAction ;
168170 }
169171
172+ private createShowIssueAction ( {
173+ document,
174+ matchedIssue,
175+ } : {
176+ document : vscode . TextDocument ;
177+ matchedIssue : vscode . Diagnostic ;
178+ } ) : vscode . CodeAction {
179+ const showIssueAction = new vscode . CodeAction (
180+ SHOW_ISSUE_ACTION_NAME ,
181+ DeepCodeIssuesActionProvider . providedCodeActionKinds [ 0 ] ,
182+ ) ;
183+
184+ const suggestion = this . findSuggestion ( matchedIssue . message ) ;
185+ if ( suggestion ) showIssueAction . command = {
186+ command : DEEPCODE_OPEN_ISSUE_COMMAND ,
187+ title : DEEPCODE_OPEN_ISSUE_COMMAND ,
188+ arguments : [ matchedIssue . message , suggestion . severity , document . uri , matchedIssue . range , null ] ,
189+ } ;
190+
191+ return showIssueAction ;
192+ }
193+
170194 public provideCodeActions (
171195 document : vscode . TextDocument ,
172196 clickedRange : vscode . Range ,
@@ -178,13 +202,14 @@ export class DeepCodeIssuesActionProvider implements vscode.CodeActionProvider {
178202 const matchedIssue = findIssueWithRange ( clickedRange , fileIssues ) ;
179203 if ( matchedIssue ) {
180204 const codeActionParams = { document, matchedIssue } ;
205+ const showIssueAction = this . createShowIssueAction ( codeActionParams ) ;
181206 const ignoreIssueAction = this . createIgnoreIssueAction ( codeActionParams ) ;
182207 const fileIgnoreIssueAction = this . createIgnoreIssueAction ( {
183208 ...codeActionParams ,
184209 isFileIgnore : true ,
185210 } ) ;
186211 // returns list of actions, all new actions should be added to this list
187- return [ ignoreIssueAction , fileIgnoreIssueAction ] ;
212+ return [ showIssueAction , ignoreIssueAction , fileIgnoreIssueAction ] ;
188213 }
189214 }
190215}
0 commit comments