def foldable_comment_block_ranges
      return [] unless synchronized?
      result = []
      grouped = []
      # @param cmnt [Parser::Source::Comment]
      @comments.each do |cmnt|
        if cmnt.document?
          result.push Range.from_expr(cmnt.loc.expression)
        elsif code.lines[cmnt.loc.expression.line].strip.start_with?('#')
          if grouped.empty? || cmnt.loc.expression.line == grouped.last.loc.expression.line + 1
            grouped.push cmnt
          else
            result.push Range.from_to(grouped.first.loc.expression.line, 0, grouped.last.loc.expression.line, 0) unless grouped.length < 3
            grouped = [cmnt]
          end
        else
          unless grouped.length < 3
            result.push Range.from_to(grouped.first.loc.expression.line, 0, grouped.last.loc.expression.line, 0)
          end
          grouped.clear
        end
      end
      result.push Range.from_to(grouped.first.loc.expression.line, 0, grouped.last.loc.expression.line, 0) unless grouped.length < 3
      result
    end
def foldable_comment_block_ranges
      return [] unless synchronized?
      result = []
      grouped = []
      # @param cmnt [Parser::Source::Comment]
      @comments.each do |cmnt|
        if cmnt.document?
          result.push Range.from_expr(cmnt.loc.expression)
        elsif code.lines[cmnt.loc.expression.line].strip.start_with?('#')
          if grouped.empty? || cmnt.loc.expression.line == grouped.last.loc.expression.line + 1
            grouped.push cmnt
          else
            result.push Range.from_to(grouped.first.loc.expression.line, 0, grouped.last.loc.expression.line, 0) unless grouped.length < 3
            grouped = [cmnt]
          end
        else
          unless grouped.length < 3
            result.push Range.from_to(grouped.first.loc.expression.line, 0, grouped.last.loc.expression.line, 0)
          end
          grouped.clear
        end
      end
      result.push Range.from_to(grouped.first.loc.expression.line, 0, grouped.last.loc.expression.line, 0) unless grouped.length < 3
      result
    end
Get an array of foldable comment block ranges. Blocks are excluded if
 they are less than 3 lines long.

 @return [Array<Range>]