Sha256: 624d0fa643491febe52c830eb39bc91eaa0b195795f136e048dc947a003aaac3

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

# encoding: utf-8

module Rubocop
  module Formatter
    # This formatter formats report data in clang style.
    # The precise location of the problem is shown together with the
    # relevant source code.
    class ClangStyleFormatter < SimpleTextFormatter
      def report_file(file, offences)
        offences.each do |o|
          output.printf("%s:%d:%d: %s: %s\n",
                        smart_path(file).color(:cyan), o.line, o.real_column,
                        colored_severity_code(o), message(o))

          source_line = o.location.source_line

          unless source_line.blank?
            output.puts(source_line)
            output.puts(highlight_line(o.location))
          end
        end
      end

      def highlight_line(location)
        column_length = if location.begin.line == location.end.line
                          location.column_range.count
                        else
                          location.source_line.length - location.column
                        end

        ' ' * location.column + '^' * column_length
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rubocop-0.16.0 lib/rubocop/formatter/clang_style_formatter.rb
rubocop-0.15.0 lib/rubocop/formatter/clang_style_formatter.rb
rubocop-0.14.1 lib/rubocop/formatter/clang_style_formatter.rb