class Parser::Diagnostic

def render_line(range, ellipsis=false, range_end=false)

Returns:
  • (Array) -
def render_line(range, ellipsis=false, range_end=false)
  source_line    = range.source_line
  highlight_line = ' ' * source_line.length
  @highlights.each do |highlight|
   line_range = range.source_buffer.line_range(range.line)
    if highlight = highlight.intersect(line_range)
      highlight_line[highlight.column_range] = '~' * highlight.size
    end
  end
  if range.is?("\n")
    highlight_line += "^"
  else
    if !range_end && range.size >= 1
      highlight_line[range.column_range] = '^' + '~' * (range.size - 1)
    else
      highlight_line[range.column_range] = '~' * range.size
    end
  end
  highlight_line += '...' if ellipsis
  [source_line, highlight_line].
    map { |line| "#{range.source_buffer.name}:#{range.line}: #{line}" }
end