Fix Shell lexer

This commit is contained in:
Joshua Peek
2011-05-16 22:51:41 -04:00
parent 09f8b1fb24
commit 92dc3a47f4
3 changed files with 11 additions and 3 deletions

View File

@@ -410,6 +410,7 @@ Self:
- .self - .self
Shell: Shell:
:lexer: bash :lexer: bash
:default_lexer: true
:ext: :ext:
- .sh - .sh
- .zsh - .zsh

View File

@@ -11,10 +11,12 @@ module Linguist
@name_index[language.name.downcase] = language @name_index[language.name.downcase] = language
if language.default_lexer? || !@lexer_index.key?(language.lexer) if attributes[:default_lexer] || language.default_lexer?
@lexer_index[language.lexer.downcase] = language @lexer_index[language.lexer.downcase] = language
end end
@lexer_index[language.lexer.downcase] ||= language
language.extensions.each do |extension| language.extensions.each do |extension|
@extension_index[extension] = language @extension_index[extension] = language
@extension_index[extension.sub(/^./, '')] = language @extension_index[extension.sub(/^./, '')] = language
@@ -87,6 +89,7 @@ module Linguist
Language.create( Language.create(
:name => name, :name => name,
:lexer => options[:lexer], :lexer => options[:lexer],
:default_lexer => options[:default_lexer],
:extensions => options[:ext], :extensions => options[:ext],
:popular => popular.include?(name) :popular => popular.include?(name)
) )

View File

@@ -19,12 +19,16 @@ class TestLanguage < Test::Unit::TestCase
end end
def test_find_by_lexer def test_find_by_lexer
assert_equal Language['C'], Language.find_by_lexer('c')
assert_equal Language['C++'], Language.find_by_lexer('cpp')
assert_equal Language['Java'], Language.find_by_lexer('java')
assert_equal Language['JavaScript'], Language.find_by_lexer('javascript')
assert_equal Language['OCaml'], Language.find_by_lexer('ocaml')
assert_equal Language['Perl'], Language.find_by_lexer('perl') assert_equal Language['Perl'], Language.find_by_lexer('perl')
assert_equal Language['Python'], Language.find_by_lexer('python') assert_equal Language['Python'], Language.find_by_lexer('python')
assert_equal Language['Ruby'], Language.find_by_lexer('ruby') assert_equal Language['Ruby'], Language.find_by_lexer('ruby')
assert_equal Language['C++'], Language.find_by_lexer('cpp')
assert_equal Language['JavaScript'], Language.find_by_lexer('javascript')
assert_equal Language['Scheme'], Language.find_by_lexer('scheme') assert_equal Language['Scheme'], Language.find_by_lexer('scheme')
assert_equal Language['Shell'], Language.find_by_lexer('bash')
assert_equal Language['Text'], Language.find_by_lexer('kt') assert_equal Language['Text'], Language.find_by_lexer('kt')
end end