diff options
| author | Joshua Peek <josh@joshpeek.com> | 2012-07-20 15:30:53 -0500 |
|---|---|---|
| committer | Joshua Peek <josh@joshpeek.com> | 2012-07-20 15:30:53 -0500 |
| commit | 0867e7b69bb9a9d21a439ab37d2530b508c2293a (patch) | |
| tree | 844fae68c39e2c6331e2c41231cd4f1a0db53cfa /lib | |
| parent | 2637d8dc55a228d7aec793016632aed2dbf052d3 (diff) | |
Remove old language disambiguation functions
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/linguist/blob_helper.rb | 151 | ||||
| -rw-r--r-- | lib/linguist/language.rb | 7 |
2 files changed, 0 insertions, 158 deletions
diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index 8f2941e..84a9bda 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -446,17 +446,9 @@ module Linguist # Internal: Disambiguates between multiple language extensions. # - # Delegates to "guess_EXTENSION_language". - # - # Please add additional test coverage to - # `test/test_blob.rb#test_language` if you add another method. - # # Returns a Language or nil. def disambiguate_extension_language if Language.ambiguous?(extname) - # name = "guess_#{extname.sub(/^\./, '')}_language" - # send(name) if respond_to?(name) - possible_languages = Language.all.select { |l| l.extensions.include?(extname) } if possible_languages.any? if result = Classifier.instance.classify(data, possible_languages).first @@ -466,142 +458,6 @@ module Linguist end end - # Internal: Guess language of .cls files - # - # Returns a Language. - def guess_cls_language - if lines.grep(/^(%|\\)/).any? - Language['TeX'] - elsif lines.grep(/^\s*(CLASS|METHOD|INTERFACE).*:\s*/i).any? || lines.grep(/^\s*(USING|DEFINE)/i).any? - Language['OpenEdge ABL'] - elsif lines.grep(/\{$/).any? || lines.grep(/\}$/).any? - Language['Apex'] - elsif lines.grep(/^(\'\*|Attribute|Option|Sub|Private|Protected|Public|Friend)/i).any? - Language['Visual Basic'] - else - # The most common language should be the fallback - Language['TeX'] - end - end - - # Internal: Guess language of header files (.h). - # - # Returns a Language. - def guess_h_language - if lines.grep(/^@(interface|property|private|public|end)/).any? - Language['Objective-C'] - elsif lines.grep(/^class |^\s+(public|protected|private):/).any? - Language['C++'] - else - Language['C'] - end - end - - # Internal: Guess language of .m files. - # - # Objective-C heuristics: - # * Keywords ("#import", "#include", "#ifdef", #define, "@end") or "//" and opening "\*" comments - # - # Matlab heuristics: - # * Leading "function " of "classdef " keyword - # * "%" comments - # - # Note: All "#" keywords, e.g., "#import", are guaranteed to be Objective-C. Because the ampersand - # is used to created function handles and anonymous functions in Matlab, most "@" keywords are not - # safe heuristics. However, "end" is a reserved term in Matlab and can't be used to create a valid - # function handle. Because @end is required to close any @implementation, @property, @interface, - # @synthesize, etc. directive in Objective-C, only @end needs to be checked for. - # - # Returns a Language. - def guess_m_language - # Objective-C keywords or comments - if lines.grep(/^#(import|include|ifdef|define)|@end/).any? || lines.grep(/^\s*\/\//).any? || lines.grep(/^\s*\/\*/).any? - Language['Objective-C'] - - # Matlab file function or class or comments - elsif lines.any? && lines.first.match(/^\s*(function |classdef )/) || lines.grep(/^\s*%/).any? - Language['Matlab'] - - # Fallback to Objective-C, don't want any Matlab false positives - else - Language['Objective-C'] - end - end - - # Internal: Guess language of .pl files - # - # The rules for disambiguation are: - # - # 1. Many perl files begin with a shebang - # 2. Most Prolog source files have a rule somewhere (marked by the :- operator) - # 3. Default to Perl, because it is more popular - # - # Returns a Language. - def guess_pl_language - if shebang_script == 'perl' - Language['Perl'] - elsif lines.grep(/:-/).any? - Language['Prolog'] - else - Language['Perl'] - end - end - - # Internal: Guess language of .r files. - # - # Returns a Language. - def guess_r_language - if lines.grep(/(rebol|(:\s+func|make\s+object!|^\s*context)\s*\[)/i).any? - Language['Rebol'] - else - Language['R'] - end - end - - # Internal: Guess language of .t files. - # - # Returns a Language. - def guess_t_language - score = 0 - score += 1 if lines.grep(/^% /).any? - score += data.gsub(/ := /).count - score += data.gsub(/proc |procedure |fcn |function /).count - score += data.gsub(/var \w+: \w+/).count - - # Tell-tale signs its gotta be Perl - if lines.grep(/^(my )?(sub |\$|@|%)\w+/).any? - score = 0 - end - - if score >= 3 - Language['Turing'] - else - Language['Perl'] - end - end - - # Internal: Guess language of .v files. - # - # Returns a Language - def guess_v_language - if lines.grep(/^(\/\*|\/\/|module|parameter|input|output|wire|reg|always|initial|begin|\`)/).any? - Language['Verilog'] - else - Language['Coq'] - end - end - - # Internal: Guess language of .gsp files. - # - # Returns a Language. - def guess_gsp_language - if lines.grep(/<%|<%@|\$\{|<%|<g:|<meta name="layout"|<r:/).any? - Language['Groovy Server Pages'] - else - Language['Gosu'] - end - end - # Internal: Guess language from the first line. # # Look for leading "<?php" in Drupal files @@ -710,12 +566,5 @@ module Linguist '' end end - - Language.overridden_extensions.each do |extension| - name = "guess_#{extension.sub(/^\./, '')}_language".to_sym - unless instance_methods.map(&:to_sym).include?(name) - raise NotImplementedError, "Language##{name} was not defined" - end - end end end diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 76d1855..85e3426 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -26,13 +26,6 @@ module Linguist @overrides.include?(extension) end - # Internal: Return overridden extensions. - # - # Returns extensions Array. - def self.overridden_extensions - @overrides.keys - end - # Internal: Create a new Language object # # attributes - A hash of attributes |
