From 90e2f1c1bd2be844328a786993cfb94ef1d56242 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sun, 29 May 2011 19:41:13 -0500 Subject: [PATCH] Make search term explicit --- lib/linguist/language.rb | 49 ++++++++++---------------------------- lib/linguist/languages.yml | 38 +++++++++++++++++++++++++---- 2 files changed, 47 insertions(+), 40 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index e0d7ff61..a370160a 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -7,7 +7,6 @@ module Linguist @languages = [] @name_index = {} @alias_index = {} - @lexer_index = {} @extension_index = {} # Internal: Create a new Language object @@ -37,17 +36,6 @@ module Linguist @alias_index[name] = language 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| # All Language extensions should be unique. Warn if there is a # duplicate. @@ -165,11 +153,11 @@ module Linguist # Set 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 - @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 []. # Consider using `@lexer.extensions` @@ -201,7 +189,7 @@ module Linguist # Returns an Array of String names attr_reader :aliases - # Deprecated: Get lexer name + # Deprecated: Get code search term # # Examples # @@ -210,7 +198,7 @@ module Linguist # # => "perl" # # Returns the name String - attr_reader :lexer_name + attr_reader :search_term # Public: Get Lexer # @@ -233,17 +221,6 @@ module Linguist name.downcase.gsub(/\s/, '-') 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? # # Returns true or false @@ -307,13 +284,13 @@ module Linguist YAML.load_file(File.expand_path("../languages.yml", __FILE__)).each do |name, options| Language.create( - :name => name, - :aliases => options[:aliases], - :lexer_name => options[:lexer], - :default_lexer => options[:default_lexer], - :extensions => options[:ext], - :popular => popular.include?(name), - :common => common.include?(name) + :name => name, + :aliases => options[:aliases], + :lexer => options[:lexer], + :search_term => options[:search_term], + :extensions => options[:ext], + :popular => popular.include?(name), + :common => common.include?(name) ) end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9615ffbb..bd220b39 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1,11 +1,15 @@ # Defines all Lanaguges known to GitHub # -# lexer - An explicit lexer String (defaults to name.downcase) -# aliases - An Array of additional aliases (implicitly includes name.downcase) -# ext - An Array of associated extensions +# lexer - An explicit lexer String (defaults to name.downcase) +# aliases - An Array of additional aliases (implicitly +# 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: :lexer: aspx-vb + :search_term: aspx-vb :aliases: - aspx - aspx-vb @@ -19,6 +23,7 @@ ASP: - .asp ActionScript: :lexer: as3 + :search_term: as3 :aliases: - as3 :ext: @@ -35,12 +40,14 @@ Arc: - .arc Assembly: :lexer: nasm + :search_term: nasm :aliases: - nasm :ext: - .asm Batchfile: :lexer: bat + :search_term: bat :aliases: - bat :ext: @@ -65,12 +72,14 @@ C: - .h C#: :lexer: csharp + :search_term: csharp :aliases: - csharp :ext: - .cs C++: :lexer: cpp + :search_term: cpp :aliases: - cpp :ext: @@ -88,6 +97,7 @@ CSS: - .css ChucK: :lexer: java + :search_term: java :ext: - .ck Clojure: @@ -99,6 +109,7 @@ CoffeeScript: - Cakefile ColdFusion: :lexer: cfm + :search_term: cfm :aliases: - cfm :ext: @@ -125,6 +136,7 @@ D: - .di Darcs Patch: :lexer: dpatch + :search_term: dpatch :aliases: - dpatch :ext: @@ -148,6 +160,7 @@ Eiffel: - .e Emacs Lisp: :lexer: scheme + :search_term: scheme :aliases: - elisp :ext: @@ -159,6 +172,7 @@ Erlang: - .erl F#: :lexer: ocaml + :search_term: ocaml :ext: - .fs - .fsi @@ -181,14 +195,17 @@ Genshi: - .kid Gentoo Ebuild: :lexer: bash + :search_term: bash :ext: - .ebuild Gentoo Eclass: :lexer: bash + :search_term: bash :ext: - .eclass Gettext Catalog: :lexer: pot + :search_term: pot :aliases: - pot :ext: @@ -236,6 +253,7 @@ INI: - .properties IRC log: :lexer: irc + :search_term: irc :aliases: - irc :ext: @@ -249,6 +267,7 @@ Java: - .pde Groovy: :lexer: java + :search_term: java :ext: - .groovy JavaScript: @@ -264,10 +283,12 @@ JavaScript: - .jake JSON: :lexer: javascript + :search_term: javascript :ext: - .json Literate Haskell: :lexer: lhs + :search_term: lhs :aliases: - lhs :ext: @@ -301,6 +322,7 @@ Max/MSP: - .mxt Mirah: :lexer: ruby + :search_term: ruby :ext: - .duby - .mir @@ -313,6 +335,7 @@ Myghty: - .myt Nu: :lexer: scheme + :search_term: scheme :ext: - .nu - Nukefile @@ -356,6 +379,7 @@ PHP: - .php5 Parrot Internal Representation: :lexer: pir + :search_term: pir :aliases: - pir :ext: @@ -381,6 +405,7 @@ Python: - .pyw Python traceback: :lexer: pytb + :search_term: pytb :aliases: - pytb :ext: @@ -399,6 +424,7 @@ RHTML: - .rhtml Raw token data: :lexer: raw + :search_term: raw :aliases: - raw :ext: @@ -447,7 +473,7 @@ Self: - .self Shell: :lexer: bash - :default_lexer: true + :search_term: bash :aliases: - sh - bash @@ -497,6 +523,7 @@ Verilog: - .v VimL: :lexer: vim + :search_term: vim :aliases: - vim :ext: @@ -527,6 +554,7 @@ XQuery: - .xquery XS: :lexer: c + :search_term: c :ext: - .xs YAML: @@ -535,6 +563,7 @@ YAML: - .yaml Java Server Pages: :lexer: jsp + :search_term: jsp :aliases: - jsp :ext: @@ -547,6 +576,7 @@ ooc: - .ooc reStructuredText: :lexer: rst + :search_term: rst :aliases: - rst :ext: