Skip to content
Snippets Groups Projects
Commit a00967dd authored by Charlie Somerville's avatar Charlie Somerville
Browse files

Merge pull request #728 from github/fix-dup-primary-extension-for-mumps

Ensure no two languages have the same primary extension
parents 80321272 599e1e2a
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -15,8 +15,10 @@ module Linguist
@index = {}
@name_index = {}
@alias_index = {}
@extension_index = Hash.new { |h,k| h[k] = [] }
@filename_index = Hash.new { |h,k| h[k] = [] }
@extension_index = Hash.new { |h,k| h[k] = [] }
@filename_index = Hash.new { |h,k| h[k] = [] }
@primary_extension_index = {}
 
# Valid Languages types
TYPES = [:data, :markup, :programming]
Loading
Loading
@@ -63,6 +65,12 @@ module Linguist
@extension_index[extension] << language
end
 
if @primary_extension_index.key?(language.primary_extension)
raise ArgumentError, "Duplicate primary extension: #{language.primary_extension}"
end
@primary_extension_index[language.primary_extension] = language
language.filenames.each do |filename|
@filename_index[filename] << language
end
Loading
Loading
@@ -148,7 +156,10 @@ module Linguist
# Returns all matching Languages or [] if none were found.
def self.find_by_filename(filename)
basename, extname = File.basename(filename), File.extname(filename)
@filename_index[basename] + @extension_index[extname]
langs = [@primary_extension_index[extname]] +
@filename_index[basename] +
@extension_index[extname]
langs.compact.uniq
end
 
# Public: Look up Language by its name or lexer.
Loading
Loading
Loading
Loading
@@ -807,7 +807,9 @@ M:
lexer: Common Lisp
aliases:
- mumps
primary_extension: .m
primary_extension: .mumps
extensions:
- .m
 
Makefile:
aliases:
Loading
Loading
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment