mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 20:38:47 +00:00
Assert CodeMirror modes and mime types are valid against source
This commit is contained in:
@@ -302,7 +302,7 @@ module Linguist
|
|||||||
|
|
||||||
@ace_mode = attributes[:ace_mode]
|
@ace_mode = attributes[:ace_mode]
|
||||||
@codemirror_mode = attributes[:codemirror_mode]
|
@codemirror_mode = attributes[:codemirror_mode]
|
||||||
@codemirror_mime_mode = attributes[:codemirror_mime_mode]
|
@codemirror_mime_type = attributes[:codemirror_mime_type]
|
||||||
@wrap = attributes[:wrap] || false
|
@wrap = attributes[:wrap] || false
|
||||||
|
|
||||||
# Set legacy search term
|
# Set legacy search term
|
||||||
@@ -423,7 +423,7 @@ module Linguist
|
|||||||
# # => "text/x-csrc"
|
# # => "text/x-csrc"
|
||||||
#
|
#
|
||||||
# Returns a String name or nil
|
# Returns a String name or nil
|
||||||
attr_reader :codemirror_mime_mode
|
attr_reader :codemirror_mime_type
|
||||||
|
|
||||||
# Public: Should language lines be wrapped
|
# Public: Should language lines be wrapped
|
||||||
#
|
#
|
||||||
@@ -602,7 +602,7 @@ module Linguist
|
|||||||
:tm_scope => options['tm_scope'],
|
:tm_scope => options['tm_scope'],
|
||||||
:ace_mode => options['ace_mode'],
|
:ace_mode => options['ace_mode'],
|
||||||
:codemirror_mode => options['codemirror_mode'],
|
:codemirror_mode => options['codemirror_mode'],
|
||||||
:codemirror_mime_mode => options['codemirror_mime_mode'],
|
:codemirror_mime_type => options['codemirror_mime_type'],
|
||||||
:wrap => options['wrap'],
|
:wrap => options['wrap'],
|
||||||
:group_name => options['group'],
|
:group_name => options['group'],
|
||||||
:searchable => options.fetch('searchable', true),
|
:searchable => options.fetch('searchable', true),
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -126,7 +126,7 @@ class TestGrammars < Minitest::Test
|
|||||||
private
|
private
|
||||||
|
|
||||||
def submodule_paths
|
def submodule_paths
|
||||||
@submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last }
|
@submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last }.reject { |path| path =~ /CodeMirror/ }
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns a hash of submodules in the form of submodule_path => license
|
# Returns a hash of submodules in the form of submodule_path => license
|
||||||
|
|||||||
@@ -358,11 +358,11 @@ class TestLanguage < Minitest::Test
|
|||||||
assert_equal 'clike', Language['C++'].codemirror_mode
|
assert_equal 'clike', Language['C++'].codemirror_mode
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_codemirror_mime_mode
|
def test_codemirror_mime_type
|
||||||
assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_mode
|
assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_type
|
||||||
assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_mode
|
assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_type
|
||||||
assert_equal 'text/x-csrc', Language['C'].codemirror_mime_mode
|
assert_equal 'text/x-csrc', Language['C'].codemirror_mime_type
|
||||||
assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_mode
|
assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_type
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_wrap
|
def test_wrap
|
||||||
@@ -454,9 +454,9 @@ class TestLanguage < Minitest::Test
|
|||||||
|
|
||||||
def test_codemirror_modes_present
|
def test_codemirror_modes_present
|
||||||
Language.all.each do |language|
|
Language.all.each do |language|
|
||||||
if language.codemirror_mode || language.codemirror_mime_mode
|
if language.codemirror_mode || language.codemirror_mime_type
|
||||||
assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode"
|
assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode"
|
||||||
assert language.codemirror_mime_mode, "#{language.inspect} missing CodeMirror MIME mode"
|
assert language.codemirror_mime_type, "#{language.inspect} missing CodeMirror MIME mode"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -472,17 +472,17 @@ class TestLanguage < Minitest::Test
|
|||||||
def test_codemirror_mode_and_mime_defined_by_meta_mapping
|
def test_codemirror_mode_and_mime_defined_by_meta_mapping
|
||||||
meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__))
|
meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__))
|
||||||
Language.all.each do |language|
|
Language.all.each do |language|
|
||||||
next unless language.codemirror_mode && language.codemirror_mime_mode
|
next unless language.codemirror_mode && language.codemirror_mime_type
|
||||||
assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_mode)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_mode} not defined under #{language.codemirror_mode}"
|
assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_type)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_type} not defined under #{language.codemirror_mode}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_codemirror_mime_declared_in_mode_file
|
def test_codemirror_mime_declared_in_mode_file
|
||||||
Language.all.each do |language|
|
Language.all.each do |language|
|
||||||
next unless language.codemirror_mode && language.codemirror_mime_mode
|
next unless language.codemirror_mode && language.codemirror_mime_type
|
||||||
filename = File.expand_path("../../vendor/CodeMirror/mode/#{language.codemirror_mode}/#{language.codemirror_mode}.js", __FILE__)
|
filename = File.expand_path("../../vendor/CodeMirror/mode/#{language.codemirror_mode}/#{language.codemirror_mode}.js", __FILE__)
|
||||||
assert File.exist?(filename), "#{filename} does not exist"
|
assert File.exist?(filename), "#{filename} does not exist"
|
||||||
assert File.read(filename).match(language.codemirror_mime_mode), "#{language.inspect}: #{language.codemirror_mime_mode} not defined in #{filename}"
|
assert File.read(filename).match(language.codemirror_mime_type), "#{language.inspect}: #{language.codemirror_mime_type} not defined in #{filename}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user