class Lookbook::Formatter

def initialize(opts = {})

def initialize(opts = {})
  @opts = opts
  @highlight_lines = opts[:highlight_lines].to_a || []
  @start_line = opts[:start_line] || 0
end

def stream(tokens, &block)

def stream(tokens, &block)
  token_lines(tokens).each_with_index do |line_tokens, i|
    yield "<div class='line #{"highlighted-line" if @highlight_lines.include?(i + 1)}'>"
    yield "<span class='line-number'>#{@start_line + i}</span>" if @opts[:line_numbers]
    yield "<span class='line-content'>"
    line_tokens.each do |token, value|
      yield span(token, value)
    end
    yield "</span>"
    yield "</div>"
  end
end