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 |