2012-03-02 01:39:22 +01:00
|
|
|
import os
|
2012-02-25 13:39:38 +01:00
|
|
|
import json
|
2012-04-26 14:48:38 +02:00
|
|
|
|
2012-02-25 13:39:38 +01:00
|
|
|
import pygments
|
2012-04-26 14:48:38 +02:00
|
|
|
|
2012-03-02 01:39:22 +01:00
|
|
|
from pygments import token
|
|
|
|
from pygments.util import ClassNotFound
|
2012-04-26 14:48:38 +02:00
|
|
|
from pygments.styles import get_style_by_name, STYLE_MAP
|
2012-04-26 13:05:59 +02:00
|
|
|
from pygments.lexers import get_lexer_for_mimetype, HttpLexer
|
2012-02-29 21:21:43 +01:00
|
|
|
from pygments.formatters.terminal import TerminalFormatter
|
2012-04-26 14:48:38 +02:00
|
|
|
from pygments.formatters.terminal256 import Terminal256Formatter
|
|
|
|
|
2012-03-14 00:05:44 +01:00
|
|
|
from . import solarized
|
2012-02-25 13:39:38 +01:00
|
|
|
|
|
|
|
|
2012-03-02 01:39:22 +01:00
|
|
|
DEFAULT_STYLE = 'solarized'
|
2012-03-15 00:11:49 +01:00
|
|
|
AVAILABLE_STYLES = [DEFAULT_STYLE] + list(STYLE_MAP.keys())
|
2012-03-02 01:39:22 +01:00
|
|
|
FORMATTER = (Terminal256Formatter
|
2012-03-04 16:40:02 +01:00
|
|
|
if '256color' in os.environ.get('TERM', '')
|
2012-03-02 01:39:22 +01:00
|
|
|
else TerminalFormatter)
|
2012-02-25 13:39:38 +01:00
|
|
|
|
2012-04-26 13:05:59 +02:00
|
|
|
|
2012-04-26 14:48:38 +02:00
|
|
|
def formatter(style_name):
|
|
|
|
if style_name == 'solarized':
|
|
|
|
style = solarized.SolarizedStyle
|
2012-04-26 13:05:59 +02:00
|
|
|
|
2012-04-26 14:48:38 +02:00
|
|
|
else:
|
|
|
|
style = get_style_by_name(style_name)
|
2012-04-26 13:05:59 +02:00
|
|
|
|
2012-04-26 14:48:38 +02:00
|
|
|
return FORMATTER(style=style)
|