mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add test for catching missing ace_mode values
This commit is contained in:
@@ -371,4 +371,19 @@ class TestLanguage < Test::Unit::TestCase
|
|||||||
message << missing.map { |language| sprintf("%-#{width}s %s", language.name, language.tm_scope) }.sort.join("\n")
|
message << missing.map { |language| sprintf("%-#{width}s %s", language.name, language.tm_scope) }.sort.join("\n")
|
||||||
assert missing.empty?, message
|
assert missing.empty?, message
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_all_languages_have_a_valid_ace_mode
|
||||||
|
ace_github_modes = JSON.parse `curl https://api.github.com/repos/ajaxorg/ace/contents/lib/ace/mode`
|
||||||
|
existing_ace_modes = ace_github_modes.map do |ace_github_mode|
|
||||||
|
File.basename(ace_github_mode["name"], ".js") if ace_github_mode["name"] !~ /_highlight_rules|_test|_worker/
|
||||||
|
end.compact.uniq.sort
|
||||||
|
|
||||||
|
missing = Language.all.reject { |language| language.ace_mode == "none" || existing_ace_modes.include?(language.ace_mode) }
|
||||||
|
message = "The following languages do not have an Ace mode listed in languages.yml. Please add an Ace mode for all new languages.\n"
|
||||||
|
message << "If no Ace mode exists for a language, mark the language with `ace_mode: none` in lib/linguist/languages.yml.\n"
|
||||||
|
|
||||||
|
width = missing.map { |language| language.name.length }.max
|
||||||
|
message << missing.map { |language| sprintf("%-#{width}s %s", language.name, language.ace_mode) }.sort.join("\n")
|
||||||
|
assert missing.empty?, message
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user