Adding Charity and heuristic for xBase .ch files

This commit is contained in:
Arfon Smith 2015-07-21 14:59:47 +01:00
Родитель aef19d72f9
Коммит 6b747f7d65
4 изменённых файлов: 36 добавлений и 11 удалений

Просмотреть файл

@ -333,5 +333,11 @@ module Linguist
Language["GAS"]
end
end
disambiguate "xBase", "Charity" do |data|
if /^\s*#\s*(if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b/i.match(data)
Language["xBase"]
end
end
end
end

Просмотреть файл

@ -501,6 +501,13 @@ Chapel:
- .chpl
ace_mode: text
Charity:
type: programming
extensions:
- .ch
tm_scope: none
ace_mode: text
ChucK:
type: programming
extensions:

Просмотреть файл

@ -0,0 +1,6 @@
%
% Some very badly written Charity
%
data LA(A) -> D = ss: A -> D
| ff: -> D.

Просмотреть файл

@ -22,6 +22,17 @@ class TestHeuristcs < Minitest::Test
assert_equal [], results
end
def assert_heuristics(hash)
candidates = hash.keys.map { |l| Language[l] }
hash.each do |language, blobs|
Array(blobs).each do |blob|
result = Heuristics.call(file_blob(blob), candidates)
assert_equal [Language[language]], result, "Failed for #{blob}"
end
end
end
# Candidate languages = ["C++", "Objective-C"]
def test_obj_c_by_heuristics
# Only calling out '.h' filenames as these are the ones causing issues
@ -147,17 +158,6 @@ class TestHeuristcs < Minitest::Test
})
end
def assert_heuristics(hash)
candidates = hash.keys.map { |l| Language[l] }
hash.each do |language, blobs|
Array(blobs).each do |blob|
result = Heuristics.call(file_blob(blob), candidates)
assert_equal [Language[language]], result, "Failed for #{blob}"
end
end
end
def test_ls_by_heuristics
assert_heuristics({
"LiveScript" => "LiveScript/hello.ls",
@ -171,4 +171,10 @@ class TestHeuristcs < Minitest::Test
"XML" => all_fixtures("XML", "*.ts")
})
end
def test_ch_by_heuristics
assert_heuristics({
"xBase" => all_fixtures("xBase")
})
end
end