Heuristics for .cs files: Smalltalk and C#

This commit is contained in:
Paul Chaignon
2015-01-04 22:07:29 +01:00
parent ec01672f6c
commit 3c6218f20e
2 changed files with 15 additions and 0 deletions

View File

@@ -69,6 +69,14 @@ module Linguist
end
end
disambiguate "C#", "Smalltalk" do |data|
if /![\w\s]+methodsFor: /.match(data)
Language["Smalltalk"]
elsif /^\s*namespace\s*[\w\.]+\s*{/.match(data) || /^\s*using\s*[\w\.]+\s*;/.match(data)
Language["C#"]
end
end
disambiguate "Objective-C", "C++", "C" do |data|
if (/^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data))
Language["Objective-C"]

View File

@@ -133,6 +133,13 @@ class TestHeuristcs < Minitest::Test
})
end
def test_cs_by_heuristics
assert_heuristics({
"C#" => all_fixtures("C#", "*.cs"),
"Smalltalk" => all_fixtures("Smalltalk", "*.cs")
})
end
def assert_heuristics(hash)
candidates = hash.keys.map { |l| Language[l] }