mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
@@ -8,18 +8,19 @@ print "# Pygments version %s" % __version__
|
|||||||
print "---"
|
print "---"
|
||||||
|
|
||||||
for name, aliases, filenames, mimetypes in get_all_lexers():
|
for name, aliases, filenames, mimetypes in get_all_lexers():
|
||||||
print "- !ruby/struct:Linguist::Lexer"
|
print "%s:" % name
|
||||||
|
|
||||||
print " name: %s" % name
|
if any(aliases):
|
||||||
|
print " aliases:"
|
||||||
|
for alias in aliases:
|
||||||
|
print " - '%s'" % alias
|
||||||
|
|
||||||
print " aliases: !ruby/array"
|
if any(filenames):
|
||||||
for alias in aliases:
|
print " filenames:"
|
||||||
print " - %s" % alias
|
for filename in filenames:
|
||||||
|
print " - '%s'" % filename
|
||||||
|
|
||||||
print " filenames: !ruby/array"
|
if any(mimetypes):
|
||||||
for filename in filenames:
|
print " mimetypes:"
|
||||||
print " - %s" % filename
|
for mimetype in mimetypes:
|
||||||
|
print " - '%s'" % mimetype
|
||||||
print " mimetypes: !ruby/array"
|
|
||||||
for mimetype in mimetypes:
|
|
||||||
print " - %s" % mimetype
|
|
||||||
|
|||||||
@@ -15,6 +15,46 @@ module Linguist
|
|||||||
@alias_index = {}
|
@alias_index = {}
|
||||||
@mimetypes_index = {}
|
@mimetypes_index = {}
|
||||||
|
|
||||||
|
# Internal: Create a new Lexer object
|
||||||
|
#
|
||||||
|
# name - Name of Lexer
|
||||||
|
# attrs - A hash of attributes
|
||||||
|
#
|
||||||
|
# Returns a Lexer object
|
||||||
|
def self.create(name, attrs)
|
||||||
|
name = name
|
||||||
|
aliases = attrs['aliases'] || []
|
||||||
|
filenames = attrs['filenames'] || []
|
||||||
|
mimetypes = attrs['mimetypes'] || []
|
||||||
|
|
||||||
|
@lexers << lexer = new(name, aliases, filenames, mimetypes)
|
||||||
|
|
||||||
|
# All Lexer names should be unique. Warn if there is a duplicate.
|
||||||
|
if @name_index.key?(lexer.name)
|
||||||
|
warn "Duplicate lexer name: #{lexer.name}"
|
||||||
|
end
|
||||||
|
|
||||||
|
@index[lexer.name] = @name_index[lexer.name] = lexer
|
||||||
|
|
||||||
|
lexer.aliases.each do |name|
|
||||||
|
# All Lexer aliases should be unique. Warn if there is a duplicate.
|
||||||
|
if @alias_index.key?(name)
|
||||||
|
warn "Duplicate alias: #{name}"
|
||||||
|
end
|
||||||
|
|
||||||
|
@index[name] = @alias_index[name] = lexer
|
||||||
|
end
|
||||||
|
|
||||||
|
lexer.mimetypes.each do |type|
|
||||||
|
# All Lexer mimetypes should be unique. Warn if there is a duplicate.
|
||||||
|
if @mimetypes_index.key?(name)
|
||||||
|
warn "Duplicate mimetype: #{name}"
|
||||||
|
end
|
||||||
|
|
||||||
|
@mimetypes_index[type] = lexer
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Internal: Test if system has Pygments
|
# Internal: Test if system has Pygments
|
||||||
#
|
#
|
||||||
# Only used in tests to disable tests that require Pygments.
|
# Only used in tests to disable tests that require Pygments.
|
||||||
@@ -130,33 +170,8 @@ module Linguist
|
|||||||
#
|
#
|
||||||
# `bin/pygments-lexers` dumps a YAML list of all the available
|
# `bin/pygments-lexers` dumps a YAML list of all the available
|
||||||
# Pygments lexers.
|
# Pygments lexers.
|
||||||
YAML.load_file(File.expand_path("../lexers.yml", __FILE__)).each do |lexer|
|
YAML.load_file(File.expand_path("../lexers.yml", __FILE__)).each do |name, attrs|
|
||||||
@lexers << lexer
|
Lexer.create(name, attrs)
|
||||||
|
|
||||||
# All Lexer names should be unique. Warn if there is a duplicate.
|
|
||||||
if @name_index.key?(lexer.name)
|
|
||||||
warn "Duplicate lexer name: #{lexer.name}"
|
|
||||||
end
|
|
||||||
|
|
||||||
@index[lexer.name] = @name_index[lexer.name] = lexer
|
|
||||||
|
|
||||||
lexer.aliases.each do |name|
|
|
||||||
# All Lexer aliases should be unique. Warn if there is a duplicate.
|
|
||||||
if @alias_index.key?(name)
|
|
||||||
warn "Duplicate alias: #{name}"
|
|
||||||
end
|
|
||||||
|
|
||||||
@index[name] = @alias_index[name] = lexer
|
|
||||||
end
|
|
||||||
|
|
||||||
lexer.mimetypes.each do |type|
|
|
||||||
# All Lexer mimetypes should be unique. Warn if there is a duplicate.
|
|
||||||
if @mimetypes_index.key?(name)
|
|
||||||
warn "Duplicate mimetype: #{name}"
|
|
||||||
end
|
|
||||||
|
|
||||||
@mimetypes_index[type] = lexer
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user