Sha256: dc10aba8cda2416b55a591bb517c75677a0c2580897982006919fe51bf76cac0

Contents?: true

Size: 1.01 KB

Versions: 34

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module RuboCop
  module Cop
    # Help methods for working with nodes containing comments.
    module CommentsHelp
      include VisibilityHelp

      def source_range_with_comment(node)
        begin_pos = begin_pos_with_comment(node)
        end_pos = end_position_for(node)

        Parser::Source::Range.new(buffer, begin_pos, end_pos)
      end

      private

      def end_position_for(node)
        end_line = buffer.line_for_position(node.loc.expression.end_pos)
        buffer.line_range(end_line).end_pos
      end

      def begin_pos_with_comment(node)
        first_comment = processed_source.ast_with_comments[node].first

        if first_comment && (first_comment.loc.line < node.loc.line)
          start_line_position(first_comment)
        else
          start_line_position(node)
        end
      end

      def start_line_position(node)
        buffer.line_range(node.loc.line).begin_pos - 1
      end

      def buffer
        processed_source.buffer
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 6 rubygems

Version Path
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/rubocop-1.26.0/lib/rubocop/cop/mixin/comments_help.rb
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/rubocop-1.26.0/lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.26.1 lib/rubocop/cop/mixin/comments_help.rb
op_connect-0.1.2 vendor/bundle/ruby/3.1.0/gems/rubocop-1.26.0/lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.26.0 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.25.1 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.25.0 lib/rubocop/cop/mixin/comments_help.rb
phillipug-foodie-0.1.0 .vendor/ruby/3.0.0/gems/rubocop-1.24.0/lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.24.1 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.24.0 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.23.0 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.22.3 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.22.2 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.22.1 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.22.0 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.21.0 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.20.0 lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.19.1 lib/rubocop/cop/mixin/comments_help.rb
rails_mini_profiler-0.2.0 vendor/bundle/ruby/3.0.0/gems/rubocop-1.18.3/lib/rubocop/cop/mixin/comments_help.rb
rubocop-1.19.0 lib/rubocop/cop/mixin/comments_help.rb