Remove duplication, expand for next_line.
This commit is contained in:
parent
1067b00724
commit
f827482c12
|
@ -25,8 +25,8 @@ module CommitsHelper
|
||||||
|
|
||||||
def side_diff_line(diff, index)
|
def side_diff_line(diff, index)
|
||||||
Gitlab::DiffParser.new(diff.diff.lines.to_a, diff.new_path)
|
Gitlab::DiffParser.new(diff.diff.lines.to_a, diff.new_path)
|
||||||
.each_for_parallel do |full_line, type, line_code, line_new, line_old, next_line|
|
.each do |full_line, type, line_code, line_new, line_old, raw_line, next_line|
|
||||||
yield(full_line, type, line_code, line_new, line_old, next_line)
|
yield(full_line, type, line_code, line_new, line_old, raw_line, next_line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
/ Side-by-side diff view
|
/ Side-by-side diff view
|
||||||
%div.text-file
|
%div.text-file
|
||||||
%table
|
%table
|
||||||
- side_diff_line(diff, index) do |line, type, line_code, line_new, line_old, next_line|
|
- side_diff_line(diff, index) do |line, type, line_code, line_new, line_old, raw_line, next_line|
|
||||||
- next if type == 'new'
|
- next if type == 'new'
|
||||||
%tr.line_holder.parallel{ id: line_code, class: "#{type}" }
|
%tr.line_holder.parallel{ id: line_code, class: "#{type}" }
|
||||||
- if type != 'match'
|
- if type == "match"
|
||||||
|
= render "projects/commits/diffs/match_line_parallel", {line: line,
|
||||||
|
line_old: line_old, line_new: line_new, bottom: false}
|
||||||
|
- else
|
||||||
%td.old_line
|
%td.old_line
|
||||||
= link_to raw(line_old), "##{line_code}", id: line_code
|
= link_to raw(line_old), "##{line_code}", id: line_code
|
||||||
- if type == 'old'
|
- if type == 'old'
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
%td.old_line
|
||||||
|
%td.line_content.parallel.matched= line
|
||||||
|
%td.new_line
|
||||||
|
%td.line_content.parallel.matched= line
|
|
@ -14,47 +14,6 @@ module Gitlab
|
||||||
line_new = 1
|
line_new = 1
|
||||||
type = nil
|
type = nil
|
||||||
|
|
||||||
lines_arr = ::Gitlab::InlineDiff.processing lines
|
|
||||||
lines_arr.each do |line|
|
|
||||||
raw_line = line.dup
|
|
||||||
|
|
||||||
next if filename?(line)
|
|
||||||
|
|
||||||
full_line = html_escape(line.gsub(/\n/, ''))
|
|
||||||
full_line = ::Gitlab::InlineDiff.replace_markers full_line
|
|
||||||
|
|
||||||
if line.match(/^@@ -/)
|
|
||||||
type = "match"
|
|
||||||
|
|
||||||
line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
|
|
||||||
line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
|
|
||||||
|
|
||||||
next if line_old == 1 && line_new == 1 #top of file
|
|
||||||
yield(full_line, type, nil, line_new, line_old)
|
|
||||||
next
|
|
||||||
else
|
|
||||||
type = identification_type(line)
|
|
||||||
line_code = generate_line_code(new_path, line_new, line_old)
|
|
||||||
yield(full_line, type, line_code, line_new, line_old, raw_line)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if line[0] == "+"
|
|
||||||
line_new += 1
|
|
||||||
elsif line[0] == "-"
|
|
||||||
line_old += 1
|
|
||||||
else
|
|
||||||
line_new += 1
|
|
||||||
line_old += 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def each_for_parallel
|
|
||||||
line_old = 1
|
|
||||||
line_new = 1
|
|
||||||
type = nil
|
|
||||||
|
|
||||||
lines_arr = ::Gitlab::InlineDiff.processing lines
|
lines_arr = ::Gitlab::InlineDiff.processing lines
|
||||||
|
|
||||||
lines_arr.each_cons(2) do |line, next_line|
|
lines_arr.each_cons(2) do |line, next_line|
|
||||||
|
@ -80,7 +39,7 @@ module Gitlab
|
||||||
else
|
else
|
||||||
type = identification_type(line)
|
type = identification_type(line)
|
||||||
line_code = generate_line_code(new_path, line_new, line_old)
|
line_code = generate_line_code(new_path, line_new, line_old)
|
||||||
yield(full_line, type, line_code, line_new, line_old, next_line)
|
yield(full_line, type, line_code, line_new, line_old, raw_line, next_line)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue