Commit 0e992a3b authored by Douwe Maan's avatar Douwe Maan

Properly highlight lines around '\ No newline at end of file'

parent 577f2fb4
...@@ -8,6 +8,11 @@ ...@@ -8,6 +8,11 @@
- if left[:type] == 'match' - if left[:type] == 'match'
= render "projects/diffs/match_line_parallel", { line: left[:text], = render "projects/diffs/match_line_parallel", { line: left[:text],
line_old: left[:number], line_new: right[:number] } line_old: left[:number], line_new: right[:number] }
- elsif left[:type] == 'nonewline'
%td.old_line
%td.line_content.parallel.matched= left[:text]
%td.new_line
%td.line_content.parallel.matched= left[:text]
- else - else
%td.old_line{id: left[:line_code], class: "#{left[:type]}"} %td.old_line{id: left[:line_code], class: "#{left[:type]}"}
= link_to raw(left[:number]), "##{left[:line_code]}", id: left[:line_code] = link_to raw(left[:number]), "##{left[:line_code]}", id: left[:line_code]
......
...@@ -15,6 +15,10 @@ ...@@ -15,6 +15,10 @@
- if type == "match" - if type == "match"
= render "projects/diffs/match_line", {line: line.text, = render "projects/diffs/match_line", {line: line.text,
line_old: line_old, line_new: line.new_pos, bottom: false, new_file: diff_file.new_file} line_old: line_old, line_new: line.new_pos, bottom: false, new_file: diff_file.new_file}
- elsif type == 'nonewline'
%td.old_line.diff-line-num
%td.new_line.diff-line-num
%td.line_content.matched= line.text
- else - else
%td.old_line %td.old_line
= link_to raw(type == "new" ? " " : line_old), "##{line_code}", id: line_code = link_to raw(type == "new" ? " " : line_old), "##{line_code}", id: line_code
......
...@@ -14,7 +14,7 @@ module Gitlab ...@@ -14,7 +14,7 @@ module Gitlab
def highlight def highlight
@diff_lines.each_with_index do |diff_line, i| @diff_lines.each_with_index do |diff_line, i|
# ignore highlighting for "match" lines # ignore highlighting for "match" lines
next if diff_line.type == 'match' next if diff_line.type == 'match' || diff_line.type == 'nonewline'
rich_line = highlight_line(diff_line, i) rich_line = highlight_line(diff_line, i)
...@@ -33,7 +33,7 @@ module Gitlab ...@@ -33,7 +33,7 @@ module Gitlab
def highlight_line(diff_line, index) def highlight_line(diff_line, index)
return html_escape(diff_line.text) unless diff_file.diff_refs return html_escape(diff_line.text) unless diff_file.diff_refs
line_prefix = diff_line.text.match(/\A([+-])/) ? $1 : ' ' line_prefix = diff_line.text.match(/\A(.)/) ? $1 : ' '
case diff_line.type case diff_line.type
when 'new', nil when 'new', nil
......
...@@ -62,7 +62,7 @@ module Gitlab ...@@ -62,7 +62,7 @@ module Gitlab
} }
} }
skip_next = true skip_next = true
when 'old', nil when 'old', 'nonewline', nil
# Left side has text removed, right side doesn't have any change # Left side has text removed, right side doesn't have any change
# No next line code, no new line number, no new line text # No next line code, no new line number, no new line text
lines << { lines << {
......
...@@ -26,6 +26,10 @@ module Gitlab ...@@ -26,6 +26,10 @@ module Gitlab
lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new) lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new)
line_obj_index += 1 line_obj_index += 1
next next
elsif line[0] == '\\'
type = 'nonewline'
lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new)
line_obj_index += 1
else else
type = identification_type(line) type = identification_type(line)
lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new) lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new)
...@@ -33,10 +37,13 @@ module Gitlab ...@@ -33,10 +37,13 @@ module Gitlab
end end
if line[0] == "+" case line[0]
when "+"
line_new += 1 line_new += 1
elsif line[0] == "-" when "-"
line_old += 1 line_old += 1
when "\\"
# No increment
else else
line_new += 1 line_new += 1
line_old += 1 line_old += 1
...@@ -59,9 +66,10 @@ module Gitlab ...@@ -59,9 +66,10 @@ module Gitlab
end end
def identification_type(line) def identification_type(line)
if line[0] == "+" case line[0]
when "+"
"new" "new"
elsif line[0] == "-" when "-"
"old" "old"
else else
nil nil
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment