mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Heuristics for .cs files: Smalltalk and C#
This commit is contained in:
		| @@ -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"] | ||||
|   | ||||
| @@ -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] } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user