Commit 0fe36374d88005379001460a74dc4d6359a35d16

Authored by Dmitriy Zaporozhets
1 parent b73a33ed

Better language detection

Showing 1 changed file with 9 additions and 29 deletions   Show diff stats
@@ -22,40 +22,20 @@ module Utils @@ -22,40 +22,20 @@ module Utils
22 end 22 end
23 23
24 def system_colorize(data, file_name) 24 def system_colorize(data, file_name)
  25 + options = { :encoding => 'utf-8', :linenos => 'True' }
  26 +
  27 + # Try detect language with pygments
  28 + Pygments.highlight data, :filename => file_name, :options => options
  29 + rescue
  30 + # if it fails use manual detection
25 ft = handle_file_type(file_name) 31 ft = handle_file_type(file_name)
26 - Pygments.highlight(data, :lexer => ft, :options => { :encoding => 'utf-8', :linenos => 'True' }) 32 + Pygments.highlight(data, :lexer => ft, :options => options)
27 end 33 end
28 34
29 - def handle_file_type(file_name, mime_type = nil) 35 + def handle_file_type(file_name)
30 case file_name 36 case file_name
31 - when /(\.pl|\.scala|\.java|\.haml|\.jade|\.scaml|\.html|\.sass|\.scss|\.php|\.erb)$/  
32 - $1[1..-1].to_sym  
33 - when /(\.c|\.h|\.idc)$/  
34 - :c  
35 - when /(\.cpp|\.hpp|\.c++|\.h++|\.cc|\.hh|\.cxx|\.hxx)$/  
36 - :cpp  
37 - when /(\.d|\.di)$/  
38 - :d  
39 - when /(\.hs|\.lhs)$/  
40 - :haskell  
41 - when /(\.rb|\.ru|\.rake|Rakefile|\.gemspec|\.rbx|Gemfile)$/ 37 + when /(\.ru|Gemfile)$/
42 :ruby 38 :ruby
43 - when /(\.py|\.pyw|\.sc|SConstruct|SConscript|\.tac)$/  
44 - :python  
45 - when /(\.js|\.json)$/  
46 - :javascript  
47 - when /(\.xml|\.xsl|\.rss|\.xslt|\.xsd|\.wsdl)$/  
48 - :xml  
49 - when /(\.vm|\.fhtml)$/  
50 - :velocity  
51 - when /\.sh$/  
52 - :bash  
53 - when /\.coffee$/  
54 - :coffeescript  
55 - when /(\.yml|\.yaml)$/  
56 - :yaml  
57 - when /\.md$/  
58 - :minid  
59 else 39 else
60 :text 40 :text
61 end 41 end