in lib/pygments/lexer.rb [14:50]
def self.create(hash)
lexer = new(hash[:name], hash[:aliases], hash[:filenames], hash[:mimetypes])
@lexers << lexer
@index[lexer.name.downcase] = @name_index[lexer.name] = lexer
lexer.aliases.each do |name|
@alias_index[name] = lexer
@index[name.downcase] ||= lexer
end
lexer.filenames.each do |filename|
extnames = []
extname = File.extname(filename)
if m = extname.match(/\[(.+)\]/)
m[1].scan(/./).each do |s|
extnames << extname.sub(m[0], s)
end
elsif extname != ""
extnames << extname
end
extnames.each do |extname|
@extname_index[extname] = lexer
@index[extname.downcase.sub(/^\./, "")] ||= lexer
end
end
lexer.mimetypes.each do |type|
@mimetypes_index[type] = lexer
end
lexer
end