##// END OF EJS Templates
Comment & Refactor, utils and nbconvert main.
Comment & Refactor, utils and nbconvert main.

File last commit:

r10673:70e4dc3c
r10673:70e4dc3c
Show More
lexers.py
46 lines | 1.7 KiB | text/x-python | PythonLexer
David Warde-Farley
Introduce standard structure from coding guidelines in converters/.
r8789 """A custom pygments lexer for IPython code cells.
Informs The pygments highlighting library of the quirks of IPython's superset
of Python -- magic commands, !shell commands, etc.
"""
#-----------------------------------------------------------------------------
Jonathan Frederic
Comment & Refactor, utils and nbconvert main.
r10673 # Copyright (c) 2013, the IPython Development Team.
David Warde-Farley
Introduce standard structure from coding guidelines in converters/.
r8789 #
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
MinRK
add IPython lexer for pygments
r7912 #-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
David Warde-Farley
Introduce standard structure from coding guidelines in converters/.
r8789 # Third-party imports
MinRK
add IPython lexer for pygments
r7912 from pygments.lexers import PythonLexer, BashLexer
from pygments.lexer import bygroups, using
David Warde-Farley
Unused imports.
r8748 from pygments.token import Keyword, Operator, Text
MinRK
add IPython lexer for pygments
r7912 #-----------------------------------------------------------------------------
David Warde-Farley
More descriptive comment headers.
r8808 # Class declarations
MinRK
add IPython lexer for pygments
r7912 #-----------------------------------------------------------------------------
class IPythonLexer(PythonLexer):
Jonathan Frederic
Comment & Refactor, utils and nbconvert main.
r10673 """
Pygments Lexer for use with IPython code. Inherits from
PythonLexer and adds information about IPython specific
keywords (i.e. magic commands, shell commands, etc.)
"""
#Basic properties
MinRK
add IPython lexer for pygments
r7912 name = 'IPython'
aliases = ['ip', 'ipython']
filenames = ['*.ipy']
Jonathan Frederic
Comment & Refactor, utils and nbconvert main.
r10673
#Highlighting information
MinRK
add IPython lexer for pygments
r7912 tokens = PythonLexer.tokens.copy()
tokens['root'] = [
David Warde-Farley
PEP8-ify rest of the repository.
r8749 (r'(\%+)(\w+)\s+(\.*)(\n)', bygroups(Operator, Keyword,
using(BashLexer), Text)),
MinRK
add IPython lexer for pygments
r7912 (r'(\%+)(\w+)\b', bygroups(Operator, Keyword)),
(r'^(!)(.+)(\n)', bygroups(Operator, using(BashLexer), Text)),
Jonathan Frederic
Comment & Refactor, utils and nbconvert main.
r10673 ] + tokens['root']