diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index b82a5de4..bc9a0f53 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -178,11 +178,13 @@ module Linguist end end - disambiguate "M", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| + disambiguate "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| if ObjectiveCRegex.match(data) Language["Objective-C"] elsif data.include?(":- module") Language["Mercury"] + elsif /^: /.match(data) + Language["MUF"] elsif /^\s*;/.match(data) Language["M"] elsif /^\s*\(\*/.match(data) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 413683e5..2f96958c 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1745,6 +1745,15 @@ MTML: tm_scope: text.html.basic ace_mode: html +MUF: + type: programming + group: Forth + extensions: + - .muf + - .m + tm_scope: none + ace_mode: forth + Makefile: type: programming aliases: diff --git a/test/test_language.rb b/test/test_language.rb index 31be9a82..f3847a77 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -188,7 +188,7 @@ class TestLanguage < Minitest::Test assert_equal [], Language.find_by_extension('foo.rb') assert_equal [Language['Ruby']], Language.find_by_extension('rb') assert_equal [Language['Ruby']], Language.find_by_extension('.rb') - assert_equal [Language['M'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') + assert_equal [Language['M'], Language['MUF'], Language['Mathematica'], Language['Matlab'], Language['Mercury'], Language['Objective-C']], Language.find_by_extension('.m') end def test_find_all_by_extension