# class SyntaxSuggest::UnvisitedLines

Tracks which lines various code blocks have expanded to and which are still unexplored

### Public Class Methods

new (code_lines:)
Source

    # File lib/syntax_suggest/unvisited_lines.rb, line 7
    def initialize(code_lines:)
      @unvisited = code_lines.sort_by(&:indent_index)
      @visited_lines = {}
      @visited_lines.compare_by_identity
    end

### Public Instance Methods

empty? ()
Source

    # File lib/syntax_suggest/unvisited_lines.rb, line 13
    def empty?
      @unvisited.empty?
    end

peek ()
Source

    # File lib/syntax_suggest/unvisited_lines.rb, line 17
    def peek
      @unvisited.last
    end

pop ()
Source

    # File lib/syntax_suggest/unvisited_lines.rb, line 21
    def pop
      @unvisited.pop
    end

visit_block (block)
Source

    # File lib/syntax_suggest/unvisited_lines.rb, line 25
    def visit_block(block)
      block.lines.each do |line|
        next if @visited_lines[line]
        @visited_lines[line] = true
      end

      while @visited_lines[@unvisited.last]
        @unvisited.pop
      end
    end