Show More
@@ -34,7 +34,9 b' This includes:' | |||||
34 | import re |
|
34 | import re | |
35 |
|
35 | |||
36 | # Third party |
|
36 | # Third party | |
37 |
from pygments.lexers import |
|
37 | from pygments.lexers import ( | |
|
38 | BashLexer, HtmlLexer, JavascriptLexer, RubyLexer, PerlLexer, PythonLexer, | |||
|
39 | Python3Lexer, TexLexer) | |||
38 | from pygments.lexer import ( |
|
40 | from pygments.lexer import ( | |
39 | Lexer, DelegatingLexer, RegexLexer, do_insertions, bygroups, using, |
|
41 | Lexer, DelegatingLexer, RegexLexer, do_insertions, bygroups, using, | |
40 | ) |
|
42 | ) | |
@@ -51,19 +53,6 b" __all__ = ['build_ipy_lexer', 'IPython3Lexer', 'IPythonLexer'," | |||||
51 | 'IPythonPartialTracebackLexer', 'IPythonTracebackLexer', |
|
53 | 'IPythonPartialTracebackLexer', 'IPythonTracebackLexer', | |
52 | 'IPythonConsoleLexer', 'IPyLexer'] |
|
54 | 'IPythonConsoleLexer', 'IPyLexer'] | |
53 |
|
55 | |||
54 | ipython_tokens = [ |
|
|||
55 | (r"(?s)(\s*)(%%)(\w+)(.*)", bygroups(Text, Operator, Keyword, Text)), |
|
|||
56 | (r'(?s)(^\s*)(%%!)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(BashLexer))), |
|
|||
57 | (r"(%%?)(\w+)(\?\??)$", bygroups(Operator, Keyword, Operator)), |
|
|||
58 | (r"\b(\?\??)(\s*)$", bygroups(Operator, Text)), |
|
|||
59 | (r'(%)(sx|sc|system)(.*)(\n)', bygroups(Operator, Keyword, |
|
|||
60 | using(BashLexer), Text)), |
|
|||
61 | (r'(%)(\w+)(.*\n)', bygroups(Operator, Keyword, Text)), |
|
|||
62 | (r'^(!!)(.+)(\n)', bygroups(Operator, using(BashLexer), Text)), |
|
|||
63 | (r'(!)(?!=)(.+)(\n)', bygroups(Operator, using(BashLexer), Text)), |
|
|||
64 | (r'^(\s*)(\?\??)(\s*%{0,2}[\w\.\*]*)', bygroups(Text, Operator, Text)), |
|
|||
65 | (r'(\s*%{0,2}[\w\.\*]*)(\?\??)(\s*)$', bygroups(Text, Operator, Text)), |
|
|||
66 | ] |
|
|||
67 |
|
56 | |||
68 | def build_ipy_lexer(python3): |
|
57 | def build_ipy_lexer(python3): | |
69 | """Builds IPython lexers depending on the value of `python3`. |
|
58 | """Builds IPython lexers depending on the value of `python3`. | |
@@ -92,6 +81,36 b' def build_ipy_lexer(python3):' | |||||
92 | aliases = ['ipython2', 'ipython'] |
|
81 | aliases = ['ipython2', 'ipython'] | |
93 | doc = """IPython Lexer""" |
|
82 | doc = """IPython Lexer""" | |
94 |
|
83 | |||
|
84 | ipython_tokens = [ | |||
|
85 | (r'(?s)(\s*)(%%capture)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
86 | (r'(?s)(\s*)(%%debug)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
87 | (r'(?is)(\s*)(%%html)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(HtmlLexer))), | |||
|
88 | (r'(?s)(\s*)(%%javascript)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(JavascriptLexer))), | |||
|
89 | (r'(?s)(\s*)(%%js)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(JavascriptLexer))), | |||
|
90 | (r'(?s)(\s*)(%%latex)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(TexLexer))), | |||
|
91 | (r'(?s)(\s*)(%%pypy)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PerlLexer))), | |||
|
92 | (r'(?s)(\s*)(%%prun)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
93 | (r'(?s)(\s*)(%%pypy)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
94 | (r'(?s)(\s*)(%%python)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
95 | (r'(?s)(\s*)(%%python2)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PythonLexer))), | |||
|
96 | (r'(?s)(\s*)(%%python3)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(Python3Lexer))), | |||
|
97 | (r'(?s)(\s*)(%%ruby)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(RubyLexer))), | |||
|
98 | (r'(?s)(\s*)(%%time)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
99 | (r'(?s)(\s*)(%%timeit)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
100 | (r'(?s)(\s*)(%%writefile)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(PyLexer))), | |||
|
101 | (r"(?s)(\s*)(%%)(\w+)(.*)", bygroups(Text, Operator, Keyword, Text)), | |||
|
102 | (r'(?s)(^\s*)(%%!)([^\n]*\n)(.*)', bygroups(Text, Operator, Text, using(BashLexer))), | |||
|
103 | (r"(%%?)(\w+)(\?\??)$", bygroups(Operator, Keyword, Operator)), | |||
|
104 | (r"\b(\?\??)(\s*)$", bygroups(Operator, Text)), | |||
|
105 | (r'(%)(sx|sc|system)(.*)(\n)', bygroups(Operator, Keyword, | |||
|
106 | using(BashLexer), Text)), | |||
|
107 | (r'(%)(\w+)(.*\n)', bygroups(Operator, Keyword, Text)), | |||
|
108 | (r'^(!!)(.+)(\n)', bygroups(Operator, using(BashLexer), Text)), | |||
|
109 | (r'(!)(?!=)(.+)(\n)', bygroups(Operator, using(BashLexer), Text)), | |||
|
110 | (r'^(\s*)(\?\??)(\s*%{0,2}[\w\.\*]*)', bygroups(Text, Operator, Text)), | |||
|
111 | (r'(\s*%{0,2}[\w\.\*]*)(\?\??)(\s*)$', bygroups(Text, Operator, Text)), | |||
|
112 | ] | |||
|
113 | ||||
95 | tokens = PyLexer.tokens.copy() |
|
114 | tokens = PyLexer.tokens.copy() | |
96 | tokens['root'] = ipython_tokens + tokens['root'] |
|
115 | tokens['root'] = ipython_tokens + tokens['root'] | |
97 |
|
116 |
General Comments 0
You need to be logged in to leave comments.
Login now