|
<%= CGI::escapeHTML(file.gsub(@word_search.project.path + "/", "")) %>
|
<% line_index = 0 %>
<% last_matching_line_num = nil %>
<% last_displayed_line_num = -1 %>
<% hits.each_with_index do |hit, i| %>
<% next_hit = hits[i + 1] %>
<% next_hit_line_num = next_hit ? next_hit.line_num : 100_000_000 %>
<% display_line_num = hit.line_num + 1%>
<% if @word_search.context? and last_matching_line_num and (display_line_num - last_matching_line_num) > (@word_search.context_size * 2) %>
. . . |
|
<% end %>
<% hit.pre_context.each_with_index do |context_line, i| %>
<% this_line_num = display_line_num - @word_search.context_size + i %>
<% unless this_line_num <= last_displayed_line_num %>
<% line_index += 1 %>
<%= this_line_num %> |
<% text = CGI.escapeHTML(context_line).gsub(@word_search.regex) { "#{$&}" } %>
<%= text.chomp + " " %> |
<% end %>
<% end %>
<% line_index += 1 %>
<% last_displayed_line_num = display_line_num %>
<%= display_line_num %> |
<% text = CGI.escapeHTML(hit.line).gsub(@word_search.regex) { "#{$&}" } %>
<%= text.chomp + " " %> |
<% hit.post_context.each_with_index do |context_line, i| %>
<% this_line_num = display_line_num + i + 1%>
<% unless this_line_num >= next_hit_line_num %>
<% last_displayed_line_num = this_line_num %>
<% line_index += 1 %>
<%= this_line_num %> |
<% text = CGI.escapeHTML(context_line).gsub(@word_search.regex) { "#{$&}" } %>
<%= text.chomp + " " %> |
<% end %>
<% end %>
<% last_matching_line_num = display_line_num %>
<% end %>