Sha256: 59fad3af85e53c52240e595644805ab0b653ab3ac57e55a8e90dfddf53dd843f
Contents?: true
Size: 1.25 KB
Versions: 5
Compression:
Stored size: 1.25 KB
Contents
# encoding: utf-8 module RuboCop module Cop module Style # This cops checks for indentation of the first non-blank non-comment # line in a file. class InitialIndentation < Cop MSG = 'Indentation of first line in file detected.' def investigate(processed_source) first_token = processed_source.tokens.find do |t| !t.text.start_with?('#') end return unless first_token return if first_token.pos.column == 0 with_space = range_with_surrounding_space(first_token.pos, :left, nil, !:with_newline) # If the file starts with a byte order mark (BOM), the column can be # non-zero, but then we find out here if there's no space to the left # of the first token. return if with_space == first_token.pos space = Parser::Source::Range.new(processed_source.buffer, with_space.begin_pos, first_token.pos.begin_pos) add_offense(space, first_token.pos) end def autocorrect(range) ->(corrector) { corrector.remove(range) } end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems