<%= 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 %>