Reworking most heuristics to only return one match

This commit is contained in:
Arfon Smith
2014-11-06 13:26:40 -06:00
parent e7b670c5de
commit 9107d3c243

View File

@@ -44,22 +44,31 @@ module Linguist
# Returns an array of Languages or [] # Returns an array of Languages or []
def self.disambiguate_c(data, languages) def self.disambiguate_c(data, languages)
matches = [] matches = []
matches << Language["Objective-C"] if data.include?("@interface") if data.include?("@interface")
matches << Language["C++"] if data.include?("#include <cstdint>") matches << Language["Objective-C"]
elsif data.include?("#include <cstdint>")
matches << Language["C++"]
end
matches matches
end end
def self.disambiguate_pl(data, languages) def self.disambiguate_pl(data, languages)
matches = [] matches = []
matches << Language["Prolog"] if data.include?(":-") if data.include?("use strict")
matches << Language["Perl"] if data.include?("use strict") matches << Language["Perl"]
elsif data.include?(":-")
matches << Language["Prolog"]
end
matches matches
end end
def self.disambiguate_ecl(data, languages) def self.disambiguate_ecl(data, languages)
matches = [] matches = []
matches << Language["Prolog"] if data.include?(":-") if data.include?(":-")
matches << Language["ECL"] if data.include?(":=") matches << Language["Prolog"]
elsif data.include?(":=")
matches << Language["ECL"]
end
matches matches
end end
@@ -85,8 +94,11 @@ module Linguist
def self.disambiguate_cl(data, languages) def self.disambiguate_cl(data, languages)
matches = [] matches = []
matches << Language["Common Lisp"] if data.include?("(defun ") if data.include?("(defun ")
matches << Language["OpenCL"] if /\/\* |\/\/ |^\}/.match(data) matches << Language["Common Lisp"]
elsif /\/\* |\/\/ |^\}/.match(data)
matches << Language["OpenCL"]
end
matches matches
end end