Class: Collie::Linter::Rules::TrailingWhitespace
- Defined in:
- lib/collie/linter/rules/trailing_whitespace.rb
Overview
Detects trailing whitespace in source code
Defined Under Namespace
Classes: Node
Instance Method Summary collapse
Methods inherited from Base
#autocorrectable?, #initialize
Constructor Details
This class inherits a constructor from Collie::Linter::Base
Instance Method Details
#check(_ast, context = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/collie/linter/rules/trailing_whitespace.rb', line 16 def check(_ast, context = {}) source = context[:source] return @offenses unless source source.lines.each_with_index do |line, index| line_number = index + 1 next unless line.match?(/[ \t]+\n$|[ \t]+$/) location = AST::Location.new( file: context[:file] || "grammar", line: line_number, column: line.rstrip.length + 1 ) add_offense( Node.new(location), message: "Trailing whitespace detected", autocorrect: lambda { context[:source] = source.gsub(/[ \t]+\n/, "\n").gsub(/[ \t]+$/, "") } ) end @offenses end |