Validate codemirror modes

This commit is contained in:
Joshua Peek
2016-09-23 16:30:38 -07:00
parent 855f1a1f86
commit 3abe081560
2 changed files with 38 additions and 30 deletions

View File

@@ -234,8 +234,6 @@ Apollo Guidance Computer:
- ".agc" - ".agc"
tm_scope: source.agc tm_scope: source.agc
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 18 language_id: 18
AppleScript: AppleScript:
type: programming type: programming
@@ -298,8 +296,6 @@ Assembly:
- ".nasm" - ".nasm"
tm_scope: source.assembly tm_scope: source.assembly
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 24 language_id: 24
Augeas: Augeas:
type: programming type: programming
@@ -516,8 +512,6 @@ C-ObjDump:
- ".c-objdump" - ".c-objdump"
tm_scope: objdump.x86asm tm_scope: objdump.x86asm
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 44 language_id: 44
C2hs Haskell: C2hs Haskell:
type: programming type: programming
@@ -568,7 +562,7 @@ COLLADA:
tm_scope: text.xml tm_scope: text.xml
ace_mode: xml ace_mode: xml
codemirror_mode: xml codemirror_mode: xml
codemirror_mime_mode: text/x-xml codemirror_mime_mode: text/xml
language_id: 49 language_id: 49
CSS: CSS:
type: markup type: markup
@@ -799,8 +793,6 @@ Cpp-ObjDump:
aliases: aliases:
- c++-objdump - c++-objdump
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 70 language_id: 70
Creole: Creole:
type: prose type: prose
@@ -909,8 +901,6 @@ D-ObjDump:
- ".d-objdump" - ".d-objdump"
tm_scope: objdump.x86asm tm_scope: objdump.x86asm
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 81 language_id: 81
DIGITAL Command Language: DIGITAL Command Language:
type: programming type: programming
@@ -972,7 +962,7 @@ Dart:
- dart - dart
ace_mode: dart ace_mode: dart
codemirror_mode: dart codemirror_mode: dart
codemirror_mime_mode: text/x-dart codemirror_mime_mode: application/dart
language_id: 87 language_id: 87
Diff: Diff:
type: data type: data
@@ -1337,8 +1327,6 @@ GAS:
- ".ms" - ".ms"
tm_scope: source.assembly tm_scope: source.assembly
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 120 language_id: 120
GCC Machine Description: GCC Machine Description:
type: programming type: programming
@@ -1632,7 +1620,7 @@ HTML:
type: markup type: markup
tm_scope: text.html.basic tm_scope: text.html.basic
ace_mode: html ace_mode: html
codemirror_mode: htmlembedded codemirror_mode: htmlmixed
codemirror_mime_mode: text/html codemirror_mime_mode: text/html
color: "#e44b23" color: "#e44b23"
aliases: aliases:
@@ -1671,7 +1659,7 @@ HTML+ECR:
extensions: extensions:
- ".ecr" - ".ecr"
ace_mode: text ace_mode: text
codemirror_mode: htmlembedded codemirror_mode: htmlmixed
codemirror_mime_mode: text/html codemirror_mime_mode: text/html
language_id: 148 language_id: 148
HTML+EEX: HTML+EEX:
@@ -1683,7 +1671,7 @@ HTML+EEX:
extensions: extensions:
- ".eex" - ".eex"
ace_mode: text ace_mode: text
codemirror_mode: htmlembedded codemirror_mode: htmlmixed
codemirror_mime_mode: text/html codemirror_mime_mode: text/html
language_id: 149 language_id: 149
HTML+ERB: HTML+ERB:
@@ -1752,7 +1740,6 @@ Handlebars:
- ".hbs" - ".hbs"
tm_scope: text.html.handlebars tm_scope: text.html.handlebars
ace_mode: handlebars ace_mode: handlebars
codemirror_mode: handlebars
language_id: 155 language_id: 155
Harbour: Harbour:
type: programming type: programming
@@ -1962,8 +1949,6 @@ JSONLD:
type: data type: data
group: JavaScript group: JavaScript
ace_mode: javascript ace_mode: javascript
codemirror_mode: javascript
codemirror_mime_mode: application/ld+json
extensions: extensions:
- ".jsonld" - ".jsonld"
tm_scope: source.js tm_scope: source.js
@@ -1985,6 +1970,7 @@ JSX:
- ".jsx" - ".jsx"
tm_scope: source.js.jsx tm_scope: source.js.jsx
ace_mode: javascript ace_mode: javascript
codemirror_mode: jsx
codemirror_mime_mode: text/jsx codemirror_mime_mode: text/jsx
language_id: 178 language_id: 178
Jade: Jade:
@@ -2118,7 +2104,7 @@ KiCad:
Kit: Kit:
type: markup type: markup
ace_mode: html ace_mode: html
codemirror_mode: htmlembedded codemirror_mode: htmlmixed
codemirror_mime_mode: text/html codemirror_mime_mode: text/html
extensions: extensions:
- ".kit" - ".kit"
@@ -2419,7 +2405,7 @@ MTML:
- ".mtml" - ".mtml"
tm_scope: text.html.basic tm_scope: text.html.basic
ace_mode: html ace_mode: html
codemirror_mode: htmlembedded codemirror_mode: htmlmixed
codemirror_mime_mode: text/html codemirror_mime_mode: text/html
language_id: 218 language_id: 218
MUF: MUF:
@@ -2474,7 +2460,7 @@ Mako:
Markdown: Markdown:
type: prose type: prose
ace_mode: markdown ace_mode: markdown
codemirror_mode: markdown codemirror_mode: gfm
codemirror_mime_mode: text/x-gfm codemirror_mime_mode: text/x-gfm
wrap: true wrap: true
extensions: extensions:
@@ -2837,8 +2823,6 @@ ObjDump:
- ".objdump" - ".objdump"
tm_scope: objdump.x86asm tm_scope: objdump.x86asm
ace_mode: assembly_x86 ace_mode: assembly_x86
codemirror_mode: gas
codemirror_mime_mode: text/x-gas
language_id: 256 language_id: 256
Objective-C: Objective-C:
type: programming type: programming
@@ -3247,7 +3231,7 @@ PowerShell:
type: programming type: programming
ace_mode: powershell ace_mode: powershell
codemirror_mode: powershell codemirror_mode: powershell
codemirror_mime_mode: text/x-powershell codemirror_mime_mode: application/x-powershell
aliases: aliases:
- posh - posh
extensions: extensions:
@@ -3482,7 +3466,7 @@ RMarkdown:
type: prose type: prose
wrap: true wrap: true
ace_mode: markdown ace_mode: markdown
codemirror_mode: markdown codemirror_mode: gfm
codemirror_mime_mode: text/x-gfm codemirror_mime_mode: text/x-gfm
extensions: extensions:
- ".rmd" - ".rmd"
@@ -4048,7 +4032,6 @@ Stylus:
- ".styl" - ".styl"
tm_scope: source.stylus tm_scope: source.stylus
ace_mode: stylus ace_mode: stylus
codemirror_mode: stylus
language_id: 359 language_id: 359
SubRip Text: SubRip Text:
type: data type: data
@@ -4263,7 +4246,7 @@ TypeScript:
tm_scope: source.ts tm_scope: source.ts
ace_mode: typescript ace_mode: typescript
codemirror_mode: javascript codemirror_mode: javascript
codemirror_mime_mode: text/x-typescript codemirror_mime_mode: application/typescript
language_id: 378 language_id: 378
Unified Parallel C: Unified Parallel C:
type: programming type: programming
@@ -4418,7 +4401,6 @@ Vue:
- ".vue" - ".vue"
tm_scope: text.html.vue tm_scope: text.html.vue
ace_mode: html ace_mode: html
codemirror_mode: vue
language_id: 391 language_id: 391
Wavefront Material: Wavefront Material:
type: data type: data

View File

@@ -452,6 +452,15 @@ class TestLanguage < Minitest::Test
assert missing.empty?, message assert missing.empty?, message
end end
def test_codemirror_modes_present
Language.all.each do |language|
if language.codemirror_mode || language.codemirror_mime_mode
assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode"
assert language.codemirror_mime_mode, "#{language.inspect} missing CodeMirror MIME mode"
end
end
end
def test_valid_codemirror_mode def test_valid_codemirror_mode
Language.all.each do |language| Language.all.each do |language|
if mode = language.codemirror_mode if mode = language.codemirror_mode
@@ -460,6 +469,23 @@ class TestLanguage < Minitest::Test
end end
end end
def test_codemirror_mode_and_mime_defined_by_meta_mapping
meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__))
Language.all.each do |language|
next unless language.codemirror_mode && language.codemirror_mime_mode
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}"
end
end
def test_codemirror_mime_declared_in_mode_file
Language.all.each do |language|
next unless language.codemirror_mode && language.codemirror_mime_mode
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.read(filename).match(language.codemirror_mime_mode), "#{language.inspect}: #{language.codemirror_mime_mode} not defined in #{filename}"
end
end
def test_all_popular_languages_exist def test_all_popular_languages_exist
popular = YAML.load(File.read(File.expand_path("../../lib/linguist/popular.yml", __FILE__))) popular = YAML.load(File.read(File.expand_path("../../lib/linguist/popular.yml", __FILE__)))