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 @@
- if left[:type] == 'match'
= render "projects/diffs/match_line_parallel", { line: left[:text],
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
%td.old_line{id: left[:line_code], class: "#{left[:type]}"}
= link_to raw(left[:number]), "##{left[:line_code]}", id: left[:line_code]
......
......@@ -15,6 +15,10 @@
- if type == "match"
= 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}
- elsif type == 'nonewline'
%td.old_line.diff-line-num
%td.new_line.diff-line-num
%td.line_content.matched= line.text
- else
%td.old_line
= link_to raw(type == "new" ? " " : line_old), "##{line_code}", id: line_code
......
......@@ -14,7 +14,7 @@ module Gitlab
def highlight
@diff_lines.each_with_index do |diff_line, i|
# 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)
......@@ -33,7 +33,7 @@ module Gitlab
def highlight_line(diff_line, index)
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
when 'new', nil
......
......@@ -62,7 +62,7 @@ module Gitlab
}
}
skip_next = true
when 'old', nil
when 'old', 'nonewline', nil
# Left side has text removed, right side doesn't have any change
# No next line code, no new line number, no new line text
lines << {
......
......@@ -26,6 +26,10 @@ module Gitlab
lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new)
line_obj_index += 1
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
type = identification_type(line)
lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new)
......@@ -33,10 +37,13 @@ module Gitlab
end
if line[0] == "+"
case line[0]
when "+"
line_new += 1
elsif line[0] == "-"
when "-"
line_old += 1
when "\\"
# No increment
else
line_new += 1
line_old += 1
......@@ -59,9 +66,10 @@ module Gitlab
end
def identification_type(line)
if line[0] == "+"
case line[0]
when "+"
"new"
elsif line[0] == "-"
when "-"
"old"
else
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