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

This commit is contained in:
Douwe Maan
2016-01-20 19:20:13 +01:00
parent 577f2fb47a
commit 0e992a3b4e
5 changed files with 24 additions and 7 deletions
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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 << {
+12 -4
View File
@@ -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