def render
if @location.line == @location.last_line || @location.is?("\n")
["#{@location}: #{@level}: #{message}"] + render_line(@location)
else
first_line = first_line_only(@location)
last_line = last_line_only(@location)
num_lines = (@location.last_line - @location.line) + 1
buffer = @location.source_buffer
last_lineno, last_column = buffer.decompose_position(@location.end_pos)
["#{@location}-#{last_lineno}:#{last_column}: #{@level}: #{message}"] +
render_line(first_line, num_lines > 2, false) +
render_line(last_line, false, true)
end
end