pygments.rb 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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': [
|