Show More
@@ -34,7 +34,9 b' This includes:' | |||
|
34 | 34 | import re |
|
35 | 35 | |
|
36 | 36 | # Third party |
|
37 |
from pygments.lexers import |
|
|
37 | from pygments.lexers import ( | |
|
38 | BashLexer, HtmlLexer, JavascriptLexer, RubyLexer, PerlLexer, PythonLexer, | |
|
39 | Python3Lexer, TexLexer) | |
|
38 | 40 | from pygments.lexer import ( |
|
39 | 41 | Lexer, DelegatingLexer, RegexLexer, do_insertions, bygroups, using, |
|
40 | 42 | ) |
@@ -51,19 +53,6 b" __all__ = ['build_ipy_lexer', 'IPython3Lexer', 'IPythonLexer'," | |||
|
51 | 53 | 'IPythonPartialTracebackLexer', 'IPythonTracebackLexer', |
|
52 | 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 | 57 | def build_ipy_lexer(python3): |
|
69 | 58 | """Builds IPython lexers depending on the value of `python3`. |
@@ -92,6 +81,36 b' def build_ipy_lexer(python3):' | |||
|
92 | 81 | aliases = ['ipython2', 'ipython'] |
|
93 | 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 | 114 | tokens = PyLexer.tokens.copy() |
|
96 | 115 | tokens['root'] = ipython_tokens + tokens['root'] |
|
97 | 116 |
General Comments 0
You need to be logged in to leave comments.
Login now