mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Fix heuristics after rename (#3556)
* fix Roff detection in heuristics This affects extensions .l, .ms, .n and .rno. Groff was renamed to Roff in 673aeb32b9851cc58429c4b598c876292aaf70c7, but heuristic was not updated. * replace FORTRAN with Fortran It was already renamed in most places since 4fd8fce08574809aa58e9771e2a9da5d135127be heuristics.rb was missing though. * fix caseness of GCC Machine Description
This commit is contained in:
committed by
Colin Seymour
parent
eb38c8dcf8
commit
c0e242358a
@@ -165,7 +165,7 @@ module Linguist
|
|||||||
elsif data.include?("flowop")
|
elsif data.include?("flowop")
|
||||||
Language["Filebench WML"]
|
Language["Filebench WML"]
|
||||||
elsif fortran_rx.match(data)
|
elsif fortran_rx.match(data)
|
||||||
Language["FORTRAN"]
|
Language["Fortran"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ module Linguist
|
|||||||
if /^: /.match(data)
|
if /^: /.match(data)
|
||||||
Language["Forth"]
|
Language["Forth"]
|
||||||
elsif fortran_rx.match(data)
|
elsif fortran_rx.match(data)
|
||||||
Language["FORTRAN"]
|
Language["Fortran"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -226,7 +226,7 @@ module Linguist
|
|||||||
elsif /^(%[%{}]xs|<.*>)/.match(data)
|
elsif /^(%[%{}]xs|<.*>)/.match(data)
|
||||||
Language["Lex"]
|
Language["Lex"]
|
||||||
elsif /^\.[a-z][a-z](\s|$)/i.match(data)
|
elsif /^\.[a-z][a-z](\s|$)/i.match(data)
|
||||||
Language["Groff"]
|
Language["Roff"]
|
||||||
elsif /^\((de|class|rel|code|data|must)\s/.match(data)
|
elsif /^\((de|class|rel|code|data|must)\s/.match(data)
|
||||||
Language["PicoLisp"]
|
Language["PicoLisp"]
|
||||||
end
|
end
|
||||||
@@ -270,7 +270,7 @@ module Linguist
|
|||||||
if /(^[-a-z0-9=#!\*\[|>])|<\//i.match(data) || data.empty?
|
if /(^[-a-z0-9=#!\*\[|>])|<\//i.match(data) || data.empty?
|
||||||
Language["Markdown"]
|
Language["Markdown"]
|
||||||
elsif /^(;;|\(define_)/.match(data)
|
elsif /^(;;|\(define_)/.match(data)
|
||||||
Language["GCC machine description"]
|
Language["GCC Machine Description"]
|
||||||
else
|
else
|
||||||
Language["Markdown"]
|
Language["Markdown"]
|
||||||
end
|
end
|
||||||
@@ -296,7 +296,7 @@ module Linguist
|
|||||||
|
|
||||||
disambiguate ".ms" do |data|
|
disambiguate ".ms" do |data|
|
||||||
if /^[.'][a-z][a-z](\s|$)/i.match(data)
|
if /^[.'][a-z][a-z](\s|$)/i.match(data)
|
||||||
Language["Groff"]
|
Language["Roff"]
|
||||||
elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z]/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
|
elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z]/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
|
||||||
Language["Unix Assembly"]
|
Language["Unix Assembly"]
|
||||||
else
|
else
|
||||||
@@ -306,7 +306,7 @@ module Linguist
|
|||||||
|
|
||||||
disambiguate ".n" do |data|
|
disambiguate ".n" do |data|
|
||||||
if /^[.']/.match(data)
|
if /^[.']/.match(data)
|
||||||
Language["Groff"]
|
Language["Roff"]
|
||||||
elsif /^(module|namespace|using)\s/.match(data)
|
elsif /^(module|namespace|using)\s/.match(data)
|
||||||
Language["Nemerle"]
|
Language["Nemerle"]
|
||||||
end
|
end
|
||||||
@@ -392,7 +392,7 @@ module Linguist
|
|||||||
if /^\.!|^\.end lit(?:eral)?\b/i.match(data)
|
if /^\.!|^\.end lit(?:eral)?\b/i.match(data)
|
||||||
Language["RUNOFF"]
|
Language["RUNOFF"]
|
||||||
elsif /^\.\\" /.match(data)
|
elsif /^\.\\" /.match(data)
|
||||||
Language["Groff"]
|
Language["Roff"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ class TestHeuristcs < Minitest::Test
|
|||||||
|
|
||||||
def test_f_by_heuristics
|
def test_f_by_heuristics
|
||||||
assert_heuristics({
|
assert_heuristics({
|
||||||
"FORTRAN" => all_fixtures("FORTRAN", "*.f") + all_fixtures("FORTRAN", "*.for"),
|
"Fortran" => all_fixtures("Fortran", "*.f") + all_fixtures("Fortran", "*.for"),
|
||||||
"Forth" => all_fixtures("Forth", "*.f") + all_fixtures("Forth", "*.for")
|
"Forth" => all_fixtures("Forth", "*.f") + all_fixtures("Forth", "*.for")
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
@@ -144,6 +144,15 @@ class TestHeuristcs < Minitest::Test
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_l_by_heuristics
|
||||||
|
assert_heuristics({
|
||||||
|
"Common Lisp" => all_fixtures("Common Lisp", "*.l"),
|
||||||
|
"Lex" => all_fixtures("Lex", "*.l"),
|
||||||
|
"Roff" => all_fixtures("Roff", "*.l"),
|
||||||
|
"PicoLisp" => all_fixtures("PicoLisp", "*.l")
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
def test_ls_by_heuristics
|
def test_ls_by_heuristics
|
||||||
assert_heuristics({
|
assert_heuristics({
|
||||||
"LiveScript" => all_fixtures("LiveScript", "*.ls"),
|
"LiveScript" => all_fixtures("LiveScript", "*.ls"),
|
||||||
@@ -174,17 +183,25 @@ class TestHeuristcs < Minitest::Test
|
|||||||
def test_md_by_heuristics
|
def test_md_by_heuristics
|
||||||
assert_heuristics({
|
assert_heuristics({
|
||||||
"Markdown" => all_fixtures("Markdown", "*.md"),
|
"Markdown" => all_fixtures("Markdown", "*.md"),
|
||||||
"GCC machine description" => all_fixtures("GCC machine description", "*.md")
|
"GCC Machine Description" => all_fixtures("GCC Machine Description", "*.md")
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_ms_by_heuristics
|
def test_ms_by_heuristics
|
||||||
assert_heuristics({
|
assert_heuristics({
|
||||||
|
"Roff" => all_fixtures("Roff", "*.ms"),
|
||||||
"Unix Assembly" => all_fixtures("Unix Assembly", "*.ms"),
|
"Unix Assembly" => all_fixtures("Unix Assembly", "*.ms"),
|
||||||
"MAXScript" => all_fixtures("MAXScript", "*.ms")
|
"MAXScript" => all_fixtures("MAXScript", "*.ms")
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_n_by_heuristics
|
||||||
|
assert_heuristics({
|
||||||
|
"Roff" => all_fixtures("Roff", "*.n"),
|
||||||
|
"Nemerle" => all_fixtures("Nemerle", "*.n")
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
# Candidate languages = ["C++", "Objective-C"]
|
# Candidate languages = ["C++", "Objective-C"]
|
||||||
def test_obj_c_by_heuristics
|
def test_obj_c_by_heuristics
|
||||||
# Only calling out '.h' filenames as these are the ones causing issues
|
# Only calling out '.h' filenames as these are the ones causing issues
|
||||||
@@ -237,6 +254,13 @@ class TestHeuristcs < Minitest::Test
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_rno_by_heuristics
|
||||||
|
assert_heuristics({
|
||||||
|
"RUNOFF" => all_fixtures("RUNOFF", "*.rno"),
|
||||||
|
"Roff" => all_fixtures("Roff", "*.rno")
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
# Candidate languages = ["Scala", "SuperCollider"]
|
# Candidate languages = ["Scala", "SuperCollider"]
|
||||||
def test_sc_supercollider_scala_by_heuristics
|
def test_sc_supercollider_scala_by_heuristics
|
||||||
assert_heuristics({
|
assert_heuristics({
|
||||||
|
|||||||
Reference in New Issue
Block a user