Make search term explicit

This commit is contained in:
Joshua Peek
2011-05-29 19:41:13 -05:00
parent ba7c2c759a
commit 90e2f1c1bd
2 changed files with 47 additions and 40 deletions

View File

@@ -7,7 +7,6 @@ module Linguist
@languages = [] @languages = []
@name_index = {} @name_index = {}
@alias_index = {} @alias_index = {}
@lexer_index = {}
@extension_index = {} @extension_index = {}
# Internal: Create a new Language object # Internal: Create a new Language object
@@ -37,17 +36,6 @@ module Linguist
@alias_index[name] = language @alias_index[name] = language
end end
# Set langauge as the default for reverse lexer lookup if
# :default_lexer is set or the language is the same name as its
# lexer.
if attributes[:default_lexer] || language.default_lexer?
@lexer_index[language.lexer_name.downcase] = language
end
# Case-insensitive lexer name index
@lexer_index[language.lexer_name.downcase] ||= language
language.extensions.each do |extension| language.extensions.each do |extension|
# All Language extensions should be unique. Warn if there is a # All Language extensions should be unique. Warn if there is a
# duplicate. # duplicate.
@@ -165,11 +153,11 @@ module Linguist
# Set aliases # Set aliases
@aliases = [default_alias_name] + (attributes[:aliases] || []) @aliases = [default_alias_name] + (attributes[:aliases] || [])
# Use :lexer_name or fallback to `@name.downcase`
@lexer_name = attributes[:lexer_name] || default_alias_name
# Lookup Lexer object # Lookup Lexer object
@lexer = Lexer.find_by_alias(@lexer_name) @lexer = Lexer.find_by_alias(attributes[:lexer] || default_alias_name)
# Set legacy search term
@search_term = attributes[:search_term] || default_alias_name
# Set extensions or default to []. # Set extensions or default to [].
# Consider using `@lexer.extensions` # Consider using `@lexer.extensions`
@@ -201,7 +189,7 @@ module Linguist
# Returns an Array of String names # Returns an Array of String names
attr_reader :aliases attr_reader :aliases
# Deprecated: Get lexer name # Deprecated: Get code search term
# #
# Examples # Examples
# #
@@ -210,7 +198,7 @@ module Linguist
# # => "perl" # # => "perl"
# #
# Returns the name String # Returns the name String
attr_reader :lexer_name attr_reader :search_term
# Public: Get Lexer # Public: Get Lexer
# #
@@ -233,17 +221,6 @@ module Linguist
name.downcase.gsub(/\s/, '-') name.downcase.gsub(/\s/, '-')
end end
# Internal: Is the language using the default lexer
#
# Returns true or false
def default_lexer?
lexer_name == default_alias_name
end
def search_term
lexer_name
end
# Public: Is it popular? # Public: Is it popular?
# #
# Returns true or false # Returns true or false
@@ -307,13 +284,13 @@ module Linguist
YAML.load_file(File.expand_path("../languages.yml", __FILE__)).each do |name, options| YAML.load_file(File.expand_path("../languages.yml", __FILE__)).each do |name, options|
Language.create( Language.create(
:name => name, :name => name,
:aliases => options[:aliases], :aliases => options[:aliases],
:lexer_name => options[:lexer], :lexer => options[:lexer],
:default_lexer => options[:default_lexer], :search_term => options[:search_term],
:extensions => options[:ext], :extensions => options[:ext],
:popular => popular.include?(name), :popular => popular.include?(name),
:common => common.include?(name) :common => common.include?(name)
) )
end end
end end

View File

@@ -1,11 +1,15 @@
# Defines all Lanaguges known to GitHub # Defines all Lanaguges known to GitHub
# #
# lexer - An explicit lexer String (defaults to name.downcase) # lexer - An explicit lexer String (defaults to name.downcase)
# aliases - An Array of additional aliases (implicitly includes name.downcase) # aliases - An Array of additional aliases (implicitly
# ext - An Array of associated extensions # includes name.downcase)
# ext - An Array of associated extensions
# search_term - Deprecated: Some langauges maybe indexed under a
# different alias. Avoid defining new exceptions.
ASP: ASP:
:lexer: aspx-vb :lexer: aspx-vb
:search_term: aspx-vb
:aliases: :aliases:
- aspx - aspx
- aspx-vb - aspx-vb
@@ -19,6 +23,7 @@ ASP:
- .asp - .asp
ActionScript: ActionScript:
:lexer: as3 :lexer: as3
:search_term: as3
:aliases: :aliases:
- as3 - as3
:ext: :ext:
@@ -35,12 +40,14 @@ Arc:
- .arc - .arc
Assembly: Assembly:
:lexer: nasm :lexer: nasm
:search_term: nasm
:aliases: :aliases:
- nasm - nasm
:ext: :ext:
- .asm - .asm
Batchfile: Batchfile:
:lexer: bat :lexer: bat
:search_term: bat
:aliases: :aliases:
- bat - bat
:ext: :ext:
@@ -65,12 +72,14 @@ C:
- .h - .h
C#: C#:
:lexer: csharp :lexer: csharp
:search_term: csharp
:aliases: :aliases:
- csharp - csharp
:ext: :ext:
- .cs - .cs
C++: C++:
:lexer: cpp :lexer: cpp
:search_term: cpp
:aliases: :aliases:
- cpp - cpp
:ext: :ext:
@@ -88,6 +97,7 @@ CSS:
- .css - .css
ChucK: ChucK:
:lexer: java :lexer: java
:search_term: java
:ext: :ext:
- .ck - .ck
Clojure: Clojure:
@@ -99,6 +109,7 @@ CoffeeScript:
- Cakefile - Cakefile
ColdFusion: ColdFusion:
:lexer: cfm :lexer: cfm
:search_term: cfm
:aliases: :aliases:
- cfm - cfm
:ext: :ext:
@@ -125,6 +136,7 @@ D:
- .di - .di
Darcs Patch: Darcs Patch:
:lexer: dpatch :lexer: dpatch
:search_term: dpatch
:aliases: :aliases:
- dpatch - dpatch
:ext: :ext:
@@ -148,6 +160,7 @@ Eiffel:
- .e - .e
Emacs Lisp: Emacs Lisp:
:lexer: scheme :lexer: scheme
:search_term: scheme
:aliases: :aliases:
- elisp - elisp
:ext: :ext:
@@ -159,6 +172,7 @@ Erlang:
- .erl - .erl
F#: F#:
:lexer: ocaml :lexer: ocaml
:search_term: ocaml
:ext: :ext:
- .fs - .fs
- .fsi - .fsi
@@ -181,14 +195,17 @@ Genshi:
- .kid - .kid
Gentoo Ebuild: Gentoo Ebuild:
:lexer: bash :lexer: bash
:search_term: bash
:ext: :ext:
- .ebuild - .ebuild
Gentoo Eclass: Gentoo Eclass:
:lexer: bash :lexer: bash
:search_term: bash
:ext: :ext:
- .eclass - .eclass
Gettext Catalog: Gettext Catalog:
:lexer: pot :lexer: pot
:search_term: pot
:aliases: :aliases:
- pot - pot
:ext: :ext:
@@ -236,6 +253,7 @@ INI:
- .properties - .properties
IRC log: IRC log:
:lexer: irc :lexer: irc
:search_term: irc
:aliases: :aliases:
- irc - irc
:ext: :ext:
@@ -249,6 +267,7 @@ Java:
- .pde - .pde
Groovy: Groovy:
:lexer: java :lexer: java
:search_term: java
:ext: :ext:
- .groovy - .groovy
JavaScript: JavaScript:
@@ -264,10 +283,12 @@ JavaScript:
- .jake - .jake
JSON: JSON:
:lexer: javascript :lexer: javascript
:search_term: javascript
:ext: :ext:
- .json - .json
Literate Haskell: Literate Haskell:
:lexer: lhs :lexer: lhs
:search_term: lhs
:aliases: :aliases:
- lhs - lhs
:ext: :ext:
@@ -301,6 +322,7 @@ Max/MSP:
- .mxt - .mxt
Mirah: Mirah:
:lexer: ruby :lexer: ruby
:search_term: ruby
:ext: :ext:
- .duby - .duby
- .mir - .mir
@@ -313,6 +335,7 @@ Myghty:
- .myt - .myt
Nu: Nu:
:lexer: scheme :lexer: scheme
:search_term: scheme
:ext: :ext:
- .nu - .nu
- Nukefile - Nukefile
@@ -356,6 +379,7 @@ PHP:
- .php5 - .php5
Parrot Internal Representation: Parrot Internal Representation:
:lexer: pir :lexer: pir
:search_term: pir
:aliases: :aliases:
- pir - pir
:ext: :ext:
@@ -381,6 +405,7 @@ Python:
- .pyw - .pyw
Python traceback: Python traceback:
:lexer: pytb :lexer: pytb
:search_term: pytb
:aliases: :aliases:
- pytb - pytb
:ext: :ext:
@@ -399,6 +424,7 @@ RHTML:
- .rhtml - .rhtml
Raw token data: Raw token data:
:lexer: raw :lexer: raw
:search_term: raw
:aliases: :aliases:
- raw - raw
:ext: :ext:
@@ -447,7 +473,7 @@ Self:
- .self - .self
Shell: Shell:
:lexer: bash :lexer: bash
:default_lexer: true :search_term: bash
:aliases: :aliases:
- sh - sh
- bash - bash
@@ -497,6 +523,7 @@ Verilog:
- .v - .v
VimL: VimL:
:lexer: vim :lexer: vim
:search_term: vim
:aliases: :aliases:
- vim - vim
:ext: :ext:
@@ -527,6 +554,7 @@ XQuery:
- .xquery - .xquery
XS: XS:
:lexer: c :lexer: c
:search_term: c
:ext: :ext:
- .xs - .xs
YAML: YAML:
@@ -535,6 +563,7 @@ YAML:
- .yaml - .yaml
Java Server Pages: Java Server Pages:
:lexer: jsp :lexer: jsp
:search_term: jsp
:aliases: :aliases:
- jsp - jsp
:ext: :ext:
@@ -547,6 +576,7 @@ ooc:
- .ooc - .ooc
reStructuredText: reStructuredText:
:lexer: rst :lexer: rst
:search_term: rst
:aliases: :aliases:
- rst - rst
:ext: :ext: