Adding Charity and heuristic for xBase .ch files
This commit is contained in:
Родитель
aef19d72f9
Коммит
6b747f7d65
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче