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