From 855f1a1f865675ae4f984f1cfbb28a775732f3be Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 14:47:49 -0700 Subject: [PATCH] Validate CodeMirror modes --- .gitmodules | 3 +++ lib/linguist/language.rb | 3 +++ lib/linguist/languages.yml | 12 ++++++------ test/test_language.rb | 8 ++++++++ vendor/CodeMirror | 1 + 5 files changed, 21 insertions(+), 6 deletions(-) create mode 160000 vendor/CodeMirror diff --git a/.gitmodules b/.gitmodules index cbf7a602..832b6423 100644 --- a/.gitmodules +++ b/.gitmodules @@ -791,3 +791,6 @@ [submodule "vendor/grammars/language-babel"] path = vendor/grammars/language-babel url = https://github.com/github-linguist/language-babel +[submodule "vendor/CodeMirror"] + path = vendor/CodeMirror + url = https://github.com/codemirror/CodeMirror diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index ea88b87f..e4d3cf71 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -402,6 +402,9 @@ module Linguist # Public: Get CodeMirror mode # + # Maps to a directory in the `mode/` source code. + # https://github.com/codemirror/CodeMirror/tree/master/mode + # # Examples # # # => "nil" diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9562efb3..2b816a92 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1083,7 +1083,7 @@ Ecere Projects: - ".epj" tm_scope: source.json ace_mode: json - codemirror_mode: json + codemirror_mode: javascript codemirror_mime_mode: application/json language_id: 98 Eiffel: @@ -1632,7 +1632,7 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html - codemirror_mode: html + codemirror_mode: htmlembedded codemirror_mime_mode: text/html color: "#e44b23" aliases: @@ -2118,7 +2118,7 @@ KiCad: Kit: type: markup ace_mode: html - codemirror_mode: html + codemirror_mode: htmlembedded codemirror_mime_mode: text/html extensions: - ".kit" @@ -2133,7 +2133,7 @@ Kotlin: - ".kts" tm_scope: source.Kotlin ace_mode: text - codemirror_mode: kotlin + codemirror_mode: clike codemirror_mime_mode: text/x-kotlin language_id: 189 LFE: @@ -2419,7 +2419,7 @@ MTML: - ".mtml" tm_scope: text.html.basic ace_mode: html - codemirror_mode: html + codemirror_mode: htmlembedded codemirror_mime_mode: text/html language_id: 218 MUF: @@ -4262,7 +4262,7 @@ TypeScript: - ".tsx" tm_scope: source.ts ace_mode: typescript - codemirror_mode: typescript + codemirror_mode: javascript codemirror_mime_mode: text/x-typescript language_id: 378 Unified Parallel C: diff --git a/test/test_language.rb b/test/test_language.rb index eda2db2a..0d711d36 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -452,6 +452,14 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_valid_codemirror_mode + Language.all.each do |language| + if mode = language.codemirror_mode + assert File.exist?(File.expand_path("../../vendor/CodeMirror/mode/#{mode}", __FILE__)), "#{mode} isn't a valid CodeMirror mode" + end + end + end + def test_all_popular_languages_exist popular = YAML.load(File.read(File.expand_path("../../lib/linguist/popular.yml", __FILE__))) diff --git a/vendor/CodeMirror b/vendor/CodeMirror new file mode 160000 index 00000000..562e8eff --- /dev/null +++ b/vendor/CodeMirror @@ -0,0 +1 @@ +Subproject commit 562e8eff5b0916d3b63fc59eda9540f8f455c6ed