pygments.rb 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/Rakefile +1 -0
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +1 -2
- data/vendor/pygments-main/AUTHORS +2 -0
- data/vendor/pygments-main/CHANGES +27 -4
- data/vendor/pygments-main/LICENSE +1 -1
- data/vendor/pygments-main/MANIFEST.in +1 -1
- data/vendor/pygments-main/Makefile +1 -1
- data/vendor/pygments-main/REVISION +1 -1
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
- data/vendor/pygments-main/doc/docs/api.rst +23 -0
- data/vendor/pygments-main/doc/docs/cmdline.rst +17 -0
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +42 -3
- data/vendor/pygments-main/external/autopygmentize +28 -11
- data/vendor/pygments-main/external/markdown-processor.py +1 -1
- data/vendor/pygments-main/external/moin-parser.py +1 -1
- data/vendor/pygments-main/external/rst-directive.py +1 -1
- data/vendor/pygments-main/pygments/__init__.py +2 -2
- data/vendor/pygments-main/pygments/cmdline.py +61 -17
- data/vendor/pygments-main/pygments/console.py +1 -1
- data/vendor/pygments-main/pygments/filter.py +1 -1
- data/vendor/pygments-main/pygments/filters/__init__.py +1 -1
- data/vendor/pygments-main/pygments/formatter.py +1 -1
- data/vendor/pygments-main/pygments/formatters/__init__.py +37 -2
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -1
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +1 -1
- data/vendor/pygments-main/pygments/formatters/img.py +38 -1
- data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
- data/vendor/pygments-main/pygments/formatters/latex.py +1 -1
- data/vendor/pygments-main/pygments/formatters/other.py +1 -1
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
- data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
- data/vendor/pygments-main/pygments/lexer.py +1 -1
- data/vendor/pygments-main/pygments/lexers/__init__.py +39 -5
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mapping.py +6 -5
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ampl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/apl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/archetype.py +1 -1
- data/vendor/pygments-main/pygments/lexers/asm.py +21 -10
- data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
- data/vendor/pygments-main/pygments/lexers/basic.py +1 -1
- data/vendor/pygments-main/pygments/lexers/bibtex.py +9 -5
- data/vendor/pygments-main/pygments/lexers/business.py +53 -35
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +1 -1
- data/vendor/pygments-main/pygments/lexers/c_like.py +2 -2
- data/vendor/pygments-main/pygments/lexers/capnproto.py +14 -15
- data/vendor/pygments-main/pygments/lexers/chapel.py +4 -3
- data/vendor/pygments-main/pygments/lexers/clean.py +11 -11
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
- data/vendor/pygments-main/pygments/lexers/configs.py +3 -3
- data/vendor/pygments-main/pygments/lexers/console.py +1 -1
- data/vendor/pygments-main/pygments/lexers/crystal.py +29 -20
- data/vendor/pygments-main/pygments/lexers/csound.py +1 -1
- data/vendor/pygments-main/pygments/lexers/css.py +1 -1
- data/vendor/pygments-main/pygments/lexers/d.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
- data/vendor/pygments-main/pygments/lexers/data.py +1 -1
- data/vendor/pygments-main/pygments/lexers/diff.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dotnet.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dsls.py +4 -4
- data/vendor/pygments-main/pygments/lexers/dylan.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ecl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/elm.py +1 -1
- data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
- data/vendor/pygments-main/pygments/lexers/esoteric.py +9 -7
- data/vendor/pygments-main/pygments/lexers/ezhil.py +4 -3
- data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/forth.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fortran.py +1 -1
- data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/go.py +1 -1
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +2 -2
- data/vendor/pygments-main/pygments/lexers/graph.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
- data/vendor/pygments-main/pygments/lexers/haskell.py +5 -2
- data/vendor/pygments-main/pygments/lexers/haxe.py +1 -1
- data/vendor/pygments-main/pygments/lexers/hdl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
- data/vendor/pygments-main/pygments/lexers/html.py +1 -1
- data/vendor/pygments-main/pygments/lexers/idl.py +2 -2
- data/vendor/pygments-main/pygments/lexers/igor.py +1 -1
- data/vendor/pygments-main/pygments/lexers/inferno.py +1 -1
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -1
- data/vendor/pygments-main/pygments/lexers/iolang.py +1 -1
- data/vendor/pygments-main/pygments/lexers/j.py +1 -1
- data/vendor/pygments-main/pygments/lexers/javascript.py +56 -37
- data/vendor/pygments-main/pygments/lexers/julia.py +3 -3
- data/vendor/pygments-main/pygments/lexers/jvm.py +1 -1
- data/vendor/pygments-main/pygments/lexers/lisp.py +1 -1
- data/vendor/pygments-main/pygments/lexers/make.py +1 -1
- data/vendor/pygments-main/pygments/lexers/markup.py +1 -1
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
- data/vendor/pygments-main/pygments/lexers/modeling.py +1 -1
- data/vendor/pygments-main/pygments/lexers/modula2.py +1 -1
- data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
- data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
- data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/oberon.py +1 -1
- data/vendor/pygments-main/pygments/lexers/objective.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parsers.py +1 -1
- data/vendor/pygments-main/pygments/lexers/pascal.py +2 -2
- data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
- data/vendor/pygments-main/pygments/lexers/perl.py +17 -13
- data/vendor/pygments-main/pygments/lexers/php.py +1 -1
- data/vendor/pygments-main/pygments/lexers/praat.py +1 -1
- data/vendor/pygments-main/pygments/lexers/prolog.py +1 -1
- data/vendor/pygments-main/pygments/lexers/python.py +2 -1
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/r.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rdf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rust.py +41 -30
- data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
- data/vendor/pygments-main/pygments/lexers/scripting.py +1 -1
- data/vendor/pygments-main/pygments/lexers/shell.py +14 -10
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -1
- data/vendor/pygments-main/pygments/lexers/smv.py +28 -24
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/special.py +1 -1
- data/vendor/pygments-main/pygments/lexers/sql.py +1 -1
- data/vendor/pygments-main/pygments/lexers/stata.py +9 -7
- data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/templates.py +48 -17
- data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
- data/vendor/pygments-main/pygments/lexers/text.py +1 -1
- data/vendor/pygments-main/pygments/lexers/textedit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -1
- data/vendor/pygments-main/pygments/lexers/theorem.py +1 -1
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -7
- data/vendor/pygments-main/pygments/lexers/urbi.py +1 -1
- data/vendor/pygments-main/pygments/lexers/varnish.py +3 -3
- data/vendor/pygments-main/pygments/lexers/verification.py +3 -3
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webmisc.py +20 -11
- data/vendor/pygments-main/pygments/lexers/whiley.py +7 -8
- data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
- data/vendor/pygments-main/pygments/lexers/xorg.py +36 -0
- data/vendor/pygments-main/pygments/modeline.py +6 -5
- data/vendor/pygments-main/pygments/plugin.py +12 -18
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +1 -1
- data/vendor/pygments-main/pygments/sphinxext.py +1 -1
- data/vendor/pygments-main/pygments/style.py +1 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +4 -2
- data/vendor/pygments-main/pygments/styles/abap.py +29 -0
- data/vendor/pygments-main/pygments/styles/algol.py +1 -1
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
- data/vendor/pygments-main/pygments/styles/arduino.py +1 -1
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/igor.py +1 -1
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/sas.py +3 -0
- data/vendor/pygments-main/pygments/styles/stata.py +3 -0
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
- data/vendor/pygments-main/pygments/token.py +1 -1
- data/vendor/pygments-main/pygments/unistring.py +1 -1
- data/vendor/pygments-main/pygments/util.py +5 -4
- data/vendor/pygments-main/scripts/check_sources.py +2 -2
- data/vendor/pygments-main/scripts/debug_lexer.py +1 -1
- data/vendor/pygments-main/scripts/get_vimkw.py +1 -1
- data/vendor/pygments-main/setup.cfg +2 -2
- data/vendor/pygments-main/setup.py +3 -3
- metadata +6 -4
- data/vendor/pygments-main/scripts/find_error.py +0 -1
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Lexers for other C-like languages.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
@@ -105,7 +105,7 @@ class ClayLexer(RegexLexer):
|
|
105
105
|
tokens = {
|
106
106
|
'root': [
|
107
107
|
(r'\s', Text),
|
108
|
-
(r'//.*?$', Comment.
|
108
|
+
(r'//.*?$', Comment.Single),
|
109
109
|
(r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
|
110
110
|
(r'\b(public|private|import|as|record|variant|instance'
|
111
111
|
r'|define|overload|default|external|alias'
|
@@ -5,15 +5,14 @@
|
|
5
5
|
|
6
6
|
Lexers for the Cap'n Proto schema language.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
12
12
|
import re
|
13
13
|
|
14
|
-
from pygments.lexer import RegexLexer,
|
15
|
-
from pygments.token import Text, Comment,
|
16
|
-
Number, Punctuation, Literal
|
14
|
+
from pygments.lexer import RegexLexer, default
|
15
|
+
from pygments.token import Text, Comment, Keyword, Name, Literal
|
17
16
|
|
18
17
|
__all__ = ['CapnProtoLexer']
|
19
18
|
|
@@ -30,7 +29,6 @@ class CapnProtoLexer(RegexLexer):
|
|
30
29
|
|
31
30
|
flags = re.MULTILINE | re.UNICODE
|
32
31
|
|
33
|
-
|
34
32
|
tokens = {
|
35
33
|
'root': [
|
36
34
|
(r'#.*?$', Comment.Single),
|
@@ -38,42 +36,43 @@ class CapnProtoLexer(RegexLexer):
|
|
38
36
|
(r'=', Literal, 'expression'),
|
39
37
|
(r':', Name.Class, 'type'),
|
40
38
|
(r'\$', Name.Attribute, 'annotation'),
|
41
|
-
(r'(struct|enum|interface|union|import|using|const|annotation|
|
42
|
-
|
43
|
-
|
44
|
-
(r'[
|
39
|
+
(r'(struct|enum|interface|union|import|using|const|annotation|'
|
40
|
+
r'extends|in|of|on|as|with|from|fixed)\b',
|
41
|
+
Keyword),
|
42
|
+
(r'[\w.]+', Name),
|
43
|
+
(r'[^#@=:$\w]+', Text),
|
45
44
|
],
|
46
45
|
'type': [
|
47
46
|
(r'[^][=;,(){}$]+', Name.Class),
|
48
47
|
(r'[[(]', Name.Class, 'parentype'),
|
49
|
-
(
|
48
|
+
default('#pop'),
|
50
49
|
],
|
51
50
|
'parentype': [
|
52
51
|
(r'[^][;()]+', Name.Class),
|
53
52
|
(r'[[(]', Name.Class, '#push'),
|
54
53
|
(r'[])]', Name.Class, '#pop'),
|
55
|
-
(
|
54
|
+
default('#pop'),
|
56
55
|
],
|
57
56
|
'expression': [
|
58
57
|
(r'[^][;,(){}$]+', Literal),
|
59
58
|
(r'[[(]', Literal, 'parenexp'),
|
60
|
-
(
|
59
|
+
default('#pop'),
|
61
60
|
],
|
62
61
|
'parenexp': [
|
63
62
|
(r'[^][;()]+', Literal),
|
64
63
|
(r'[[(]', Literal, '#push'),
|
65
64
|
(r'[])]', Literal, '#pop'),
|
66
|
-
(
|
65
|
+
default('#pop'),
|
67
66
|
],
|
68
67
|
'annotation': [
|
69
68
|
(r'[^][;,(){}=:]+', Name.Attribute),
|
70
69
|
(r'[[(]', Name.Attribute, 'annexp'),
|
71
|
-
(
|
70
|
+
default('#pop'),
|
72
71
|
],
|
73
72
|
'annexp': [
|
74
73
|
(r'[^][;()]+', Name.Attribute),
|
75
74
|
(r'[[(]', Name.Attribute, '#push'),
|
76
75
|
(r'[])]', Name.Attribute, '#pop'),
|
77
|
-
(
|
76
|
+
default('#pop'),
|
78
77
|
],
|
79
78
|
}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Lexer for the Chapel language.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
@@ -52,7 +52,7 @@ class ChapelLexer(RegexLexer):
|
|
52
52
|
'then', 'use', 'when', 'where', 'while', 'with', 'yield',
|
53
53
|
'zip'), suffix=r'\b'),
|
54
54
|
Keyword),
|
55
|
-
(r'(proc)((?:\s
|
55
|
+
(r'(proc)((?:\s)+)', bygroups(Keyword, Text), 'procname'),
|
56
56
|
(r'(class|module|record|union)(\s+)', bygroups(Keyword, Text),
|
57
57
|
'classname'),
|
58
58
|
|
@@ -96,6 +96,7 @@ class ChapelLexer(RegexLexer):
|
|
96
96
|
(r'[a-zA-Z_][\w$]*', Name.Class, '#pop'),
|
97
97
|
],
|
98
98
|
'procname': [
|
99
|
-
(r'[a-zA-Z_][\w$]
|
99
|
+
(r'([a-zA-Z_][\w$]+|\~[a-zA-Z_][\w$]+|[+*/!~%<>=&^|\-]{1,2})',
|
100
|
+
Name.Function, '#pop'),
|
100
101
|
],
|
101
102
|
}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Lexer for the Clean language.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
@@ -116,7 +116,7 @@ class CleanLexer(ExtendedRegexLexer):
|
|
116
116
|
(r'(?s)/\*.*?\*/', Comment.Multi),
|
117
117
|
|
118
118
|
# Modules, imports, etc.
|
119
|
-
(r'\b((?:implementation|definition|system)\s+)?(module)(\s+)([\w
|
119
|
+
(r'\b((?:implementation|definition|system)\s+)?(module)(\s+)([\w`.]+)',
|
120
120
|
bygroups(Keyword.Namespace, Keyword.Namespace, Text, Name.Class)),
|
121
121
|
(r'(?<=\n)import(?=\s)', Keyword.Namespace, 'import'),
|
122
122
|
(r'(?<=\n)from(?=\s)', Keyword.Namespace, 'fromimport'),
|
@@ -140,7 +140,7 @@ class CleanLexer(ExtendedRegexLexer):
|
|
140
140
|
# Literals
|
141
141
|
(r'\'\\?.(?<!\\)\'', String.Char),
|
142
142
|
(r'\'\\\d+\'', String.Char),
|
143
|
-
(r'\'\\\\\'', String.Char),
|
143
|
+
(r'\'\\\\\'', String.Char), # (special case for '\\')
|
144
144
|
(r'[+\-~]?\s*\d+\.\d+(E[+\-~]?\d+)?\b', Number.Float),
|
145
145
|
(r'[+\-~]?\s*0[0-7]\b', Number.Oct),
|
146
146
|
(r'[+\-~]?\s*0x[0-9a-fA-F]\b', Number.Hex),
|
@@ -150,11 +150,11 @@ class CleanLexer(ExtendedRegexLexer):
|
|
150
150
|
Literal),
|
151
151
|
|
152
152
|
# Qualified names
|
153
|
-
(r'(\')([\w
|
153
|
+
(r'(\')([\w.]+)(\'\.)',
|
154
154
|
bygroups(Punctuation, Name.Namespace, Punctuation)),
|
155
155
|
|
156
156
|
# Everything else is some name
|
157
|
-
(r'([\w
|
157
|
+
(r'([\w`$%/?@]+\.?)*[\w`$%/?@]+', Name),
|
158
158
|
|
159
159
|
# Punctuation
|
160
160
|
(r'[{}()\[\],:;.#]', Punctuation),
|
@@ -171,14 +171,14 @@ class CleanLexer(ExtendedRegexLexer):
|
|
171
171
|
],
|
172
172
|
'fromimport': [
|
173
173
|
include('common'),
|
174
|
-
(r'([\w
|
174
|
+
(r'([\w`.]+)', check_class_not_import),
|
175
175
|
(r'\n', Whitespace, '#pop'),
|
176
176
|
(r'\s', Whitespace),
|
177
177
|
],
|
178
178
|
'fromimportfunc': [
|
179
179
|
include('common'),
|
180
|
-
(r'(::)\s+([^,\s]+)', bygroups(Punctuation, Keyword.Type)),
|
181
|
-
(r'([\w`$()
|
180
|
+
(r'(::)(\s+)([^,\s]+)', bygroups(Punctuation, Text, Keyword.Type)),
|
181
|
+
(r'([\w`$()=\-<>~*\^|+&%/]+)', check_instance_class),
|
182
182
|
(r',', Punctuation),
|
183
183
|
(r'\n', Whitespace, '#pop'),
|
184
184
|
(r'\s', Whitespace),
|
@@ -204,7 +204,7 @@ class CleanLexer(ExtendedRegexLexer):
|
|
204
204
|
include('common'),
|
205
205
|
(words(('from', 'import', 'as', 'qualified'),
|
206
206
|
prefix='(?<=\s)', suffix='(?=\s)'), Keyword.Namespace),
|
207
|
-
(r'[\w
|
207
|
+
(r'[\w`.]+', Name.Class),
|
208
208
|
(r'\n', Whitespace, '#pop'),
|
209
209
|
(r',', Punctuation),
|
210
210
|
(r'[^\S\n]+', Whitespace),
|
@@ -269,7 +269,7 @@ class CleanLexer(ExtendedRegexLexer):
|
|
269
269
|
(r'^(?=\S)', Whitespace, '#pop:3'),
|
270
270
|
(r'[,&]', Punctuation),
|
271
271
|
(r'\[', Punctuation, 'functiondefuniquneq'),
|
272
|
-
(r'[\w`$()
|
272
|
+
(r'[\w`$()=\-<>~*\^|+&%/{}\[\]@]', Name.Function, 'functionname'),
|
273
273
|
(r'\s+', Whitespace),
|
274
274
|
],
|
275
275
|
'functiondefuniquneq': [
|
@@ -281,7 +281,7 @@ class CleanLexer(ExtendedRegexLexer):
|
|
281
281
|
],
|
282
282
|
'functionname': [
|
283
283
|
include('common'),
|
284
|
-
(r'[\w`$()
|
284
|
+
(r'[\w`$()=\-<>~*\^|+&%/]+', Name.Function),
|
285
285
|
(r'(?=\{\|)', Punctuation, 'genericfunction'),
|
286
286
|
default('#pop'),
|
287
287
|
]
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Lexers for configuration file formats.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
@@ -462,7 +462,7 @@ class NginxConfLexer(RegexLexer):
|
|
462
462
|
"""
|
463
463
|
name = 'Nginx configuration file'
|
464
464
|
aliases = ['nginx']
|
465
|
-
filenames = []
|
465
|
+
filenames = ['nginx.conf']
|
466
466
|
mimetypes = ['text/x-nginx-conf']
|
467
467
|
|
468
468
|
tokens = {
|
@@ -584,7 +584,7 @@ class TerraformLexer(RegexLexer):
|
|
584
584
|
(r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
|
585
585
|
(words(('variable', 'resource', 'provider', 'provisioner', 'module'),
|
586
586
|
prefix=r'\b', suffix=r'\b'), Keyword.Reserved, 'function'),
|
587
|
-
(words(('ingress', 'egress', 'listener', 'default', 'connection'),
|
587
|
+
(words(('ingress', 'egress', 'listener', 'default', 'connection', 'alias'),
|
588
588
|
prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
|
589
589
|
('\$\{', String.Interpol, 'var_builtin'),
|
590
590
|
],
|
@@ -5,25 +5,22 @@
|
|
5
5
|
|
6
6
|
Lexer for Crystal.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
12
12
|
import re
|
13
13
|
|
14
|
-
from pygments.lexer import
|
15
|
-
bygroups, default, LexerContext,
|
14
|
+
from pygments.lexer import ExtendedRegexLexer, include, \
|
15
|
+
bygroups, default, LexerContext, words
|
16
16
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
17
|
-
Number, Punctuation, Error
|
18
|
-
from pygments.util import shebang_matches
|
17
|
+
Number, Punctuation, Error
|
19
18
|
|
20
19
|
__all__ = ['CrystalLexer']
|
21
20
|
|
22
21
|
line_re = re.compile('.*?\n')
|
23
22
|
|
24
23
|
|
25
|
-
|
26
|
-
|
27
24
|
CRYSTAL_OPERATORS = [
|
28
25
|
'!=', '!~', '!', '%', '&&', '&', '**', '*', '+', '-', '/', '<=>', '<<', '<=', '<',
|
29
26
|
'===', '==', '=~', '=', '>=', '>>', '>', '[]=', '[]?', '[]', '^', '||', '|', '~'
|
@@ -33,6 +30,8 @@ CRYSTAL_OPERATORS = [
|
|
33
30
|
class CrystalLexer(ExtendedRegexLexer):
|
34
31
|
"""
|
35
32
|
For `Crystal <http://crystal-lang.org>`_ source code.
|
33
|
+
|
34
|
+
.. versionadded:: 2.2
|
36
35
|
"""
|
37
36
|
|
38
37
|
name = 'Crystal'
|
@@ -48,9 +47,9 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
48
47
|
|
49
48
|
start = match.start(1)
|
50
49
|
yield start, Operator, match.group(1) # <<-?
|
51
|
-
yield match.start(2), String.Heredoc, match.group(2)
|
52
|
-
yield match.start(3), String.Delimiter, match.group(3)
|
53
|
-
yield match.start(4), String.Heredoc, match.group(4)
|
50
|
+
yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
|
51
|
+
yield match.start(3), String.Delimiter, match.group(3) # heredoc name
|
52
|
+
yield match.start(4), String.Heredoc, match.group(4) # quote again
|
54
53
|
|
55
54
|
heredocstack = ctx.__dict__.setdefault('heredocstack', [])
|
56
55
|
outermost = not bool(heredocstack)
|
@@ -211,17 +210,21 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
211
210
|
# macros
|
212
211
|
(words('''
|
213
212
|
debugger record pp assert_responds_to spawn parallel
|
214
|
-
getter setter property delegate def_hash def_equals def_equals_and_hash
|
213
|
+
getter setter property delegate def_hash def_equals def_equals_and_hash
|
214
|
+
forward_missing_to
|
215
215
|
'''.split(), suffix=r'\b'), Name.Builtin.Pseudo),
|
216
216
|
(r'getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b', Name.Builtin.Pseudo),
|
217
217
|
# builtins
|
218
218
|
# http://crystal-lang.org/api/toplevel.html
|
219
219
|
(words('''
|
220
220
|
Object Value Struct Reference Proc Class Nil Symbol Enum Void
|
221
|
-
Bool Number Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64
|
221
|
+
Bool Number Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64
|
222
|
+
Float Float32 Float64 Char String
|
222
223
|
Pointer Slice Range Exception Regex
|
223
|
-
Mutex StaticArray Array Hash Set Tuple Deque Box Process File
|
224
|
-
|
224
|
+
Mutex StaticArray Array Hash Set Tuple Deque Box Process File
|
225
|
+
Dir Time Channel Concurrent Scheduler
|
226
|
+
abort at_exit caller delay exit fork future get_stack_top gets
|
227
|
+
lazy loop main p print printf puts
|
225
228
|
raise rand read_line sleep sprintf system with_color
|
226
229
|
'''.split(), prefix=r'(?<!\.)', suffix=r'\b'), Name.Builtin),
|
227
230
|
# normal heredocs
|
@@ -274,12 +277,16 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
274
277
|
bygroups(Number.Hex, Text, Operator)),
|
275
278
|
(r'(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?',
|
276
279
|
bygroups(Number.Bin, Text, Operator)),
|
277
|
-
# 3 separate expressions for floats because any of the 3 optional
|
278
|
-
|
280
|
+
# 3 separate expressions for floats because any of the 3 optional
|
281
|
+
# parts makes it a float
|
282
|
+
(r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?'
|
283
|
+
r'(?:_?f[0-9]+)?)(\s*)([/?])?',
|
279
284
|
bygroups(Number.Float, Text, Operator)),
|
280
|
-
(r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)
|
285
|
+
(r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)'
|
286
|
+
r'(?:_?f[0-9]+)?)(\s*)([/?])?',
|
281
287
|
bygroups(Number.Float, Text, Operator)),
|
282
|
-
(r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?
|
288
|
+
(r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?'
|
289
|
+
r'(?:_?f[0-9]+))(\s*)([/?])?',
|
283
290
|
bygroups(Number.Float, Text, Operator)),
|
284
291
|
(r'(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?',
|
285
292
|
bygroups(Number.Integer, Text, Operator)),
|
@@ -301,7 +308,8 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
301
308
|
(r'\{%', String.Interpol, 'in-macro-control'),
|
302
309
|
(r'\{\{', String.Interpol, 'in-macro-expr'),
|
303
310
|
# attributes
|
304
|
-
(r'(@\[)(\s*)([A-Z]\w*)',
|
311
|
+
(r'(@\[)(\s*)([A-Z]\w*)',
|
312
|
+
bygroups(Operator, Text, Name.Decorator), 'in-attr'),
|
305
313
|
# this is needed because Crystal attributes can look
|
306
314
|
# like keywords (class) or like this: ` ?!?
|
307
315
|
(words(CRYSTAL_OPERATORS, prefix=r'(\.|::)'),
|
@@ -325,7 +333,8 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
325
333
|
],
|
326
334
|
'classname': [
|
327
335
|
(r'[A-Z_]\w*', Name.Class),
|
328
|
-
(r'(\()(\s*)([A-Z_]\w*)(\s*)(\))',
|
336
|
+
(r'(\()(\s*)([A-Z_]\w*)(\s*)(\))',
|
337
|
+
bygroups(Punctuation, Text, Name.Class, Text, Punctuation)),
|
329
338
|
default('#pop')
|
330
339
|
],
|
331
340
|
'in-intp': [
|