Require explicit primary_extension

This commit is contained in:
Joshua Peek
2012-07-20 16:54:49 -05:00
parent a775b00d9d
commit 144655f2c5
3 changed files with 109 additions and 11 deletions

View File

@@ -239,7 +239,9 @@ module Linguist
@overrides = attributes[:overrides] || []
@filenames = attributes[:filenames] || []
@primary_extension = attributes[:primary_extension] || default_primary_extension || extensions.first
unless @primary_extension = attributes[:primary_extension]
raise ArgumentError, "#{@name} is missing primary extension"
end
# Prepend primary extension unless its already included
if primary_extension && !extensions.include?(primary_extension)
@@ -376,13 +378,6 @@ module Linguist
name.downcase.gsub(/\s/, '-')
end
# Internal: Get default primary extension.
#
# Returns the extension String.
def default_primary_extension
extensions.first
end
# Public: Get Language group
#
# Returns a Language

View File

@@ -12,8 +12,9 @@
# ace_mode - A String name of Ace Mode (if available)
# extension - An Array of associated extensions
# primary_extension - A String for the main extension associated with
# the langauge. (defaults to extensions.first).
# Must be unique.
# the language. Must be unique. Used when a Language is picked
# from a dropdown and we need to automatically choose an
# extension.
# overrides - An Array of extensions that takes precedence over conflicts
# searchable - Boolean flag to enable searching (defaults to true)
# search_term - Deprecated: Some languages maybe indexed under a
@@ -50,12 +51,14 @@ ActionScript:
search_term: as3
aliases:
- as3
primary_extension: .as
extensions:
- .as
Ada:
type: programming
color: "#02f88c"
primary_extension: .adb
extensions:
- .adb
- .ads
@@ -81,6 +84,7 @@ Arc:
type: programming
color: "#ca2afe"
lexer: Text only
primary_extension: .arc
extensions:
- .arc
@@ -88,6 +92,7 @@ Arduino:
type: programming
color: "#bd79d1"
lexer: C++
primary_extension: .ino
extensions:
- .ino
@@ -98,11 +103,13 @@ Assembly:
search_term: nasm
aliases:
- nasm
primary_extension: .asm
extensions:
- .asm
Augeas:
type: programming
primary_extension: .aug
extensions:
- .aug
@@ -112,6 +119,7 @@ AutoHotkey:
color: "#6594b9"
aliases:
- ahk
primary_extension: .ahk
extensions:
- .ahk
@@ -127,26 +135,31 @@ Batchfile:
- .cmd
Befunge:
primary_extension: .befunge
extensions:
- .befunge
BlitzMax:
primary_extension: .bmx
extensions:
- .bmx
Boo:
type: programming
color: "#d4bec1"
primary_extension: .boo
extensions:
- .boo
Brainfuck:
primary_extension: .b
extensions:
- .b
- .bf
Bro:
type: programming
primary_extension: .bro
extensions:
- .bro
@@ -168,6 +181,7 @@ C#:
color: "#5a25a2"
aliases:
- csharp
primary_extension: .cs
extensions:
- .cs
@@ -195,6 +209,7 @@ C++:
C-ObjDump:
type: data
lexer: c-objdump
primary_extension: .c-objdump
extensions:
- .c-objdump
@@ -204,10 +219,12 @@ C2hs Haskell:
group: Haskell
aliases:
- c2hs
primary_extension: .chs
extensions:
- .chs
CMake:
primary_extension: .cmake
extensions:
- .cmake
- .cmake.in
@@ -216,6 +233,7 @@ CMake:
CSS:
ace_mode: css
primary_extension: .css
extensions:
- .css
@@ -223,11 +241,13 @@ Ceylon:
type: programming
lexer: Text only
primary_extension: .ceylon
primary_extension: .ceylon
extensions:
- .ceylon
ChucK:
lexer: Java
primary_extension: .ck
extensions:
- .ck
@@ -285,6 +305,7 @@ Coq:
Cpp-ObjDump:
type: data
lexer: cpp-objdump
primary_extension: .cppobjdump
extensions:
- .cppobjdump
- .c++objdump
@@ -292,6 +313,7 @@ Cpp-ObjDump:
Cucumber:
lexer: Gherkin
primary_extension: .feature
extensions:
- .feature
@@ -307,6 +329,7 @@ Cython:
D:
type: programming
color: "#fcd46d"
primary_extension: .d
extensions:
- .d
- .di
@@ -314,6 +337,7 @@ D:
D-ObjDump:
type: data
lexer: d-objdump
primary_extension: .d-objdump
extensions:
- .d-objdump
@@ -321,12 +345,14 @@ Darcs Patch:
search_term: dpatch
aliases:
- dpatch
primary_extension: .darcspatch
extensions:
- .darcspatch
- .dpatch
Dart:
type: programming
primary_extension: .dart
extensions:
- .dart
@@ -350,6 +376,7 @@ DCPU-16 ASM:
- dasm16
Diff:
primary_extension: .diff
extensions:
- .diff
- .patch
@@ -357,6 +384,7 @@ Diff:
Dylan:
type: programming
color: "#3ebc27"
primary_extension: .dylan
extensions:
- .dylan
@@ -364,6 +392,7 @@ Ecere Projects:
type: data
group: JavaScript
lexer: JSON
primary_extension: .epj
extensions:
- .epj
@@ -371,6 +400,7 @@ Eiffel:
type: programming
lexer: Text only
color: "#946d57"
primary_extension: .e
extensions:
- .e
@@ -407,6 +437,7 @@ F#:
lexer: FSharp
color: "#b845fc"
search_term: ocaml
primary_extension: .fs
extensions:
- .fs
- .fsi
@@ -438,6 +469,7 @@ FORTRAN:
Factor:
type: programming
color: "#636746"
primary_extension: .factor
extensions:
- .factor
@@ -454,6 +486,7 @@ Fancy:
Fantom:
type: programming
color: "#dbded5"
primary_extension: .fan
extensions:
- .fan
@@ -466,18 +499,21 @@ GAS:
- .s
Genshi:
primary_extension: .kid
extensions:
- .kid
Gentoo Ebuild:
group: Shell
lexer: Bash
primary_extension: .ebuild
extensions:
- .ebuild
Gentoo Eclass:
group: Shell
lexer: Bash
primary_extension: .eclass
extensions:
- .eclass
@@ -486,6 +522,7 @@ Gettext Catalog:
searchable: false
aliases:
- pot
primary_extension: .po
extensions:
- .po
- .pot
@@ -493,6 +530,7 @@ Gettext Catalog:
Go:
type: programming
color: "#8d04eb"
primary_extension: .go
extensions:
- .go
@@ -535,6 +573,7 @@ Groovy Server Pages:
- .gsp
aliases:
- gsp
primary_extension: .gsp
extensions:
- .gsp
@@ -551,6 +590,7 @@ HTML+Django:
type: markup
group: HTML
lexer: HTML+Django/Jinja
primary_extension: .mustache # TODO: This is incorrect
extensions:
- .mustache
@@ -566,6 +606,7 @@ HTML+ERB:
HTML+PHP:
type: markup
group: HTML
primary_extension: .phtml
extensions:
- .phtml
@@ -574,6 +615,7 @@ HaXe:
lexer: haXe
ace_mode: haxe
color: "#346d51"
primary_extension: .hx
extensions:
- .hx
- .hxml
@@ -582,12 +624,14 @@ HaXe:
Haml:
group: HTML
type: markup
primary_extension: .haml
extensions:
- .haml
Haskell:
type: programming
color: "#29b544"
primary_extension: .hs
extensions:
- .hs
- .hsc
@@ -599,6 +643,7 @@ INI:
- .ini
- .prefs
- .properties
primary_extension: .ini
filenames:
- .gitconfig
@@ -607,18 +652,21 @@ IRC log:
search_term: irc
aliases:
- irc
primary_extension: .irclog
extensions:
- .weechatlog
Io:
type: programming
color: "#a9188d"
primary_extension: .io
extensions:
- .io
Ioke:
type: programming
color: "#078193"
primary_extension: .ik
extensions:
- .ik
@@ -627,6 +675,7 @@ JSON:
group: JavaScript
ace_mode: json
searchable: false
primary_extension: .json
extensions:
- .json
@@ -634,6 +683,7 @@ Java:
type: programming
ace_mode: java
color: "#b07219"
primary_extension: .java
extensions:
- .java
- .pde
@@ -644,6 +694,7 @@ Java Server Pages:
search_term: jsp
aliases:
- jsp
primary_extension: .jsp
extensions:
- .jsp
@@ -672,17 +723,20 @@ JavaScript:
Julia:
type: programming
primary_extension: .jl
extensions:
- .jl
Kotlin:
type: programming
primary_extension: .kt
extensions:
- .kt
- .ktm
- .kts
LLVM:
primary_extension: .ll
extensions:
- .ll
@@ -699,11 +753,13 @@ Literate Haskell:
search_term: lhs
aliases:
- lhs
primary_extension: .lhs
extensions:
- .lhs
Logtalk:
type: programming
primary_extension: .lgt
extensions:
- .lgt
@@ -711,6 +767,7 @@ Lua:
type: programming
ace_mode: lua
color: "#fa1fa1"
primary_extension: .lua
extensions:
- .lua
- .nse
@@ -719,12 +776,14 @@ Makefile:
extensions:
- .mak
- .mk
primary_extension: .mak
filenames:
- makefile
- Makefile
- GNUmakefile
Mako:
primary_extension: .mako
extensions:
- .mako
- .mao
@@ -753,6 +812,7 @@ Max/MSP:
type: programming
color: "#ce279c"
lexer: Text only
primary_extension: .mxt
extensions:
- .mxt
@@ -765,6 +825,7 @@ Mirah:
lexer: Ruby
search_term: ruby
color: "#c7a938"
primary_extension: .druby
extensions:
- .duby
- .mir
@@ -772,22 +833,26 @@ Mirah:
Moocode:
lexer: MOOCode
primary_extension: .moo
extensions:
- .moo
Myghty:
primary_extension: .myt
extensions:
- .myt
Nemerle:
type: programming
color: "#0d3c6e"
primary_extension: .n
extensions:
- .n
Nimrod:
type: programming
color: "#37775b"
primary_extension: .nim
extensions:
- .nim
- .nimrod
@@ -798,6 +863,7 @@ Nu:
color: "#c9df40"
aliases:
- nush
primary_extension: .nu
extensions:
- .nu
filenames:
@@ -825,6 +891,7 @@ OCaml:
ObjDump:
type: data
lexer: objdump
primary_extension: .objdump
extensions:
- .objdump
@@ -842,12 +909,14 @@ Objective-C:
Objective-J:
type: programming
color: "#ff0c5a"
primary_extension: .j
extensions:
- .j
- .sj
Opa:
type: programming
primary_extension: .opa
extensions:
- .opa
@@ -855,6 +924,7 @@ OpenCL:
type: programming
group: C
lexer: C
primary_extension: .cl
extensions:
- .cl
@@ -873,6 +943,7 @@ PHP:
type: programming
ace_mode: php
color: "#6e03c1"
primary_extension: .php
extensions:
- .aw
- .ctp
@@ -897,6 +968,7 @@ Parrot Internal Representation:
lexer: Text only
aliases:
- pir
primary_extension: .pir
extensions:
- .pir
@@ -906,6 +978,7 @@ Parrot Assembly:
lexer: Text only
aliases:
- pasm
primary_extension: .pasm
extensions:
- .pasm
@@ -933,6 +1006,7 @@ PowerShell:
ace_mode: powershell
aliases:
- posh
primary_extension: .ps1
extensions:
- .ps1
- .psm1
@@ -949,6 +1023,7 @@ Prolog:
Puppet:
type: programming
color: "#cc5555"
primary_extension: .pp
extensions:
- .pp
filenames:
@@ -958,6 +1033,7 @@ Pure Data:
type: programming
color: "#91de79"
lexer: Text only
primary_extension: .pd
extensions:
- .pd
@@ -979,6 +1055,7 @@ Python traceback:
group: Python
lexer: Python Traceback
searchable: false
primary_extension: .pytb
extensions:
- .pytb
@@ -996,6 +1073,7 @@ R:
RHTML:
type: markup
group: HTML
primary_extension: .rhtml
extensions:
- .rhtml
@@ -1014,6 +1092,7 @@ Raw token data:
search_term: raw
aliases:
- raw
primary_extension: .raw
extensions:
- .raw
@@ -1029,6 +1108,7 @@ Rebol:
- .rebol
Redcode:
primary_extension: .cw
extensions:
- .cw
@@ -1070,6 +1150,7 @@ Rust:
type: programming
color: "#dea584"
lexer: Text only
primary_extension: .rs
extensions:
- .rs
@@ -1077,6 +1158,7 @@ SCSS:
type: markup
group: CSS
ace_mode: scss
primary_extension: .scss
extensions:
- .scss
@@ -1084,6 +1166,7 @@ SQL:
type: data
ace_mode: sql
searchable: false
primary_extension: .sql
extensions:
- .sql
@@ -1091,12 +1174,14 @@ Sage:
type: programming
lexer: Python
group: Python
primary_extension: .sage
extensions:
- .sage
Sass:
type: markup
group: CSS
primary_extension: .sass
extensions:
- .sass
@@ -1130,6 +1215,7 @@ Self:
type: programming
color: "#0579aa"
lexer: Text only
primary_extension: .self
extensions:
- .self
@@ -1161,10 +1247,12 @@ Shell:
Smalltalk:
type: programming
color: "#596706"
primary_extension: .st
extensions:
- .st
Smarty:
primary_extension: .tpl
extensions:
- .tpl
@@ -1182,12 +1270,14 @@ SuperCollider:
type: programming
color: "#46390b"
lexer: Text only
primary_extension: .sc
extensions:
- .sc
Tcl:
type: programming
color: "#e4cc98"
primary_extension: .tcl
extensions:
- .tcl
@@ -1215,6 +1305,7 @@ TeX:
Tea:
type: markup
primary_extension: .tea
extensions:
- .tea
@@ -1222,6 +1313,7 @@ Text:
type: data
lexer: Text only
ace_mode: text
primary_extension: .txt
extensions:
- .txt
@@ -1229,6 +1321,7 @@ Textile:
type: markup
lexer: Text only
ace_mode: textile
primary_extension: .textile
extensions:
- .textile
@@ -1247,6 +1340,7 @@ Twig:
type: markup
group: PHP
lexer: HTML+Django/Jinja
primary_extension: .twig
extensions:
- .twig
@@ -1254,6 +1348,7 @@ VHDL:
type: programming
lexer: vhdl
color: "#543978"
primary_extension: .vhdl
extensions:
- .vhd
- .vhdl
@@ -1261,6 +1356,7 @@ VHDL:
Vala:
type: programming
color: "#ee7d06"
primary_extension: .vala
extensions:
- .vala
- .vapi
@@ -1271,6 +1367,7 @@ Verilog:
color: "#848bf3"
overrides:
- .v
primary_extension: .v
extensions:
- .v
@@ -1280,6 +1377,7 @@ VimL:
search_term: vim
aliases:
- vim
primary_extension: .vim
extensions:
- .vim
filenames:
@@ -1331,6 +1429,7 @@ XML:
XQuery:
type: programming
color: "#2700e2"
primary_extension: .xquery
extensions:
- .xq
- .xqm
@@ -1339,12 +1438,14 @@ XQuery:
XS:
lexer: C
primary_extension: .xs
extensions:
- .xs
XSLT:
type: markup
group: XML
primary_extension: .xslt
extensions:
- .xslt
@@ -1367,6 +1468,7 @@ eC:
mupad:
lexer: MuPAD
primary_extension: .mu
extensions:
- .mu
@@ -1374,6 +1476,7 @@ ooc:
type: programming
lexer: Ooc
color: "#b0b77e"
primary_extension: .ooc
extensions:
- .ooc
@@ -1382,6 +1485,7 @@ reStructuredText:
search_term: rst
aliases:
- rst
primary_extension: .rst
extensions:
- .rst
- .rest

View File

@@ -369,7 +369,6 @@ class TestLanguage < Test::Unit::TestCase
def test_eql
assert Language['Ruby'].eql?(Language['Ruby'])
assert !Language['Ruby'].eql?(Language['Python'])
assert !Language['Ruby'].eql?(Language.new(:name => 'Ruby'))
end