Commit 0fe36374d88005379001460a74dc4d6359a35d16
1 parent
b73a33ed
Exists in
master
and in
4 other branches
Better language detection
Showing
1 changed file
with
9 additions
and
29 deletions
Show diff stats
lib/utils.rb
| @@ -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 |