mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 12:28:47 +00:00
Merge pull request #728 from github/fix-dup-primary-extension-for-mumps
Ensure no two languages have the same primary extension
This commit is contained in:
@@ -15,8 +15,10 @@ module Linguist
|
|||||||
@index = {}
|
@index = {}
|
||||||
@name_index = {}
|
@name_index = {}
|
||||||
@alias_index = {}
|
@alias_index = {}
|
||||||
|
|
||||||
@extension_index = Hash.new { |h,k| h[k] = [] }
|
@extension_index = Hash.new { |h,k| h[k] = [] }
|
||||||
@filename_index = Hash.new { |h,k| h[k] = [] }
|
@filename_index = Hash.new { |h,k| h[k] = [] }
|
||||||
|
@primary_extension_index = {}
|
||||||
|
|
||||||
# Valid Languages types
|
# Valid Languages types
|
||||||
TYPES = [:data, :markup, :programming]
|
TYPES = [:data, :markup, :programming]
|
||||||
@@ -63,6 +65,12 @@ module Linguist
|
|||||||
@extension_index[extension] << language
|
@extension_index[extension] << language
|
||||||
end
|
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|
|
language.filenames.each do |filename|
|
||||||
@filename_index[filename] << language
|
@filename_index[filename] << language
|
||||||
end
|
end
|
||||||
@@ -148,7 +156,10 @@ module Linguist
|
|||||||
# Returns all matching Languages or [] if none were found.
|
# Returns all matching Languages or [] if none were found.
|
||||||
def self.find_by_filename(filename)
|
def self.find_by_filename(filename)
|
||||||
basename, extname = File.basename(filename), File.extname(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
|
end
|
||||||
|
|
||||||
# Public: Look up Language by its name or lexer.
|
# Public: Look up Language by its name or lexer.
|
||||||
|
|||||||
@@ -807,7 +807,9 @@ M:
|
|||||||
lexer: Common Lisp
|
lexer: Common Lisp
|
||||||
aliases:
|
aliases:
|
||||||
- mumps
|
- mumps
|
||||||
primary_extension: .m
|
primary_extension: .mumps
|
||||||
|
extensions:
|
||||||
|
- .m
|
||||||
|
|
||||||
Makefile:
|
Makefile:
|
||||||
aliases:
|
aliases:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user