mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge pull request #1756 from github/test-for-grammars
Test that all languages have grammars
This commit is contained in:
@@ -12,6 +12,10 @@
|
||||
# search_term - Deprecated: Some languages maybe indexed under a
|
||||
# different alias. Avoid defining new exceptions.
|
||||
# color - CSS hex color to represent the language.
|
||||
# tm_scope - The TextMate scope that represents this programming
|
||||
# language. This should match one of the scopes listed in
|
||||
# the grammars.yml file. Use "none" if there is no grammar
|
||||
# for this language.
|
||||
#
|
||||
# Any additions or modifications (even trivial) should have corresponding
|
||||
# test change in `test/test_blob.rb`.
|
||||
@@ -45,6 +49,7 @@ APL:
|
||||
extensions:
|
||||
- .apl
|
||||
- .dyalog
|
||||
tm_scope: none
|
||||
|
||||
ASP:
|
||||
type: programming
|
||||
@@ -146,6 +151,7 @@ Arc:
|
||||
color: "#ca2afe"
|
||||
extensions:
|
||||
- .arc
|
||||
tm_scope: none
|
||||
|
||||
Arduino:
|
||||
type: programming
|
||||
@@ -162,12 +168,14 @@ AsciiDoc:
|
||||
- .asciidoc
|
||||
- .adoc
|
||||
- .asc
|
||||
tm_scope: none
|
||||
|
||||
AspectJ:
|
||||
type: programming
|
||||
color: "#1957b0"
|
||||
extensions:
|
||||
- .aj
|
||||
tm_scope: none
|
||||
|
||||
Assembly:
|
||||
type: programming
|
||||
@@ -185,6 +193,7 @@ Augeas:
|
||||
type: programming
|
||||
extensions:
|
||||
- .aug
|
||||
tm_scope: none
|
||||
|
||||
AutoHotkey:
|
||||
type: programming
|
||||
@@ -194,6 +203,7 @@ AutoHotkey:
|
||||
extensions:
|
||||
- .ahk
|
||||
- .ahkl
|
||||
tm_scope: none
|
||||
|
||||
AutoIt:
|
||||
type: programming
|
||||
@@ -286,6 +296,7 @@ Brightscript:
|
||||
type: programming
|
||||
extensions:
|
||||
- .brs
|
||||
tm_scope: none
|
||||
|
||||
Bro:
|
||||
type: programming
|
||||
@@ -359,6 +370,7 @@ CLIPS:
|
||||
type: programming
|
||||
extensions:
|
||||
- .clp
|
||||
tm_scope: none
|
||||
|
||||
CMake:
|
||||
extensions:
|
||||
@@ -421,6 +433,7 @@ Clean:
|
||||
extensions:
|
||||
- .icl
|
||||
- .dcl
|
||||
tm_scope: none
|
||||
|
||||
Clojure:
|
||||
type: programming
|
||||
@@ -537,6 +550,7 @@ Creole:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .creole
|
||||
tm_scope: none
|
||||
|
||||
Crystal:
|
||||
type: programming
|
||||
@@ -604,6 +618,7 @@ Darcs Patch:
|
||||
extensions:
|
||||
- .darcspatch
|
||||
- .dpatch
|
||||
tm_scope: none
|
||||
|
||||
Dart:
|
||||
type: programming
|
||||
@@ -631,6 +646,7 @@ Dogescript:
|
||||
color: "#cca760"
|
||||
extensions:
|
||||
- .djs
|
||||
tm_scope: none
|
||||
|
||||
Dylan:
|
||||
type: programming
|
||||
@@ -646,6 +662,7 @@ E:
|
||||
color: "#ccce35"
|
||||
extensions:
|
||||
- .E
|
||||
tm_scope: none
|
||||
|
||||
ECL:
|
||||
type: programming
|
||||
@@ -653,6 +670,7 @@ ECL:
|
||||
extensions:
|
||||
- .ecl
|
||||
- .eclxml
|
||||
tm_scope: none
|
||||
|
||||
Eagle:
|
||||
type: markup
|
||||
@@ -736,6 +754,7 @@ FLUX:
|
||||
extensions:
|
||||
- .fx
|
||||
- .flux
|
||||
tm_scope: none
|
||||
|
||||
FORTRAN:
|
||||
type: programming
|
||||
@@ -809,11 +828,13 @@ G-code:
|
||||
- .g
|
||||
- .gco
|
||||
- .gcode
|
||||
tm_scope: none
|
||||
|
||||
GAMS:
|
||||
type: programming
|
||||
extensions:
|
||||
- .gms
|
||||
tm_scope: none
|
||||
|
||||
GAP:
|
||||
type: programming
|
||||
@@ -822,6 +843,7 @@ GAP:
|
||||
- .gap
|
||||
- .gd
|
||||
- .gi
|
||||
tm_scope: none
|
||||
|
||||
GAS:
|
||||
type: programming
|
||||
@@ -835,6 +857,7 @@ GDScript:
|
||||
type: programming
|
||||
extensions:
|
||||
- .gd
|
||||
tm_scope: none
|
||||
|
||||
GLSL:
|
||||
group: C
|
||||
@@ -919,6 +942,7 @@ Golo:
|
||||
color: "#f6a51f"
|
||||
extensions:
|
||||
- .golo
|
||||
tm_scope: none
|
||||
|
||||
Gosu:
|
||||
type: programming
|
||||
@@ -934,6 +958,7 @@ Grace:
|
||||
type: programming
|
||||
extensions:
|
||||
- .grace
|
||||
tm_scope: none
|
||||
|
||||
Grammatical Framework:
|
||||
type: programming
|
||||
@@ -950,6 +975,7 @@ Graph Modeling Language:
|
||||
type: data
|
||||
extensions:
|
||||
- .gml
|
||||
tm_scope: none
|
||||
|
||||
Graphviz (DOT):
|
||||
type: data
|
||||
@@ -1039,6 +1065,7 @@ HTTP:
|
||||
type: data
|
||||
extensions:
|
||||
- .http
|
||||
tm_scope: none
|
||||
|
||||
Hack:
|
||||
type: programming
|
||||
@@ -1046,6 +1073,7 @@ Hack:
|
||||
extensions:
|
||||
- .hh
|
||||
- .php
|
||||
tm_scope: none
|
||||
|
||||
Haml:
|
||||
group: HTML
|
||||
@@ -1068,6 +1096,7 @@ Harbour:
|
||||
color: "#0e60e3"
|
||||
extensions:
|
||||
- .hb
|
||||
tm_scope: none
|
||||
|
||||
Haskell:
|
||||
type: programming
|
||||
@@ -1093,6 +1122,7 @@ Hy:
|
||||
- .hy
|
||||
aliases:
|
||||
- hylang
|
||||
tm_scope: none
|
||||
|
||||
IDL:
|
||||
type: programming
|
||||
@@ -1108,6 +1138,7 @@ IGOR Pro:
|
||||
aliases:
|
||||
- igor
|
||||
- igorpro
|
||||
tm_scope: none
|
||||
|
||||
INI:
|
||||
type: data
|
||||
@@ -1128,6 +1159,7 @@ IRC log:
|
||||
extensions:
|
||||
- .irclog
|
||||
- .weechatlog
|
||||
tm_scope: none
|
||||
|
||||
Idris:
|
||||
type: programming
|
||||
@@ -1149,6 +1181,7 @@ Inform 7:
|
||||
Inno Setup:
|
||||
extensions:
|
||||
- .iss
|
||||
tm_scope: none
|
||||
|
||||
Io:
|
||||
type: programming
|
||||
@@ -1167,11 +1200,13 @@ Isabelle:
|
||||
color: "#fdcd00"
|
||||
extensions:
|
||||
- .thy
|
||||
tm_scope: none
|
||||
|
||||
J:
|
||||
type: programming
|
||||
extensions:
|
||||
- .ijs
|
||||
tm_scope: none
|
||||
|
||||
JSON:
|
||||
type: data
|
||||
@@ -1279,6 +1314,7 @@ KRL:
|
||||
color: "#f5c800"
|
||||
extensions:
|
||||
- .krl
|
||||
tm_scope: none
|
||||
|
||||
Kit:
|
||||
type: markup
|
||||
@@ -1312,6 +1348,7 @@ LOLCODE:
|
||||
extensions:
|
||||
- .lol
|
||||
color: "#cc9900"
|
||||
tm_scope: none
|
||||
|
||||
LSL:
|
||||
type: programming
|
||||
@@ -1326,6 +1363,7 @@ LabVIEW:
|
||||
type: programming
|
||||
extensions:
|
||||
- .lvproj
|
||||
tm_scope: none
|
||||
|
||||
Lasso:
|
||||
type: programming
|
||||
@@ -1364,12 +1402,14 @@ Liquid:
|
||||
type: markup
|
||||
extensions:
|
||||
- .liquid
|
||||
tm_scope: none
|
||||
|
||||
Literate Agda:
|
||||
type: programming
|
||||
group: Agda
|
||||
extensions:
|
||||
- .lagda
|
||||
tm_scope: none
|
||||
|
||||
Literate CoffeeScript:
|
||||
type: programming
|
||||
@@ -1546,6 +1586,7 @@ MediaWiki:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .mediawiki
|
||||
tm_scope: none
|
||||
|
||||
Mercury:
|
||||
type: programming
|
||||
@@ -1560,6 +1601,7 @@ MiniD: # Legacy
|
||||
searchable: false
|
||||
extensions:
|
||||
- .minid # Dummy extension
|
||||
tm_scope: none
|
||||
|
||||
Mirah:
|
||||
type: programming
|
||||
@@ -1581,6 +1623,7 @@ Moocode:
|
||||
type: programming
|
||||
extensions:
|
||||
- .moo
|
||||
tm_scope: none
|
||||
|
||||
MoonScript:
|
||||
type: programming
|
||||
@@ -1592,6 +1635,7 @@ MoonScript:
|
||||
Myghty:
|
||||
extensions:
|
||||
- .myt
|
||||
tm_scope: none
|
||||
|
||||
NSIS:
|
||||
extensions:
|
||||
@@ -1637,6 +1681,7 @@ Nit:
|
||||
color: "#0d8921"
|
||||
extensions:
|
||||
- .nit
|
||||
tm_scope: none
|
||||
|
||||
Nix:
|
||||
type: programming
|
||||
@@ -1644,6 +1689,7 @@ Nix:
|
||||
- .nix
|
||||
aliases:
|
||||
- nixos
|
||||
tm_scope: none
|
||||
|
||||
Nu:
|
||||
type: programming
|
||||
@@ -1662,6 +1708,7 @@ NumPy:
|
||||
- .numpy
|
||||
- .numpyw
|
||||
- .numsc
|
||||
tm_scope: none
|
||||
|
||||
OCaml:
|
||||
type: programming
|
||||
@@ -1722,6 +1769,7 @@ Omgrofl:
|
||||
extensions:
|
||||
- .omgrofl
|
||||
color: "#cabbff"
|
||||
tm_scope: none
|
||||
|
||||
Opa:
|
||||
type: programming
|
||||
@@ -1733,6 +1781,7 @@ Opal:
|
||||
color: "#f7ede0"
|
||||
extensions:
|
||||
- .opal
|
||||
tm_scope: none
|
||||
|
||||
OpenCL:
|
||||
type: programming
|
||||
@@ -1757,12 +1806,14 @@ OpenSCAD:
|
||||
type: programming
|
||||
extensions:
|
||||
- .scad
|
||||
tm_scope: none
|
||||
|
||||
Org:
|
||||
type: prose
|
||||
wrap: true
|
||||
extensions:
|
||||
- .org
|
||||
tm_scope: none
|
||||
|
||||
Ox:
|
||||
type: programming
|
||||
@@ -1770,12 +1821,14 @@ Ox:
|
||||
- .ox
|
||||
- .oxh
|
||||
- .oxo
|
||||
tm_scope: none
|
||||
|
||||
Oxygene:
|
||||
type: programming
|
||||
color: "#5a63a3"
|
||||
extensions:
|
||||
- .oxygene
|
||||
tm_scope: none
|
||||
|
||||
PAWN:
|
||||
type: programming
|
||||
@@ -1811,18 +1864,21 @@ Pan:
|
||||
color: '#cc0000'
|
||||
extensions:
|
||||
- .pan
|
||||
tm_scope: none
|
||||
|
||||
Papyrus:
|
||||
type: programming
|
||||
color: "#6600cc"
|
||||
extensions:
|
||||
- .psc
|
||||
tm_scope: none
|
||||
|
||||
Parrot:
|
||||
type: programming
|
||||
color: "#f3ca0a"
|
||||
extensions:
|
||||
- .parrot # Dummy extension
|
||||
tm_scope: none
|
||||
|
||||
Parrot Assembly:
|
||||
group: Parrot
|
||||
@@ -1831,6 +1887,7 @@ Parrot Assembly:
|
||||
- pasm
|
||||
extensions:
|
||||
- .pasm
|
||||
tm_scope: none
|
||||
|
||||
Parrot Internal Representation:
|
||||
group: Parrot
|
||||
@@ -1882,12 +1939,14 @@ Perl6:
|
||||
- .p6m
|
||||
- .pl6
|
||||
- .pm6
|
||||
tm_scope: none
|
||||
|
||||
PigLatin:
|
||||
type: programming
|
||||
color: "#fcd7de"
|
||||
extensions:
|
||||
- .pig
|
||||
tm_scope: none
|
||||
|
||||
Pike:
|
||||
type: programming
|
||||
@@ -1902,12 +1961,14 @@ Pod:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .pod
|
||||
tm_scope: none
|
||||
|
||||
PogoScript:
|
||||
type: programming
|
||||
color: "#d80074"
|
||||
extensions:
|
||||
- .pogo
|
||||
tm_scope: none
|
||||
|
||||
PostScript:
|
||||
type: markup
|
||||
@@ -1948,6 +2009,7 @@ Propeller Spin:
|
||||
color: "#2b446d"
|
||||
extensions:
|
||||
- .spin
|
||||
tm_scope: none
|
||||
|
||||
Protocol Buffer:
|
||||
type: markup
|
||||
@@ -1971,6 +2033,7 @@ Pure Data:
|
||||
color: "#91de79"
|
||||
extensions:
|
||||
- .pd
|
||||
tm_scope: none
|
||||
|
||||
PureScript:
|
||||
type: programming
|
||||
@@ -2077,6 +2140,7 @@ RMarkdown:
|
||||
extensions:
|
||||
- .rmd
|
||||
- .Rmd
|
||||
tm_scope: none
|
||||
|
||||
Racket:
|
||||
type: programming
|
||||
@@ -2096,6 +2160,7 @@ Ragel in Ruby Host:
|
||||
aliases:
|
||||
- ragel-rb
|
||||
- ragel-ruby
|
||||
tm_scope: none
|
||||
|
||||
Raw token data:
|
||||
search_term: raw
|
||||
@@ -2103,6 +2168,7 @@ Raw token data:
|
||||
- raw
|
||||
extensions:
|
||||
- .raw
|
||||
tm_scope: none
|
||||
|
||||
Rebol:
|
||||
type: programming
|
||||
@@ -2122,10 +2188,12 @@ Red:
|
||||
- .reds
|
||||
aliases:
|
||||
- red/system
|
||||
tm_scope: none
|
||||
|
||||
Redcode:
|
||||
extensions:
|
||||
- .cw
|
||||
tm_scope: none
|
||||
|
||||
RobotFramework:
|
||||
type: programming
|
||||
@@ -2199,6 +2267,7 @@ SAS:
|
||||
color: "#1E90FF"
|
||||
extensions:
|
||||
- .sas
|
||||
tm_scope: none
|
||||
|
||||
SCSS:
|
||||
type: markup
|
||||
@@ -2292,6 +2361,7 @@ Self:
|
||||
color: "#0579aa"
|
||||
extensions:
|
||||
- .self
|
||||
tm_scope: none
|
||||
|
||||
Shell:
|
||||
type: programming
|
||||
@@ -2330,6 +2400,7 @@ Shen:
|
||||
color: "#120F14"
|
||||
extensions:
|
||||
- .shen
|
||||
tm_scope: none
|
||||
|
||||
Slash:
|
||||
type: programming
|
||||
@@ -2400,6 +2471,7 @@ Stylus:
|
||||
group: CSS
|
||||
extensions:
|
||||
- .styl
|
||||
tm_scope: none
|
||||
|
||||
SuperCollider:
|
||||
type: programming
|
||||
@@ -2407,6 +2479,7 @@ SuperCollider:
|
||||
extensions:
|
||||
- .scd
|
||||
- .sc
|
||||
tm_scope: none
|
||||
|
||||
Swift:
|
||||
type: programming
|
||||
@@ -2432,6 +2505,7 @@ TXL:
|
||||
type: programming
|
||||
extensions:
|
||||
- .txl
|
||||
tm_scope: none
|
||||
|
||||
Tcl:
|
||||
type: programming
|
||||
@@ -2488,6 +2562,7 @@ Textile:
|
||||
wrap: true
|
||||
extensions:
|
||||
- .textile
|
||||
tm_scope: none
|
||||
|
||||
Thrift:
|
||||
type: programming
|
||||
@@ -2501,6 +2576,7 @@ Turing:
|
||||
extensions:
|
||||
- .t
|
||||
- .tu
|
||||
tm_scope: none
|
||||
|
||||
Twig:
|
||||
type: markup
|
||||
@@ -2761,6 +2837,7 @@ Zimpl:
|
||||
- .zimpl
|
||||
- .zmpl
|
||||
- .zpl
|
||||
tm_scope: none
|
||||
|
||||
eC:
|
||||
type: programming
|
||||
@@ -2768,6 +2845,7 @@ eC:
|
||||
extensions:
|
||||
- .ec
|
||||
- .eh
|
||||
tm_scope: none
|
||||
|
||||
edn:
|
||||
type: data
|
||||
@@ -2782,6 +2860,7 @@ fish:
|
||||
group: Shell
|
||||
extensions:
|
||||
- .fish
|
||||
tm_scope: none
|
||||
|
||||
mupad:
|
||||
extensions:
|
||||
@@ -2822,3 +2901,4 @@ xBase:
|
||||
color: "#3a4040"
|
||||
extensions:
|
||||
- .prg
|
||||
tm_scope: none
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
require 'linguist/language'
|
||||
require 'test/unit'
|
||||
require 'yaml'
|
||||
|
||||
class TestLanguage < Test::Unit::TestCase
|
||||
include Linguist
|
||||
@@ -359,4 +360,15 @@ class TestLanguage < Test::Unit::TestCase
|
||||
def test_by_type
|
||||
assert !Language.by_type(:prose).nil?
|
||||
end
|
||||
|
||||
def test_all_languages_have_grammars
|
||||
scopes = YAML.load(File.read(File.expand_path("../../grammars.yml", __FILE__))).values.flatten
|
||||
missing = Language.all.reject { |language| language.tm_scope == "none" || scopes.include?(language.tm_scope) }
|
||||
message = "The following languages' scopes are not listed in grammars.yml. Please add grammars for all new languages.\n"
|
||||
message << "If no grammar exists for a language, mark the language with `tm_scope: 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.tm_scope) }.sort.join("\n")
|
||||
assert missing.empty?, message
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user