mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Adding test to check that languages.yml includes all extensions represented in samples folder
This commit is contained in:
@@ -532,6 +532,7 @@ module Linguist
|
|||||||
if extnames = extensions[name]
|
if extnames = extensions[name]
|
||||||
extnames.each do |extname|
|
extnames.each do |extname|
|
||||||
if !options['extensions'].include?(extname)
|
if !options['extensions'].include?(extname)
|
||||||
|
warn "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" unless extname == '.script!'
|
||||||
options['extensions'] << extname
|
options['extensions'] << extname
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -260,6 +260,7 @@ C:
|
|||||||
extensions:
|
extensions:
|
||||||
- .c
|
- .c
|
||||||
- .cats
|
- .cats
|
||||||
|
- .h
|
||||||
- .w
|
- .w
|
||||||
|
|
||||||
C#:
|
C#:
|
||||||
@@ -288,6 +289,7 @@ C++:
|
|||||||
- .cc
|
- .cc
|
||||||
- .cxx
|
- .cxx
|
||||||
- .H
|
- .H
|
||||||
|
- .h
|
||||||
- .h++
|
- .h++
|
||||||
- .hh
|
- .hh
|
||||||
- .hpp
|
- .hpp
|
||||||
@@ -444,6 +446,7 @@ Coq:
|
|||||||
type: programming
|
type: programming
|
||||||
extensions:
|
extensions:
|
||||||
- .coq
|
- .coq
|
||||||
|
- .v
|
||||||
|
|
||||||
Cpp-ObjDump:
|
Cpp-ObjDump:
|
||||||
type: data
|
type: data
|
||||||
@@ -539,6 +542,7 @@ Dart:
|
|||||||
Diff:
|
Diff:
|
||||||
extensions:
|
extensions:
|
||||||
- .diff
|
- .diff
|
||||||
|
- .patch
|
||||||
|
|
||||||
Dogescript:
|
Dogescript:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -623,6 +627,7 @@ Erlang:
|
|||||||
color: "#0faf8d"
|
color: "#0faf8d"
|
||||||
extensions:
|
extensions:
|
||||||
- .erl
|
- .erl
|
||||||
|
- .escript
|
||||||
- .hrl
|
- .hrl
|
||||||
|
|
||||||
F#:
|
F#:
|
||||||
@@ -698,6 +703,7 @@ Forth:
|
|||||||
extensions:
|
extensions:
|
||||||
- .fth
|
- .fth
|
||||||
- .4th
|
- .4th
|
||||||
|
- .forth
|
||||||
|
|
||||||
Frege:
|
Frege:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -806,6 +812,9 @@ Gosu:
|
|||||||
color: "#82937f"
|
color: "#82937f"
|
||||||
extensions:
|
extensions:
|
||||||
- .gs
|
- .gs
|
||||||
|
- .gst
|
||||||
|
- .gsx
|
||||||
|
- .vark
|
||||||
|
|
||||||
Grace:
|
Grace:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -841,6 +850,7 @@ Groovy:
|
|||||||
color: "#e69f56"
|
color: "#e69f56"
|
||||||
extensions:
|
extensions:
|
||||||
- .groovy
|
- .groovy
|
||||||
|
- .gradle
|
||||||
- .grt
|
- .grt
|
||||||
- .gtpl
|
- .gtpl
|
||||||
- .gvy
|
- .gvy
|
||||||
@@ -945,6 +955,7 @@ IDL:
|
|||||||
color: "#e3592c"
|
color: "#e3592c"
|
||||||
extensions:
|
extensions:
|
||||||
- .pro
|
- .pro
|
||||||
|
- .dlm
|
||||||
|
|
||||||
INI:
|
INI:
|
||||||
type: data
|
type: data
|
||||||
@@ -1019,6 +1030,7 @@ JSON:
|
|||||||
searchable: false
|
searchable: false
|
||||||
extensions:
|
extensions:
|
||||||
- .json
|
- .json
|
||||||
|
- .lock
|
||||||
- .sublime-keymap
|
- .sublime-keymap
|
||||||
- .sublime-mousemap
|
- .sublime-mousemap
|
||||||
- .sublime-project
|
- .sublime-project
|
||||||
@@ -1147,6 +1159,9 @@ Lasso:
|
|||||||
color: "#2584c3"
|
color: "#2584c3"
|
||||||
extensions:
|
extensions:
|
||||||
- .lasso
|
- .lasso
|
||||||
|
- .las
|
||||||
|
- .lasso9
|
||||||
|
- .ldml
|
||||||
|
|
||||||
Latte:
|
Latte:
|
||||||
type: markup
|
type: markup
|
||||||
@@ -1232,6 +1247,7 @@ Lua:
|
|||||||
extensions:
|
extensions:
|
||||||
- .lua
|
- .lua
|
||||||
- .nse
|
- .nse
|
||||||
|
- .pd_lua
|
||||||
- .rbxs
|
- .rbxs
|
||||||
interpreters:
|
interpreters:
|
||||||
- lua
|
- lua
|
||||||
@@ -1377,6 +1393,7 @@ Myghty:
|
|||||||
NSIS:
|
NSIS:
|
||||||
extensions:
|
extensions:
|
||||||
- .nsi
|
- .nsi
|
||||||
|
- .nsh
|
||||||
|
|
||||||
Nemerle:
|
Nemerle:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -1441,6 +1458,7 @@ OCaml:
|
|||||||
color: "#3be133"
|
color: "#3be133"
|
||||||
extensions:
|
extensions:
|
||||||
- .ml
|
- .ml
|
||||||
|
- .eliom
|
||||||
- .eliomi
|
- .eliomi
|
||||||
- .ml4
|
- .ml4
|
||||||
- .mli
|
- .mli
|
||||||
@@ -1461,6 +1479,7 @@ Objective-C:
|
|||||||
- objc
|
- objc
|
||||||
extensions:
|
extensions:
|
||||||
- .m
|
- .m
|
||||||
|
- .h
|
||||||
|
|
||||||
Objective-C++:
|
Objective-C++:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -1508,6 +1527,7 @@ OpenEdge ABL:
|
|||||||
- abl
|
- abl
|
||||||
extensions:
|
extensions:
|
||||||
- .p
|
- .p
|
||||||
|
- .cls
|
||||||
|
|
||||||
Org:
|
Org:
|
||||||
type: prose
|
type: prose
|
||||||
@@ -1546,6 +1566,7 @@ PHP:
|
|||||||
- .php
|
- .php
|
||||||
- .aw
|
- .aw
|
||||||
- .ctp
|
- .ctp
|
||||||
|
- .module
|
||||||
- .php3
|
- .php3
|
||||||
- .php4
|
- .php4
|
||||||
- .php5
|
- .php5
|
||||||
@@ -1594,6 +1615,7 @@ Pascal:
|
|||||||
extensions:
|
extensions:
|
||||||
- .pas
|
- .pas
|
||||||
- .dfm
|
- .dfm
|
||||||
|
- .dpr
|
||||||
- .lpr
|
- .lpr
|
||||||
|
|
||||||
Perl:
|
Perl:
|
||||||
@@ -1603,12 +1625,14 @@ Perl:
|
|||||||
extensions:
|
extensions:
|
||||||
- .pl
|
- .pl
|
||||||
- .PL
|
- .PL
|
||||||
|
- .fcgi
|
||||||
- .perl
|
- .perl
|
||||||
- .ph
|
- .ph
|
||||||
- .plx
|
- .plx
|
||||||
- .pm
|
- .pm
|
||||||
- .pod
|
- .pod
|
||||||
- .psgi
|
- .psgi
|
||||||
|
- .t
|
||||||
interpreters:
|
interpreters:
|
||||||
- perl
|
- perl
|
||||||
|
|
||||||
@@ -1817,6 +1841,7 @@ Racket:
|
|||||||
- .rkt
|
- .rkt
|
||||||
- .rktd
|
- .rktd
|
||||||
- .rktl
|
- .rktl
|
||||||
|
- .scrbl
|
||||||
|
|
||||||
Ragel in Ruby Host:
|
Ragel in Ruby Host:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -1886,7 +1911,10 @@ Ruby:
|
|||||||
- .god
|
- .god
|
||||||
- .irbrc
|
- .irbrc
|
||||||
- .mspec
|
- .mspec
|
||||||
|
- .pluginspec
|
||||||
- .podspec
|
- .podspec
|
||||||
|
- .rabl
|
||||||
|
- .rake
|
||||||
- .rbuild
|
- .rbuild
|
||||||
- .rbw
|
- .rbw
|
||||||
- .rbx
|
- .rbx
|
||||||
@@ -1960,6 +1988,7 @@ Sass:
|
|||||||
group: CSS
|
group: CSS
|
||||||
extensions:
|
extensions:
|
||||||
- .sass
|
- .sass
|
||||||
|
- .scss
|
||||||
|
|
||||||
Scala:
|
Scala:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -1967,6 +1996,7 @@ Scala:
|
|||||||
color: "#7dd3b0"
|
color: "#7dd3b0"
|
||||||
extensions:
|
extensions:
|
||||||
- .scala
|
- .scala
|
||||||
|
- .sbt
|
||||||
- .sc
|
- .sc
|
||||||
|
|
||||||
Scaml:
|
Scaml:
|
||||||
@@ -1982,6 +2012,7 @@ Scheme:
|
|||||||
- .scm
|
- .scm
|
||||||
- .sld
|
- .sld
|
||||||
- .sls
|
- .sls
|
||||||
|
- .sps
|
||||||
- .ss
|
- .ss
|
||||||
interpreters:
|
interpreters:
|
||||||
- guile
|
- guile
|
||||||
@@ -1993,6 +2024,8 @@ Scilab:
|
|||||||
type: programming
|
type: programming
|
||||||
extensions:
|
extensions:
|
||||||
- .sci
|
- .sci
|
||||||
|
- .sce
|
||||||
|
- .tst
|
||||||
|
|
||||||
Self:
|
Self:
|
||||||
type: programming
|
type: programming
|
||||||
@@ -2012,8 +2045,10 @@ Shell:
|
|||||||
- zsh
|
- zsh
|
||||||
extensions:
|
extensions:
|
||||||
- .sh
|
- .sh
|
||||||
|
- .bash
|
||||||
- .bats
|
- .bats
|
||||||
- .tmux
|
- .tmux
|
||||||
|
- .zsh
|
||||||
interpreters:
|
interpreters:
|
||||||
- bash
|
- bash
|
||||||
- sh
|
- sh
|
||||||
@@ -2080,6 +2115,7 @@ Standard ML:
|
|||||||
extensions:
|
extensions:
|
||||||
- .ML
|
- .ML
|
||||||
- .fun
|
- .fun
|
||||||
|
- .sig
|
||||||
- .sml
|
- .sml
|
||||||
|
|
||||||
Stata:
|
Stata:
|
||||||
@@ -2280,6 +2316,7 @@ Visual Basic:
|
|||||||
extensions:
|
extensions:
|
||||||
- .vb
|
- .vb
|
||||||
- .bas
|
- .bas
|
||||||
|
- .cls
|
||||||
- .frm
|
- .frm
|
||||||
- .frx
|
- .frx
|
||||||
- .vba
|
- .vba
|
||||||
@@ -2308,6 +2345,7 @@ XML:
|
|||||||
- wsdl
|
- wsdl
|
||||||
extensions:
|
extensions:
|
||||||
- .xml
|
- .xml
|
||||||
|
- .ant
|
||||||
- .axml
|
- .axml
|
||||||
- .ccxml
|
- .ccxml
|
||||||
- .clixml
|
- .clixml
|
||||||
@@ -2321,6 +2359,7 @@ XML:
|
|||||||
- .fsproj
|
- .fsproj
|
||||||
- .glade
|
- .glade
|
||||||
- .grxml
|
- .grxml
|
||||||
|
- .ivy
|
||||||
- .jelly
|
- .jelly
|
||||||
- .kml
|
- .kml
|
||||||
- .launch
|
- .launch
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -36,6 +36,24 @@ class TestSamples < Test::Unit::TestCase
|
|||||||
assert_equal data['tokens_total'], data['tokens'].inject(0) { |n, (_, ts)| n += ts.inject(0) { |m, (_, c)| m += c } }
|
assert_equal data['tokens_total'], data['tokens'].inject(0) { |n, (_, ts)| n += ts.inject(0) { |m, (_, c)| m += c } }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Check that there aren't samples with extensions that aren't explicitly defined in languages.yml
|
||||||
|
def test_parity
|
||||||
|
extensions = Samples::DATA['extnames']
|
||||||
|
languages_yml = File.expand_path("../../lib/linguist/languages.yml", __FILE__)
|
||||||
|
languages = YAML.load_file(languages_yml)
|
||||||
|
|
||||||
|
languages.each do |name, options|
|
||||||
|
options['extensions'] ||= []
|
||||||
|
|
||||||
|
if extnames = extensions[name]
|
||||||
|
extnames.each do |extname|
|
||||||
|
next if extname == '.script!'
|
||||||
|
assert options['extensions'].include?(extname), "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# If a language extension isn't globally unique then make sure there are samples
|
# If a language extension isn't globally unique then make sure there are samples
|
||||||
def test_presence
|
def test_presence
|
||||||
Linguist::Language.all.each do |language|
|
Linguist::Language.all.each do |language|
|
||||||
|
|||||||
Reference in New Issue
Block a user