git » git-arr » commit bad8c52

Fall back to guess the lexer by content

author Alberto Bertogli
2012-11-18 10:39:45 UTC
committer Alberto Bertogli
2012-11-18 14:55:27 UTC
parent 62da3ebc08949d60a9d7b6ce84d9fe6ed68110db

Fall back to guess the lexer by content

If we can't guess the lexer by the file name, try to guess based on the
content.

This allows pygments to colorize extension-less files, usually scripts.

Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

utils.py +6 -2

diff --git a/utils.py b/utils.py
index cee4bb7..039d02b 100644
--- a/utils.py
+++ b/utils.py
@@ -50,9 +50,13 @@ def colorize_diff(s):
 
 def colorize_blob(fname, s):
     try:
-        lexer = lexers.guess_lexer_for_filename(fname, s)
+        lexer = lexers.guess_lexer_for_filename(fname, s, encoding = 'utf-8')
     except lexers.ClassNotFound:
-        lexer = lexers.TextLexer(encoding = 'utf-8')
+        try:
+            lexer = lexers.guess_lexer(s[:200], encoding = 'utf-8')
+        except lexers.ClassNotFound:
+            lexer = lexers.TextLexer(encoding = 'utf-8')
+
     formatter = HtmlFormatter(encoding = 'utf-8',
                     cssclass = 'source_code',
                     linenos = 'table')