@@ -64,6 +64,31 @@ def rubocop_team_for_path(path)
6464 RuboCop ::Cop ::Team . new ( RuboCop ::Cop ::Cop . all , rubocop_config )
6565 end
6666
67+ def violation_positions ( location )
68+ if location . is_a? ( RuboCop ::Cop ::Lint ::Syntax ::PseudoSourceRange )
69+ first_line = location . line
70+ last_line = location . line
71+ first_column = location . column
72+ last_column = location . column
73+ else
74+ first_line = location . first_line
75+ last_line = location . last_line
76+ first_column = location . column
77+ last_column = location . last_column
78+ end
79+
80+ {
81+ begin : {
82+ column : first_column + 1 , # columns are 0-based in Parser
83+ line : first_line ,
84+ } ,
85+ end : {
86+ column : last_column + 1 ,
87+ line : last_line ,
88+ }
89+ }
90+ end
91+
6792 def violation_json ( violation , local_path )
6893 {
6994 type : "Issue" ,
@@ -73,16 +98,7 @@ def violation_json(violation, local_path)
7398 remediation_points : 50_000 ,
7499 location : {
75100 path : local_path ,
76- positions : {
77- begin : {
78- column : violation . location . column + 1 , # columns are 0-based in Parser
79- line : violation . location . first_line ,
80- } ,
81- end : {
82- column : violation . location . last_column + 1 ,
83- line : violation . location . last_line ,
84- }
85- } ,
101+ positions : violation_positions ( violation . location ) ,
86102 } ,
87103 } . to_json
88104 end
0 commit comments