pygments.rb 2.0.0 → 2.1.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/.github/workflows/ci.yml +12 -0
- data/.rubocop.yml +18 -0
- data/CHANGELOG.adoc +4 -0
- data/Rakefile +1 -3
- data/bench.rb +9 -4
- data/{cache-lexers.rb → cache_lexers.rb} +0 -0
- data/lib/pygments/lexer.rb +1 -1
- data/lib/pygments/popen.rb +129 -127
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +1 -1
- data/test/test_pygments.rb +6 -8
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/AUTHORS +5 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/INSTALLER +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/LICENSE +1 -1
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/METADATA +8 -9
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/REQUESTED +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/WHEEL +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/entry_points.txt +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/top_level.txt +0 -0
- data/vendor/pygments-main/pygments/__init__.py +2 -3
- data/vendor/pygments-main/pygments/__main__.py +1 -2
- data/vendor/pygments-main/pygments/cmdline.py +179 -159
- data/vendor/pygments-main/pygments/console.py +1 -2
- data/vendor/pygments-main/pygments/filter.py +1 -2
- data/vendor/pygments-main/pygments/filters/__init__.py +1 -2
- data/vendor/pygments-main/pygments/formatter.py +1 -2
- data/vendor/pygments-main/pygments/formatters/__init__.py +2 -3
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -2
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
- data/vendor/pygments-main/pygments/formatters/html.py +33 -18
- data/vendor/pygments-main/pygments/formatters/img.py +24 -10
- data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
- data/vendor/pygments-main/pygments/formatters/latex.py +8 -9
- data/vendor/pygments-main/pygments/formatters/other.py +7 -10
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -2
- data/vendor/pygments-main/pygments/formatters/svg.py +5 -4
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -2
- data/vendor/pygments-main/pygments/formatters/terminal256.py +24 -3
- data/vendor/pygments-main/pygments/lexer.py +7 -6
- data/vendor/pygments-main/pygments/lexers/__init__.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +16 -12
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_mapping.py +6 -3
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +91 -55
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/actionscript.py +7 -8
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
- data/vendor/pygments-main/pygments/lexers/algebra.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
- data/vendor/pygments-main/pygments/lexers/ampl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/apl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/archetype.py +2 -3
- data/vendor/pygments-main/pygments/lexers/arrow.py +1 -2
- data/vendor/pygments-main/pygments/lexers/asm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
- data/vendor/pygments-main/pygments/lexers/bare.py +1 -2
- data/vendor/pygments-main/pygments/lexers/basic.py +3 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -2
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -5
- data/vendor/pygments-main/pygments/lexers/business.py +3 -4
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +2 -4
- data/vendor/pygments-main/pygments/lexers/c_like.py +1 -2
- data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -2
- data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +3 -4
- data/vendor/pygments-main/pygments/lexers/clean.py +1 -2
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +6 -5
- data/vendor/pygments-main/pygments/lexers/console.py +1 -2
- data/vendor/pygments-main/pygments/lexers/crystal.py +53 -79
- data/vendor/pygments-main/pygments/lexers/csound.py +1 -2
- data/vendor/pygments-main/pygments/lexers/css.py +11 -8
- data/vendor/pygments-main/pygments/lexers/d.py +3 -4
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
- data/vendor/pygments-main/pygments/lexers/data.py +2 -3
- data/vendor/pygments-main/pygments/lexers/devicetree.py +1 -2
- data/vendor/pygments-main/pygments/lexers/diff.py +1 -2
- data/vendor/pygments-main/pygments/lexers/dotnet.py +7 -8
- data/vendor/pygments-main/pygments/lexers/dsls.py +3 -4
- data/vendor/pygments-main/pygments/lexers/dylan.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ecl.py +4 -6
- data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/elm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/email.py +1 -2
- data/vendor/pygments-main/pygments/lexers/erlang.py +1 -2
- data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -2
- data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/floscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
- data/vendor/pygments-main/pygments/lexers/fortran.py +9 -7
- data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +1 -2
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
- data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
- data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/go.py +2 -3
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -2
- data/vendor/pygments-main/pygments/lexers/graph.py +1 -2
- data/vendor/pygments-main/pygments/lexers/graphics.py +3 -4
- data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +1 -2
- data/vendor/pygments-main/pygments/lexers/haxe.py +3 -4
- data/vendor/pygments-main/pygments/lexers/hdl.py +2 -6
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
- data/vendor/pygments-main/pygments/lexers/html.py +7 -8
- data/vendor/pygments-main/pygments/lexers/idl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/igor.py +1 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +1 -2
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -2
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
- data/vendor/pygments-main/pygments/lexers/j.py +2 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +57 -61
- data/vendor/pygments-main/pygments/lexers/julia.py +1 -2
- data/vendor/pygments-main/pygments/lexers/jvm.py +174 -108
- data/vendor/pygments-main/pygments/lexers/lisp.py +7 -8
- data/vendor/pygments-main/pygments/lexers/make.py +3 -4
- data/vendor/pygments-main/pygments/lexers/markup.py +11 -14
- data/vendor/pygments-main/pygments/lexers/math.py +1 -2
- data/vendor/pygments-main/pygments/lexers/matlab.py +2644 -84
- data/vendor/pygments-main/pygments/lexers/mime.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ml.py +7 -8
- data/vendor/pygments-main/pygments/lexers/modeling.py +1 -2
- data/vendor/pygments-main/pygments/lexers/modula2.py +3 -4
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/oberon.py +1 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +3 -4
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +25 -26
- data/vendor/pygments-main/pygments/lexers/pascal.py +1 -2
- data/vendor/pygments-main/pygments/lexers/pawn.py +2 -5
- data/vendor/pygments-main/pygments/lexers/perl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/php.py +3 -4
- data/vendor/pygments-main/pygments/lexers/pointless.py +1 -2
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -2
- data/vendor/pygments-main/pygments/lexers/praat.py +1 -2
- data/vendor/pygments-main/pygments/lexers/prolog.py +3 -4
- data/vendor/pygments-main/pygments/lexers/promql.py +1 -2
- data/vendor/pygments-main/pygments/lexers/python.py +19 -12
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -2
- data/vendor/pygments-main/pygments/lexers/r.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rdf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ride.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ruby.py +30 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +1 -2
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scripting.py +5 -6
- data/vendor/pygments-main/pygments/lexers/sgf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/shell.py +5 -10
- data/vendor/pygments-main/pygments/lexers/sieve.py +1 -2
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -2
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -2
- data/vendor/pygments-main/pygments/lexers/smv.py +1 -2
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/solidity.py +1 -2
- data/vendor/pygments-main/pygments/lexers/special.py +29 -28
- data/vendor/pygments-main/pygments/lexers/sql.py +8 -13
- data/vendor/pygments-main/pygments/lexers/stata.py +1 -2
- data/vendor/pygments-main/pygments/lexers/supercollider.py +3 -4
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/templates.py +15 -16
- data/vendor/pygments-main/pygments/lexers/teraterm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/testing.py +1 -2
- data/vendor/pygments-main/pygments/lexers/text.py +1 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +3 -4
- data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -2
- data/vendor/pygments-main/pygments/lexers/theorem.py +7 -5
- data/vendor/pygments-main/pygments/lexers/tnt.py +1 -2
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -2
- data/vendor/pygments-main/pygments/lexers/urbi.py +3 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +1 -2
- data/vendor/pygments-main/pygments/lexers/varnish.py +2 -3
- data/vendor/pygments-main/pygments/lexers/verification.py +1 -2
- data/vendor/pygments-main/pygments/lexers/web.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webidl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webmisc.py +5 -5
- data/vendor/pygments-main/pygments/lexers/whiley.py +1 -2
- data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
- data/vendor/pygments-main/pygments/lexers/xorg.py +1 -2
- data/vendor/pygments-main/pygments/lexers/yang.py +1 -2
- data/vendor/pygments-main/pygments/lexers/zig.py +1 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -2
- data/vendor/pygments-main/pygments/plugin.py +2 -3
- data/vendor/pygments-main/pygments/regexopt.py +1 -2
- data/vendor/pygments-main/pygments/scanner.py +1 -2
- data/vendor/pygments-main/pygments/sphinxext.py +1 -2
- data/vendor/pygments-main/pygments/style.py +3 -4
- data/vendor/pygments-main/pygments/styles/__init__.py +3 -2
- data/vendor/pygments-main/pygments/styles/abap.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
- data/vendor/pygments-main/pygments/styles/arduino.py +1 -2
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
- data/vendor/pygments-main/pygments/styles/borland.py +1 -2
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
- data/vendor/pygments-main/pygments/styles/default.py +1 -2
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +1 -2
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
- data/vendor/pygments-main/pygments/styles/manni.py +1 -2
- data/vendor/pygments-main/pygments/styles/material.py +118 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +1 -2
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
- data/vendor/pygments-main/pygments/styles/native.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
- data/vendor/pygments-main/pygments/styles/sas.py +1 -2
- data/vendor/pygments-main/pygments/styles/solarized.py +4 -2
- data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/tango.py +1 -2
- data/vendor/pygments-main/pygments/styles/trac.py +1 -2
- data/vendor/pygments-main/pygments/styles/vim.py +1 -2
- data/vendor/pygments-main/pygments/styles/vs.py +1 -2
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
- data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
- data/vendor/pygments-main/pygments/token.py +1 -2
- data/vendor/pygments-main/pygments/unistring.py +1 -2
- data/vendor/pygments-main/pygments/util.py +2 -5
- metadata +21 -14
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +0 -482
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.chapel
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexer for the Chapel language.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -88,8 +87,8 @@ class ChapelLexer(RegexLexer):
|
|
88
87
|
(r'[0-9]+', Number.Integer),
|
89
88
|
|
90
89
|
# strings
|
91
|
-
(r'"(\\\\|\\
|
92
|
-
(r"'(\\\\|\\
|
90
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
91
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
93
92
|
|
94
93
|
# tokens
|
95
94
|
(r'(=|\+=|-=|\*=|/=|\*\*=|%=|&=|\|=|\^=|&&=|\|\|=|<<=|>>=|'
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.clean
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexer for the Clean language.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.compiled
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Just export lexer classes previously contained in this module.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.configs
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for configuration file formats.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -40,7 +39,7 @@ class IniLexer(RegexLexer):
|
|
40
39
|
(r'\s+', Text),
|
41
40
|
(r'[;#].*', Comment.Single),
|
42
41
|
(r'\[.*?\]$', Keyword),
|
43
|
-
(r'(.*?)([ \t]*)(=)([ \t]*)(
|
42
|
+
(r'(.*?)([ \t]*)(=)([ \t]*)([^\t\n]*)',
|
44
43
|
bygroups(Name.Attribute, Text, Operator, Text, String)),
|
45
44
|
# standalone option, supported by some INI parsers
|
46
45
|
(r'(.+?)$', Name.Attribute),
|
@@ -302,8 +301,10 @@ class ApacheConfLexer(RegexLexer):
|
|
302
301
|
'root': [
|
303
302
|
(r'\s+', Text),
|
304
303
|
(r'#(.*\\\n)+.*$|(#.*?)$', Comment),
|
305
|
-
(r'(<[^\s>]
|
304
|
+
(r'(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)',
|
306
305
|
bygroups(Name.Tag, Text, String, Name.Tag)),
|
306
|
+
(r'(</[^\s>]+)(>)',
|
307
|
+
bygroups(Name.Tag, Name.Tag)),
|
307
308
|
(r'[a-z]\w*', Name.Builtin, 'value'),
|
308
309
|
(r'\.+', Text),
|
309
310
|
],
|
@@ -909,7 +910,7 @@ class TOMLLexer(RegexLexer):
|
|
909
910
|
(r'\s+', Text),
|
910
911
|
(r'#.*?$', Comment.Single),
|
911
912
|
# Basic string
|
912
|
-
(r'"(\\\\|\\
|
913
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
913
914
|
# Literal string
|
914
915
|
(r'\'\'\'(.*)\'\'\'', String),
|
915
916
|
(r'\'[^\']*\'', String),
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.console
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for misc console output.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.crystal
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexer for Crystal.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -57,8 +56,11 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
57
56
|
|
58
57
|
ctx.pos = match.start(5)
|
59
58
|
ctx.end = match.end(5)
|
60
|
-
# this may find other heredocs
|
61
|
-
|
59
|
+
# this may find other heredocs, so limit the recursion depth
|
60
|
+
if len(heredocstack) < 100:
|
61
|
+
yield from self.get_tokens_unprocessed(context=ctx)
|
62
|
+
else:
|
63
|
+
yield ctx.pos, String.Heredoc, match.group(5)
|
62
64
|
ctx.pos = match.end()
|
63
65
|
|
64
66
|
if outermost:
|
@@ -86,27 +88,11 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
86
88
|
del heredocstack[:]
|
87
89
|
|
88
90
|
def gen_crystalstrings_rules():
|
89
|
-
def intp_regex_callback(self, match, ctx):
|
90
|
-
yield match.start(1), String.Regex, match.group(1) # begin
|
91
|
-
nctx = LexerContext(match.group(3), 0, ['interpolated-regex'])
|
92
|
-
for i, t, v in self.get_tokens_unprocessed(context=nctx):
|
93
|
-
yield match.start(3)+i, t, v
|
94
|
-
yield match.start(4), String.Regex, match.group(4) # end[imsx]*
|
95
|
-
ctx.pos = match.end()
|
96
|
-
|
97
|
-
def intp_string_callback(self, match, ctx):
|
98
|
-
yield match.start(1), String.Other, match.group(1)
|
99
|
-
nctx = LexerContext(match.group(3), 0, ['interpolated-string'])
|
100
|
-
for i, t, v in self.get_tokens_unprocessed(context=nctx):
|
101
|
-
yield match.start(3)+i, t, v
|
102
|
-
yield match.start(4), String.Other, match.group(4) # end
|
103
|
-
ctx.pos = match.end()
|
104
|
-
|
105
91
|
states = {}
|
106
92
|
states['strings'] = [
|
107
|
-
(r'
|
108
|
-
(words(CRYSTAL_OPERATORS, prefix=r'
|
109
|
-
(r":'(\\\\|\\
|
93
|
+
(r'\:\w+[!?]?', String.Symbol),
|
94
|
+
(words(CRYSTAL_OPERATORS, prefix=r'\:'), String.Symbol),
|
95
|
+
(r":'(\\\\|\\[^\\]|[^'\\])*'", String.Symbol),
|
110
96
|
# This allows arbitrary text after '\ for simplicity
|
111
97
|
(r"'(\\\\|\\'|[^']|\\[^'\\]+)'", String.Char),
|
112
98
|
(r':"', String.Symbol, 'simple-sym'),
|
@@ -127,35 +113,42 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
127
113
|
(end, ttype, '#pop'),
|
128
114
|
]
|
129
115
|
|
130
|
-
#
|
116
|
+
# https://crystal-lang.org/docs/syntax_and_semantics/literals/string.html#percent-string-literals
|
131
117
|
for lbrace, rbrace, bracecc, name in \
|
132
118
|
('\\{', '\\}', '{}', 'cb'), \
|
133
119
|
('\\[', '\\]', '\\[\\]', 'sb'), \
|
134
120
|
('\\(', '\\)', '()', 'pa'), \
|
135
|
-
('<', '>', '<>', 'ab')
|
121
|
+
('<', '>', '<>', 'ab'), \
|
122
|
+
('\\|', '\\|', '\\|', 'pi'):
|
136
123
|
states[name+'-intp-string'] = [
|
137
124
|
(r'\\' + lbrace, String.Other),
|
125
|
+
] + (lbrace != rbrace) * [
|
138
126
|
(lbrace, String.Other, '#push'),
|
127
|
+
] + [
|
139
128
|
(rbrace, String.Other, '#pop'),
|
140
129
|
include('string-intp-escaped'),
|
141
130
|
(r'[\\#' + bracecc + ']', String.Other),
|
142
131
|
(r'[^\\#' + bracecc + ']+', String.Other),
|
143
132
|
]
|
144
|
-
states['strings'].append((r'%' + lbrace, String.Other,
|
133
|
+
states['strings'].append((r'%Q?' + lbrace, String.Other,
|
145
134
|
name+'-intp-string'))
|
146
135
|
states[name+'-string'] = [
|
147
136
|
(r'\\[\\' + bracecc + ']', String.Other),
|
137
|
+
] + (lbrace != rbrace) * [
|
148
138
|
(lbrace, String.Other, '#push'),
|
139
|
+
] + [
|
149
140
|
(rbrace, String.Other, '#pop'),
|
150
141
|
(r'[\\#' + bracecc + ']', String.Other),
|
151
142
|
(r'[^\\#' + bracecc + ']+', String.Other),
|
152
143
|
]
|
153
|
-
#
|
154
|
-
states['strings'].append((r'%[
|
144
|
+
# https://crystal-lang.org/docs/syntax_and_semantics/literals/array.html#percent-array-literals
|
145
|
+
states['strings'].append((r'%[qwi]' + lbrace, String.Other,
|
155
146
|
name+'-string'))
|
156
147
|
states[name+'-regex'] = [
|
157
148
|
(r'\\[\\' + bracecc + ']', String.Regex),
|
149
|
+
] + (lbrace != rbrace) * [
|
158
150
|
(lbrace, String.Regex, '#push'),
|
151
|
+
] + [
|
159
152
|
(rbrace + '[imsx]*', String.Regex, '#pop'),
|
160
153
|
include('string-intp'),
|
161
154
|
(r'[\\#' + bracecc + ']', String.Regex),
|
@@ -164,27 +157,6 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
164
157
|
states['strings'].append((r'%r' + lbrace, String.Regex,
|
165
158
|
name+'-regex'))
|
166
159
|
|
167
|
-
# these must come after %<brace>!
|
168
|
-
states['strings'] += [
|
169
|
-
# %r regex
|
170
|
-
(r'(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[imsx]*)',
|
171
|
-
intp_regex_callback),
|
172
|
-
# regular fancy strings with qsw
|
173
|
-
(r'(%[wi]([\W_]))((?:\\\2|(?!\2).)*)(\2)',
|
174
|
-
intp_string_callback),
|
175
|
-
# special forms of fancy strings after operators or
|
176
|
-
# in method calls with braces
|
177
|
-
(r'(?<=[-+/*%=<>&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)',
|
178
|
-
bygroups(Text, String.Other, None)),
|
179
|
-
# and because of fixed width lookbehinds the whole thing a
|
180
|
-
# second time for line startings...
|
181
|
-
(r'^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)',
|
182
|
-
bygroups(Text, String.Other, None)),
|
183
|
-
# all regular fancy strings without qsw
|
184
|
-
(r'(%([\[{(<]))((?:\\\2|(?!\2).)*)(\2)',
|
185
|
-
intp_string_callback),
|
186
|
-
]
|
187
|
-
|
188
160
|
return states
|
189
161
|
|
190
162
|
tokens = {
|
@@ -192,10 +164,16 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
192
164
|
(r'#.*?$', Comment.Single),
|
193
165
|
# keywords
|
194
166
|
(words('''
|
195
|
-
abstract asm
|
196
|
-
include
|
197
|
-
|
167
|
+
abstract asm begin break case do else elsif end ensure extend if in
|
168
|
+
include next of private protected require rescue return select self super
|
169
|
+
then unless until when while with yield
|
198
170
|
'''.split(), suffix=r'\b'), Keyword),
|
171
|
+
(words('''
|
172
|
+
previous_def forall out uninitialized __DIR__ __FILE__ __LINE__
|
173
|
+
__END_LINE__
|
174
|
+
'''.split(), prefix=r'(?<!\.)', suffix=r'\b'), Keyword.Pseudo),
|
175
|
+
# https://crystal-lang.org/docs/syntax_and_semantics/is_a.html
|
176
|
+
(r'\.(is_a\?|nil\?|responds_to\?|as\?|as\b)', Keyword.Pseudo),
|
199
177
|
(words(['true', 'false', 'nil'], suffix=r'\b'), Keyword.Constant),
|
200
178
|
# start of function, class and module names
|
201
179
|
(r'(module|lib)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)',
|
@@ -203,29 +181,23 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
203
181
|
(r'(def|fun|macro)(\s+)((?:[a-zA-Z_]\w*::)*)',
|
204
182
|
bygroups(Keyword, Text, Name.Namespace), 'funcname'),
|
205
183
|
(r'def(?=[*%&^`~+-/\[<>=])', Keyword, 'funcname'),
|
206
|
-
(r'(class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)',
|
184
|
+
(r'(annotation|class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)',
|
207
185
|
bygroups(Keyword, Text, Name.Namespace), 'classname'),
|
208
|
-
|
209
|
-
# macros
|
186
|
+
# https://crystal-lang.org/api/toplevel.html
|
210
187
|
(words('''
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
'
|
215
|
-
(r'getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b', Name.Builtin.Pseudo),
|
188
|
+
instance_sizeof offsetof pointerof sizeof typeof
|
189
|
+
'''.split(), prefix=r'(?<!\.)', suffix=r'\b'), Keyword.Pseudo),
|
190
|
+
# macros
|
191
|
+
(r'(?<!\.)(debugger\b|p!|pp!|record\b|spawn\b)', Name.Builtin.Pseudo),
|
216
192
|
# builtins
|
217
|
-
# http://crystal-lang.org/api/toplevel.html
|
218
193
|
(words('''
|
219
|
-
|
220
|
-
|
221
|
-
Float Float32 Float64 Char String
|
222
|
-
Pointer Slice Range Exception Regex
|
223
|
-
Mutex StaticArray Array Hash Set Tuple Deque Box Process File
|
224
|
-
Dir Time Channel Concurrent Scheduler
|
225
|
-
abort at_exit caller delay exit fork future get_stack_top gets
|
226
|
-
lazy loop main p print printf puts
|
227
|
-
raise rand read_line sleep sprintf system with_color
|
194
|
+
abort at_exit caller exit gets loop main p pp print printf puts
|
195
|
+
raise rand read_line sleep spawn sprintf system
|
228
196
|
'''.split(), prefix=r'(?<!\.)', suffix=r'\b'), Name.Builtin),
|
197
|
+
# https://crystal-lang.org/api/Object.html#macro-summary
|
198
|
+
(r'(?<!\.)(((class_)?((getter|property)\b[!?]?|setter\b))|'
|
199
|
+
r'(def_(clone|equals|equals_and_hash|hash)|delegate|forward_missing_to)\b)',
|
200
|
+
Name.Builtin.Pseudo),
|
229
201
|
# normal heredocs
|
230
202
|
(r'(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
|
231
203
|
heredoc_callback),
|
@@ -297,18 +269,18 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
297
269
|
(r'\$-[0adFiIlpvw]', Name.Variable.Global),
|
298
270
|
(r'::', Operator),
|
299
271
|
include('strings'),
|
300
|
-
#
|
272
|
+
# https://crystal-lang.org/reference/syntax_and_semantics/literals/char.html
|
301
273
|
(r'\?(\\[MC]-)*' # modifiers
|
302
|
-
r'(\\([\\
|
274
|
+
r'(\\([\\abefnrtv#"\']|[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\{[a-fA-F0-9 ]+\})|\S)'
|
303
275
|
r'(?!\w)',
|
304
276
|
String.Char),
|
305
|
-
(r'[A-Z][A-Z_]+\b', Name.Constant),
|
277
|
+
(r'[A-Z][A-Z_]+\b(?!::|\.)', Name.Constant),
|
306
278
|
# macro expansion
|
307
279
|
(r'\{%', String.Interpol, 'in-macro-control'),
|
308
280
|
(r'\{\{', String.Interpol, 'in-macro-expr'),
|
309
|
-
#
|
310
|
-
(r'(@\[)(\s*)([A-Z]\w*)',
|
311
|
-
bygroups(Operator, Text, Name.Decorator), 'in-
|
281
|
+
# annotations
|
282
|
+
(r'(@\[)(\s*)([A-Z]\w*(::[A-Z]\w*)*)',
|
283
|
+
bygroups(Operator, Text, Name.Decorator), 'in-annot'),
|
312
284
|
# this is needed because Crystal attributes can look
|
313
285
|
# like keywords (class) or like this: ` ?!?
|
314
286
|
(words(CRYSTAL_OPERATORS, prefix=r'(\.|::)'),
|
@@ -345,7 +317,9 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
345
317
|
(r'#\{', String.Interpol, 'in-intp'),
|
346
318
|
],
|
347
319
|
'string-escaped': [
|
348
|
-
|
320
|
+
# https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html
|
321
|
+
(r'\\([\\abefnrtv#"\']|[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\{[a-fA-F0-9 ]+\})',
|
322
|
+
String.Escape)
|
349
323
|
],
|
350
324
|
'string-intp-escaped': [
|
351
325
|
include('string-intp'),
|
@@ -375,7 +349,7 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
375
349
|
'in-macro-control': [
|
376
350
|
(r'\{%', String.Interpol, '#push'),
|
377
351
|
(r'%\}', String.Interpol, '#pop'),
|
378
|
-
(r'for
|
352
|
+
(r'(for|verbatim)\b', Keyword),
|
379
353
|
include('root'),
|
380
354
|
],
|
381
355
|
'in-macro-expr': [
|
@@ -383,7 +357,7 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
383
357
|
(r'\}\}', String.Interpol, '#pop'),
|
384
358
|
include('root'),
|
385
359
|
],
|
386
|
-
'in-
|
360
|
+
'in-annot': [
|
387
361
|
(r'\[', Operator, '#push'),
|
388
362
|
(r'\]', Operator, '#pop'),
|
389
363
|
include('root'),
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.csound
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for Csound languages.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.css
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for CSS and related stylesheet formats.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -289,8 +288,8 @@ class CssLexer(RegexLexer):
|
|
289
288
|
(r'(@)([\w-]+)', bygroups(Punctuation, Keyword), 'atrule'),
|
290
289
|
(r'[\w-]+', Name.Tag),
|
291
290
|
(r'[~^*!%&$\[\]()<>|+=@:;,./?-]', Operator),
|
292
|
-
(r'"(\\\\|\\
|
293
|
-
(r"'(\\\\|\\
|
291
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
292
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
294
293
|
],
|
295
294
|
'atrule': [
|
296
295
|
(r'\{', Punctuation, 'atcontent'),
|
@@ -310,6 +309,8 @@ class CssLexer(RegexLexer):
|
|
310
309
|
(words(_vendor_prefixes,), Keyword.Pseudo),
|
311
310
|
(r'('+r'|'.join(_css_properties)+r')(\s*)(\:)',
|
312
311
|
bygroups(Keyword, Text, Punctuation), 'value-start'),
|
312
|
+
(r'([-]+[a-zA-Z_][\w-]*)(\s*)(\:)', bygroups(Name.Variable, Text, Punctuation),
|
313
|
+
'value-start'),
|
313
314
|
(r'([a-zA-Z_][\w-]*)(\s*)(\:)', bygroups(Name, Text, Punctuation),
|
314
315
|
'value-start'),
|
315
316
|
|
@@ -335,14 +336,15 @@ class CssLexer(RegexLexer):
|
|
335
336
|
|
336
337
|
(r'[~^*!%&<>|+=@:./?-]+', Operator),
|
337
338
|
(r'[\[\](),]+', Punctuation),
|
338
|
-
(r'"(\\\\|\\
|
339
|
-
(r"'(\\\\|\\
|
339
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
340
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
340
341
|
(r'[a-zA-Z_][\w-]*', Name),
|
341
342
|
(r';', Punctuation, '#pop'),
|
342
343
|
(r'\}', Punctuation, '#pop:2'),
|
343
344
|
],
|
344
345
|
'function-start': [
|
345
346
|
(r'\s+', Text),
|
347
|
+
(r'[-]+([\w+]+[-]*)+', Name.Variable),
|
346
348
|
include('urls'),
|
347
349
|
(words(_vendor_prefixes,), Keyword.Pseudo),
|
348
350
|
(words(_keyword_values, suffix=r'\b'), Keyword.Constant),
|
@@ -359,8 +361,8 @@ class CssLexer(RegexLexer):
|
|
359
361
|
include('numeric-values'),
|
360
362
|
(r'[*+/-]', Operator),
|
361
363
|
(r',', Punctuation),
|
362
|
-
(r'"(\\\\|\\
|
363
|
-
(r"'(\\\\|\\
|
364
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
365
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
364
366
|
(r'[a-zA-Z_-]\w*', Name),
|
365
367
|
(r'\)', Punctuation, '#pop'),
|
366
368
|
],
|
@@ -686,6 +688,7 @@ class LessCssLexer(CssLexer):
|
|
686
688
|
],
|
687
689
|
'content': [
|
688
690
|
(r'\{', Punctuation, '#push'),
|
691
|
+
(r'//.*\n', Comment.Single),
|
689
692
|
inherit,
|
690
693
|
],
|
691
694
|
}
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.d
|
4
3
|
~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for D languages.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -98,7 +97,7 @@ class DLexer(RegexLexer):
|
|
98
97
|
# -- AlternateWysiwygString
|
99
98
|
(r'`[^`]*`[cwd]?', String),
|
100
99
|
# -- DoubleQuotedString
|
101
|
-
(r'"(\\\\|\\
|
100
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"[cwd]?', String),
|
102
101
|
# -- EscapeSequence
|
103
102
|
(r"\\(['\"?\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}"
|
104
103
|
r"|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)",
|
@@ -229,7 +228,7 @@ class CrocLexer(RegexLexer):
|
|
229
228
|
(r'@`(``|[^`])*`', String),
|
230
229
|
(r"@'(''|[^'])*'", String),
|
231
230
|
# -- DoubleQuotedString
|
232
|
-
(r'"(\\\\|\\
|
231
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
233
232
|
# Tokens
|
234
233
|
(r'(~=|\^=|%=|\*=|==|!=|>>>=|>>>|>>=|>>|>=|<=>|\?=|-\>'
|
235
234
|
r'|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.|/=)'
|