diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 544ce023..c9c685a4 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -160,11 +160,17 @@ module Linguist end end - disambiguate "M", "Matlab", "Mathematica", "Mercury", "Objective-C" do |data| - if (/^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data)) + disambiguate "M", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| + if /^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data) Language["Objective-C"] - - # TODO add matchers for "M", "Matlab", "Mathematica", "Mercury" + elsif data.include?(":- module") + Language["Mercury"] + elsif /^\s*;/.match(data) + Language["M"] + elsif /^\s*\(\*/.match(data) + Language["Mathematica"] + elsif /^\s*%/.match(data) + Language["Matlab"] end end