From 79f20e805731cdeae67757899355827fd82ea652 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 7 Dec 2016 06:50:33 +0100 Subject: [PATCH] Heuristic rule for TeX .cls files (#3360) --- lib/linguist/heuristics.rb | 6 ++++++ test/test_heuristics.rb | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 7216003f..b98465dd 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -110,6 +110,12 @@ module Linguist end end + disambiguate ".cls" do |data| + if /\\\w+{/.match(data) + Language["TeX"] + end + end + disambiguate ".cs" do |data| if /![\w\s]+methodsFor: /.match(data) Language["Smalltalk"] diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 921cc021..4fe3d38a 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -73,6 +73,15 @@ class TestHeuristcs < Minitest::Test }) end + def test_cls_by_heuristics + assert_heuristics({ + "TeX" => all_fixtures("TeX", "*.cls"), + nil => all_fixtures("Apex", "*.cls"), + nil => all_fixtures("OpenEdge ABL", "*.cls"), + nil => all_fixtures("Visual Basic", "*.cls"), + }) + end + def test_cs_by_heuristics assert_heuristics({ "C#" => all_fixtures("C#", "*.cs"),