class Rouge::Lexer

def lookup_fancy(str, code=nil, default_options={})

Please note: the lexer class might be nil!

modify or provide additional options to the lexer.
lexer, returns a pair of [lexer_class, options], so that you can
Same as ::find_fancy, except instead of returning an instantiated
def lookup_fancy(str, code=nil, default_options={})
  if str && !str.include?('?') && str != 'guess'
    lexer_class = find(str)
    return [lexer_class, default_options]
  end
  name, opts = str ? str.split('?', 2) : [nil, '']
  # parse the options hash from a cgi-style string
  opts = CGI.parse(opts || '').map do |k, vals|
    val = case vals.size
    when 0 then true
    when 1 then vals[0]
    else vals
    end
    [ k.to_s, val ]
  end
  opts = default_options.merge(Hash[opts])
  lexer_class = case name
  when 'guess', nil
    self.guess(:source => code, :mimetype => opts['mimetype'])
  when String
    self.find(name)
  end
  [lexer_class, opts]
end