Skip to content
Snippets Groups Projects
Commit 0e992a3b authored by Douwe Maan's avatar Douwe Maan
Browse files

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

parent 577f2fb4
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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]
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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)
 
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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 << {
Loading
Loading
Loading
Loading
@@ -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)
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment