pygments.rb 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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.inferno
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for Inferno os and all the related stuff.
|
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.installers
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for installer/packager DSLs and 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
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.int_fiction
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for interactive fiction 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.iolang
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for the Io 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
|
|
@@ -37,7 +36,7 @@ class IoLexer(RegexLexer):
|
|
37
36
|
(r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
|
38
37
|
(r'/\+', Comment.Multiline, 'nestedcomment'),
|
39
38
|
# DoubleQuotedString
|
40
|
-
(r'"(\\\\|\\
|
39
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
41
40
|
# Operators
|
42
41
|
(r'::=|:=|=|\(|\)|;|,|\*|-|\+|>|<|@|!|/|\||\^|\.|%|&|\[|\]|\{|\}',
|
43
42
|
Operator),
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.j
|
4
3
|
~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexer for the J programming 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
|
|
@@ -89,7 +88,7 @@ class JLexer(RegexLexer):
|
|
89
88
|
(r'=[.:]', Operator),
|
90
89
|
|
91
90
|
# Builtins
|
92
|
-
(r'[-=+*#$%@!~`^&";:.,<>{}\[\]
|
91
|
+
(r'[-=+*#$%@!~`^&";:.,<>{}\[\]\\|/?]', Operator),
|
93
92
|
|
94
93
|
# Short Keywords
|
95
94
|
(r'[abCdDeEfHiIjLMoprtT]\.', Keyword.Reserved),
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.javascript
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for JavaScript and related 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
|
|
@@ -53,7 +52,7 @@ class JavascriptLexer(RegexLexer):
|
|
53
52
|
'slashstartsregex': [
|
54
53
|
include('commentsandwhitespace'),
|
55
54
|
(r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
56
|
-
r'([
|
55
|
+
r'([gimuys]+\b|\B)', String.Regex, '#pop'),
|
57
56
|
(r'(?=/)', Text, ('#pop', 'badregex')),
|
58
57
|
default('#pop')
|
59
58
|
],
|
@@ -67,7 +66,7 @@ class JavascriptLexer(RegexLexer):
|
|
67
66
|
|
68
67
|
# Numeric literals
|
69
68
|
(r'0[bB][01]+n?', Number.Bin),
|
70
|
-
(r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" notations
|
69
|
+
(r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" (< ES5) notations
|
71
70
|
(r'0[xX][0-9a-fA-F]+n?', Number.Hex),
|
72
71
|
(r'[0-9]+n', Number.Integer), # Javascript BigInt requires an "n" postfix
|
73
72
|
# Javascript doesn't have actual integer literals, so every other
|
@@ -82,27 +81,25 @@ class JavascriptLexer(RegexLexer):
|
|
82
81
|
(r'[})\].]', Punctuation),
|
83
82
|
(r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
|
84
83
|
r'throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|await|async|'
|
85
|
-
r'this|of)\b', Keyword, 'slashstartsregex'),
|
86
|
-
(r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
|
87
|
-
(r'(abstract|boolean|byte|char|
|
88
|
-
r'
|
89
|
-
r'
|
90
|
-
r'transient|volatile)\b', Keyword.Reserved),
|
84
|
+
r'this|of|static|export|import|debugger|extends|super)\b', Keyword, 'slashstartsregex'),
|
85
|
+
(r'(var|let|const|with|function|class)\b', Keyword.Declaration, 'slashstartsregex'),
|
86
|
+
(r'(abstract|boolean|byte|char|double|enum|final|float|goto'
|
87
|
+
r'implements|int|interface|long|native|package|private|protected'
|
88
|
+
r'public|short|synchronized|throws|transient|volatile)\b', Keyword.Reserved),
|
91
89
|
(r'(true|false|null|NaN|Infinity|undefined)\b', Keyword.Constant),
|
92
|
-
(r'(Array|Boolean|Date|Error|Function|Math|
|
93
|
-
r'Number|Object|
|
90
|
+
(r'(Array|Boolean|Date|BigInt|Error|Function|Math|'
|
91
|
+
r'Number|Object|RegExp|String|Promise|Proxy|decodeURI|'
|
94
92
|
r'decodeURIComponent|encodeURI|encodeURIComponent|'
|
95
93
|
r'Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|'
|
96
|
-
r'document|this|window)\b', Name.Builtin),
|
94
|
+
r'document|this|window|globalThis|Symbol)\b', Name.Builtin),
|
97
95
|
(JS_IDENT, Name.Other),
|
98
|
-
(r'"(\\\\|\\
|
99
|
-
(r"'(\\\\|\\
|
96
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
97
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
100
98
|
(r'`', String.Backtick, 'interp'),
|
101
99
|
],
|
102
100
|
'interp': [
|
103
101
|
(r'`', String.Backtick, '#pop'),
|
104
|
-
(r'
|
105
|
-
(r'\\`', String.Backtick),
|
102
|
+
(r'\\.', String.Backtick),
|
106
103
|
(r'\$\{', String.Interpol, 'interp-inside'),
|
107
104
|
(r'\$', String.Backtick),
|
108
105
|
(r'[^`\\$]+', String.Backtick),
|
@@ -112,7 +109,6 @@ class JavascriptLexer(RegexLexer):
|
|
112
109
|
(r'\}', String.Interpol, '#pop'),
|
113
110
|
include('root'),
|
114
111
|
],
|
115
|
-
# (\\\\|\\`|[^`])*`', String.Backtick),
|
116
112
|
}
|
117
113
|
|
118
114
|
|
@@ -161,7 +157,7 @@ class KalLexer(RegexLexer):
|
|
161
157
|
'root': [
|
162
158
|
include('commentsandwhitespace'),
|
163
159
|
(r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
164
|
-
r'([
|
160
|
+
r'([gimuys]+\b|\B)', String.Regex),
|
165
161
|
(r'\?|:|_(?=\n)|==?|!=|-(?!>)|[<>+*/-]=?',
|
166
162
|
Operator),
|
167
163
|
(r'\b(and|or|isnt|is|not|but|bitwise|mod|\^|xor|exists|'
|
@@ -183,13 +179,11 @@ class KalLexer(RegexLexer):
|
|
183
179
|
(r'(?<![.$])(true|false|yes|no|on|off|null|nothing|none|'
|
184
180
|
r'NaN|Infinity|undefined)\b',
|
185
181
|
Keyword.Constant),
|
186
|
-
(r'(Array|Boolean|Date|Error|Function|Math|
|
187
|
-
r'Number|Object|
|
182
|
+
(r'(Array|Boolean|Date|Error|Function|Math|'
|
183
|
+
r'Number|Object|RegExp|String|decodeURI|'
|
188
184
|
r'decodeURIComponent|encodeURI|encodeURIComponent|'
|
189
185
|
r'eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|'
|
190
|
-
r'window|'
|
191
|
-
r'print)\b',
|
192
|
-
Name.Builtin),
|
186
|
+
r'window|globalThis|Symbol|print)\b', Name.Builtin),
|
193
187
|
(r'[$a-zA-Z_][\w.$]*\s*(:|[+\-*/]?\=)?\b', Name.Variable),
|
194
188
|
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
|
195
189
|
(r'0x[0-9a-fA-F]+', Number.Hex),
|
@@ -256,7 +250,7 @@ class LiveScriptLexer(RegexLexer):
|
|
256
250
|
],
|
257
251
|
'multilineregex': [
|
258
252
|
include('commentsandwhitespace'),
|
259
|
-
(r'//([
|
253
|
+
(r'//([gimuys]+\b|\B)', String.Regex, '#pop'),
|
260
254
|
(r'/', String.Regex),
|
261
255
|
(r'[^/#]+', String.Regex)
|
262
256
|
],
|
@@ -264,7 +258,7 @@ class LiveScriptLexer(RegexLexer):
|
|
264
258
|
include('commentsandwhitespace'),
|
265
259
|
(r'//', String.Regex, ('#pop', 'multilineregex')),
|
266
260
|
(r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
267
|
-
r'([
|
261
|
+
r'([gimuys]+\b|\B)', String.Regex, '#pop'),
|
268
262
|
(r'/', Operator, '#pop'),
|
269
263
|
default('#pop'),
|
270
264
|
],
|
@@ -288,11 +282,11 @@ class LiveScriptLexer(RegexLexer):
|
|
288
282
|
(r'(?<![.$])(true|false|yes|no|on|off|'
|
289
283
|
r'null|NaN|Infinity|undefined|void)\b',
|
290
284
|
Keyword.Constant),
|
291
|
-
(r'(Array|Boolean|Date|Error|Function|Math|
|
292
|
-
r'Number|Object|
|
285
|
+
(r'(Array|Boolean|Date|Error|Function|Math|'
|
286
|
+
r'Number|Object|RegExp|String|decodeURI|'
|
293
287
|
r'decodeURIComponent|encodeURI|encodeURIComponent|'
|
294
|
-
r'eval|isFinite|isNaN|parseFloat|parseInt|document|window
|
295
|
-
Name.Builtin),
|
288
|
+
r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|'
|
289
|
+
r'globalThis|Symbol|Symbol|BigInt)\b', Name.Builtin),
|
296
290
|
(r'[$a-zA-Z_][\w.\-:$]*\s*[:=]\s', Name.Variable,
|
297
291
|
'slashstartsregex'),
|
298
292
|
(r'@[$a-zA-Z_][\w.\-:$]*\s*[:=]\s', Name.Variable.Instance,
|
@@ -475,7 +469,7 @@ class TypeScriptLexer(RegexLexer):
|
|
475
469
|
'slashstartsregex': [
|
476
470
|
include('commentsandwhitespace'),
|
477
471
|
(r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
478
|
-
r'([
|
472
|
+
r'([gimuys]+\b|\B)', String.Regex, '#pop'),
|
479
473
|
(r'(?=/)', Text, ('#pop', 'badregex')),
|
480
474
|
default('#pop')
|
481
475
|
],
|
@@ -491,18 +485,19 @@ class TypeScriptLexer(RegexLexer):
|
|
491
485
|
(r'[})\].]', Punctuation),
|
492
486
|
(r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
|
493
487
|
r'throw|try|catch|finally|new|delete|typeof|instanceof|void|of|'
|
494
|
-
r'this
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
488
|
+
r'this|async|await|debugger|yield|abstract|static|import|export|'
|
489
|
+
r'implements|super|extends|private|protected|public|readonly)\b',
|
490
|
+
Keyword, 'slashstartsregex'),
|
491
|
+
(r'(var|let|const|with|function|class|type|enum|interface)\b',
|
492
|
+
Keyword.Declaration, 'slashstartsregex'),
|
493
|
+
(r'(boolean|byte|char|double|final|float|goto|int|long|native|'
|
494
|
+
r'package|short|synchronized|throws|transient|volatile)\b', Keyword.Reserved),
|
500
495
|
(r'(true|false|null|NaN|Infinity|undefined)\b', Keyword.Constant),
|
501
|
-
(r'(Array|Boolean|Date|Error|Function|Math|
|
502
|
-
r'Number|Object|
|
496
|
+
(r'(Array|Boolean|Date|Error|Function|Math|'
|
497
|
+
r'Number|Object|RegExp|String|decodeURI|'
|
503
498
|
r'decodeURIComponent|encodeURI|encodeURIComponent|'
|
504
499
|
r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
|
505
|
-
r'window)\b', Name.Builtin),
|
500
|
+
r'window|globalThis|Symbol|BigInt)\b', Name.Builtin),
|
506
501
|
# Match stuff like: module name {...}
|
507
502
|
(r'\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)',
|
508
503
|
bygroups(Keyword.Reserved, Text, Name.Other, Text), 'slashstartsregex'),
|
@@ -514,16 +509,18 @@ class TypeScriptLexer(RegexLexer):
|
|
514
509
|
(r'(super)(\s*)(\([\w,?.$\s]+\s*\))',
|
515
510
|
bygroups(Keyword.Reserved, Text), 'slashstartsregex'),
|
516
511
|
# Match stuff like: function() {...}
|
517
|
-
(r'([a-zA-Z_?.$][\w?.$]*)
|
512
|
+
(r'([a-zA-Z_?.$][\w?.$]*)(?=\(\) \{)', Name.Other, 'slashstartsregex'),
|
518
513
|
# Match stuff like: (function: return type)
|
519
514
|
(r'([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)',
|
520
515
|
bygroups(Name.Other, Text, Keyword.Type)),
|
521
516
|
(r'[$a-zA-Z_]\w*', Name.Other),
|
522
|
-
(r'
|
523
|
-
(r'
|
524
|
-
(r'[0-
|
525
|
-
(r'
|
526
|
-
(r
|
517
|
+
(r'0[bB][01]+n?', Number.Bin),
|
518
|
+
(r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" (< ES5) notations
|
519
|
+
(r'0[xX][0-9a-fA-F]+n?', Number.Hex),
|
520
|
+
(r'[0-9]+n', Number.Integer),
|
521
|
+
(r'(\.[0-9]+|[0-9]+\.[0-9]*|[0-9]+)([eE][-+]?[0-9]+)?', Number.Float),
|
522
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
523
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
527
524
|
(r'`', String.Backtick, 'interp'),
|
528
525
|
# Match stuff like: Decorators
|
529
526
|
(r'@\w+', Keyword.Declaration),
|
@@ -533,8 +530,7 @@ class TypeScriptLexer(RegexLexer):
|
|
533
530
|
# there should be reflected here as well.
|
534
531
|
'interp': [
|
535
532
|
(r'`', String.Backtick, '#pop'),
|
536
|
-
(r'
|
537
|
-
(r'\\`', String.Backtick),
|
533
|
+
(r'\\.', String.Backtick),
|
538
534
|
(r'\$\{', String.Interpol, 'interp-inside'),
|
539
535
|
(r'\$', String.Backtick),
|
540
536
|
(r'[^`\\$]+', String.Backtick),
|
@@ -875,8 +871,8 @@ class ObjectiveJLexer(RegexLexer):
|
|
875
871
|
(r'(L|@)?"', String, 'string'),
|
876
872
|
(r"(L|@)?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'",
|
877
873
|
String.Char),
|
878
|
-
(r'"(\\\\|\\
|
879
|
-
(r"'(\\\\|\\
|
874
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
875
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
880
876
|
(r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
|
881
877
|
(r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
|
882
878
|
(r'0x[0-9a-fA-F]+[Ll]?', Number.Hex),
|
@@ -913,11 +909,11 @@ class ObjectiveJLexer(RegexLexer):
|
|
913
909
|
r'MIN|MAX|RAND|SQRT|E|LN2|LN10|LOG2E|LOG10E|PI|PI2|PI_2|SQRT1_2|'
|
914
910
|
r'SQRT2)\b', Keyword.Constant),
|
915
911
|
|
916
|
-
(r'(Array|Boolean|Date|Error|Function|Math|
|
917
|
-
r'Number|Object|
|
912
|
+
(r'(Array|Boolean|Date|Error|Function|Math|'
|
913
|
+
r'Number|Object|RegExp|String|decodeURI|'
|
918
914
|
r'decodeURIComponent|encodeURI|encodeURIComponent|'
|
919
915
|
r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
|
920
|
-
r'window)\b', Name.Builtin),
|
916
|
+
r'window|globalThis|Symbol)\b', Name.Builtin),
|
921
917
|
|
922
918
|
(r'([$a-zA-Z_]\w*)(' + _ws + r')(?=\()',
|
923
919
|
bygroups(Name.Function, using(this))),
|
@@ -1055,7 +1051,7 @@ class CoffeeScriptLexer(RegexLexer):
|
|
1055
1051
|
],
|
1056
1052
|
'multilineregex': [
|
1057
1053
|
(r'[^/#]+', String.Regex),
|
1058
|
-
(r'///([
|
1054
|
+
(r'///([gimuys]+\b|\B)', String.Regex, '#pop'),
|
1059
1055
|
(r'#\{', String.Interpol, 'interpoling_string'),
|
1060
1056
|
(r'[/#]', String.Regex),
|
1061
1057
|
],
|
@@ -1063,7 +1059,7 @@ class CoffeeScriptLexer(RegexLexer):
|
|
1063
1059
|
include('commentsandwhitespace'),
|
1064
1060
|
(r'///', String.Regex, ('#pop', 'multilineregex')),
|
1065
1061
|
(r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
1066
|
-
r'([
|
1062
|
+
r'([gimuys]+\b|\B)', String.Regex, '#pop'),
|
1067
1063
|
# This isn't really guarding against mishighlighting well-formed
|
1068
1064
|
# code, just the ability to infinite-loop between root and
|
1069
1065
|
# slashstartsregex.
|
@@ -1085,10 +1081,10 @@ class CoffeeScriptLexer(RegexLexer):
|
|
1085
1081
|
(r'(?<![.$])(true|false|yes|no|on|off|null|'
|
1086
1082
|
r'NaN|Infinity|undefined)\b',
|
1087
1083
|
Keyword.Constant),
|
1088
|
-
(r'(Array|Boolean|Date|Error|Function|Math|
|
1089
|
-
r'Number|Object|
|
1084
|
+
(r'(Array|Boolean|Date|Error|Function|Math|'
|
1085
|
+
r'Number|Object|RegExp|String|decodeURI|'
|
1090
1086
|
r'decodeURIComponent|encodeURI|encodeURIComponent|'
|
1091
|
-
r'eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b',
|
1087
|
+
r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|globalThis|Symbol)\b',
|
1092
1088
|
Name.Builtin),
|
1093
1089
|
(r'[$a-zA-Z_][\w.:$]*\s*[:=]\s', Name.Variable,
|
1094
1090
|
'slashstartsregex'),
|
@@ -1497,7 +1493,7 @@ class JuttleLexer(RegexLexer):
|
|
1497
1493
|
'slashstartsregex': [
|
1498
1494
|
include('commentsandwhitespace'),
|
1499
1495
|
(r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
1500
|
-
r'([
|
1496
|
+
r'([gimuys]+\b|\B)', String.Regex, '#pop'),
|
1501
1497
|
(r'(?=/)', Text, ('#pop', 'badregex')),
|
1502
1498
|
default('#pop')
|
1503
1499
|
],
|
@@ -1533,8 +1529,8 @@ class JuttleLexer(RegexLexer):
|
|
1533
1529
|
(JS_IDENT, Name.Other),
|
1534
1530
|
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
|
1535
1531
|
(r'[0-9]+', Number.Integer),
|
1536
|
-
(r'"(\\\\|\\
|
1537
|
-
(r"'(\\\\|\\
|
1532
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
1533
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
1538
1534
|
]
|
1539
1535
|
|
1540
1536
|
}
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.julia
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexers for the Julia 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.jvm
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Pygments lexers for JVM 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
|
|
@@ -292,12 +291,12 @@ class ScalaLexer(RegexLexer):
|
|
292
291
|
(r'(import|package)(\s+)', bygroups(Keyword, Text), 'import'),
|
293
292
|
(r'(type)(\s+)', bygroups(Keyword, Text), 'type'),
|
294
293
|
(r'""".*?"""(?!")', String),
|
295
|
-
(r'"(\\\\|\\
|
294
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
296
295
|
(r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
|
297
296
|
(r"'%s" % idrest, Text.Symbol),
|
298
297
|
(r'[fs]"""', String, 'interptriplestring'), # interpolated strings
|
299
298
|
(r'[fs]"', String, 'interpstring'), # interpolated strings
|
300
|
-
(r'raw"(\\\\|\\
|
299
|
+
(r'raw"(\\\\|\\[^\\]|[^"\\])*"', String), # raw strings
|
301
300
|
# (r'(\.)(%s|%s|`[^`]+`)' % (idrest, op), bygroups(Operator,
|
302
301
|
# Name.Attribute)),
|
303
302
|
(idrest, Name),
|
@@ -522,10 +521,10 @@ class GroovyLexer(RegexLexer):
|
|
522
521
|
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
|
523
522
|
(r'""".*?"""', String.Double),
|
524
523
|
(r"'''.*?'''", String.Single),
|
525
|
-
(r'"(\\\\|\\
|
526
|
-
(r"'(\\\\|\\
|
524
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
525
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
527
526
|
(r'\$/((?!/\$).)*/\$', String),
|
528
|
-
(r'/(\\\\|\\
|
527
|
+
(r'/(\\\\|\\[^\\]|[^/\\])*/', String),
|
529
528
|
(r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
|
530
529
|
(r'(\.)([a-zA-Z_]\w*)', bygroups(Operator, Name.Attribute)),
|
531
530
|
(r'[a-zA-Z_]\w*:', Name.Label),
|
@@ -618,7 +617,7 @@ class IokeLexer(RegexLexer):
|
|
618
617
|
# Symbols
|
619
618
|
(r':[\w!:?]+', String.Symbol),
|
620
619
|
(r'[\w!:?]+:(?![\w!?])', String.Other),
|
621
|
-
(r':"(\\\\|\\
|
620
|
+
(r':"(\\\\|\\[^\\]|[^"\\])*"', String.Symbol),
|
622
621
|
|
623
622
|
# Documentation
|
624
623
|
(r'((?<=fn\()|(?<=fnx\()|(?<=method\()|(?<=macro\()|(?<=lecro\()'
|
@@ -836,7 +835,7 @@ class ClojureLexer(RegexLexer):
|
|
836
835
|
(r'0x-?[abcdef\d]+', Number.Hex),
|
837
836
|
|
838
837
|
# strings, symbols and characters
|
839
|
-
(r'"(\\\\|\\
|
838
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
840
839
|
(r"'" + valid_name, String.Symbol),
|
841
840
|
(r"\\(.|[a-z]+)", String.Char),
|
842
841
|
|
@@ -917,8 +916,8 @@ class TeaLangLexer(RegexLexer):
|
|
917
916
|
(r'(true|false|null)\b', Keyword.Constant),
|
918
917
|
(r'(template)(\s+)', bygroups(Keyword.Declaration, Text), 'template'),
|
919
918
|
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
|
920
|
-
(r'"(\\\\|\\
|
921
|
-
(r'
|
919
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
920
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
922
921
|
(r'(\.)([a-zA-Z_]\w*)', bygroups(Operator, Name.Attribute)),
|
923
922
|
(r'[a-zA-Z_]\w*:', Name.Label),
|
924
923
|
(r'[a-zA-Z_\$]\w*', Name),
|
@@ -979,9 +978,8 @@ class CeylonLexer(RegexLexer):
|
|
979
978
|
(r'(class|interface|object|alias)(\s+)',
|
980
979
|
bygroups(Keyword.Declaration, Text), 'class'),
|
981
980
|
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
|
982
|
-
(r'"(\\\\|\\
|
981
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
983
982
|
(r"'\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'", String.Char),
|
984
|
-
(r'".*``.*``.*"', String.Interpol),
|
985
983
|
(r'(\.)([a-z_]\w*)',
|
986
984
|
bygroups(Operator, Name.Attribute)),
|
987
985
|
(r'[a-zA-Z_]\w*:', Name.Label),
|
@@ -1038,74 +1036,137 @@ class KotlinLexer(RegexLexer):
|
|
1038
1036
|
|
1039
1037
|
kt_space_name = ('@?[_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl') + ']' +
|
1040
1038
|
'[' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl', 'Nd', 'Pc', 'Cf',
|
1041
|
-
'Mn', 'Mc', 'Zs')
|
1039
|
+
'Mn', 'Mc', 'Zs')
|
1040
|
+
+ r'\'~!%^&*()+=|\[\]:;,.<>/\?-]*')
|
1042
1041
|
|
1043
1042
|
kt_id = '(' + kt_name + '|`' + kt_space_name + '`)'
|
1044
1043
|
|
1044
|
+
modifiers = (r'actual|abstract|annotation|companion|const|crossinline|'
|
1045
|
+
r'data|enum|expect|external|final|infix|inline|inner|'
|
1046
|
+
r'internal|lateinit|noinline|open|operator|override|private|'
|
1047
|
+
r'protected|public|sealed|suspend|tailrec')
|
1048
|
+
|
1045
1049
|
tokens = {
|
1046
1050
|
'root': [
|
1047
|
-
|
1051
|
+
# Whitespaces
|
1048
1052
|
(r'[^\S\n]+', Text),
|
1049
1053
|
(r'\s+', Text),
|
1050
1054
|
(r'\\\n', Text), # line continuation
|
1055
|
+
(r'\n', Text),
|
1056
|
+
# Comments
|
1051
1057
|
(r'//.*?\n', Comment.Single),
|
1052
1058
|
(r'^#!/.+?\n', Comment.Single), # shebang for kotlin scripts
|
1053
1059
|
(r'/[*].*?[*]/', Comment.Multiline),
|
1054
|
-
|
1055
|
-
(r'
|
1060
|
+
# Keywords
|
1061
|
+
(r'as\?', Keyword),
|
1062
|
+
(r'(as|break|by|catch|constructor|continue|do|dynamic|else|finally|'
|
1063
|
+
r'get|for|if|init|[!]*in|[!]*is|out|reified|return|set|super|this|'
|
1064
|
+
r'throw|try|typealias|typeof|vararg|when|where|while)\b', Keyword),
|
1065
|
+
(r'it\b', Name.Builtin),
|
1066
|
+
# Built-in types
|
1067
|
+
(words(('Boolean?', 'Byte?', 'Char?', 'Double?', 'Float?',
|
1068
|
+
'Int?', 'Long?', 'Short?', 'String?', 'Any?', 'Unit?')), Keyword.Type),
|
1069
|
+
(words(('Boolean', 'Byte', 'Char', 'Double', 'Float',
|
1070
|
+
'Int', 'Long', 'Short', 'String', 'Any', 'Unit'), suffix=r'\b'), Keyword.Type),
|
1071
|
+
# Constants
|
1072
|
+
(r'(true|false|null)\b', Keyword.Constant),
|
1073
|
+
# Imports
|
1074
|
+
(r'(package|import)(\s+)(\S+)', bygroups(Keyword, Text, Name.Namespace)),
|
1075
|
+
# Dot access
|
1076
|
+
(r'(\?\.)((?:[^\W\d]|\$)[\w$]*)', bygroups(Operator, Name.Attribute)),
|
1077
|
+
(r'(\.)((?:[^\W\d]|\$)[\w$]*)', bygroups(Punctuation, Name.Attribute)),
|
1078
|
+
# Annotations
|
1079
|
+
(r'@[^\W\d][\w.]*', Name.Decorator),
|
1080
|
+
# Labels
|
1081
|
+
(r'[^\W\d][\w.]+@', Name.Decorator),
|
1082
|
+
# Object expression
|
1083
|
+
(r'(object)(\s+)(:)(\s+)', bygroups(Keyword, Text, Punctuation, Text), 'class'),
|
1084
|
+
# Types
|
1085
|
+
(r'((?:(?:' + modifiers + r'|fun)\s+)*)(class|interface|object)(\s+)',
|
1086
|
+
bygroups(using(this, state='modifiers'), Keyword.Declaration, Text), 'class'),
|
1087
|
+
# Variables
|
1088
|
+
(r'(var|val)(\s+)(\()', bygroups(Keyword.Declaration, Text, Punctuation),
|
1089
|
+
'destructuring_assignment'),
|
1090
|
+
(r'((?:(?:' + modifiers + r')\s+)*)(var|val)(\s+)',
|
1091
|
+
bygroups(using(this, state='modifiers'), Keyword.Declaration, Text), 'variable'),
|
1092
|
+
# Functions
|
1093
|
+
(r'((?:(?:' + modifiers + r')\s+)*)(fun)(\s+)',
|
1094
|
+
bygroups(using(this, state='modifiers'), Keyword.Declaration, Text), 'function'),
|
1095
|
+
# Operators
|
1056
1096
|
(r'::|!!|\?[:.]', Operator),
|
1057
|
-
(r'[
|
1058
|
-
|
1059
|
-
(r'
|
1060
|
-
|
1097
|
+
(r'[~^*!%&\[\]<>|+=/?-]', Operator),
|
1098
|
+
# Punctuation
|
1099
|
+
(r'[{}();:.,]', Punctuation),
|
1100
|
+
# Strings
|
1101
|
+
(r'"""', String, 'multiline_string'),
|
1102
|
+
(r'"', String, 'string'),
|
1061
1103
|
(r"'\\.'|'[^\\]'", String.Char),
|
1104
|
+
# Numbers
|
1062
1105
|
(r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|"
|
1063
1106
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
1064
|
-
|
1065
|
-
(r'(
|
1066
|
-
(r'(class|interface|object)(\s+)', bygroups(Keyword, Text), 'class'),
|
1067
|
-
(r'(package|import)(\s+)', bygroups(Keyword, Text), 'package'),
|
1068
|
-
(r'(val|var)(\s+)([(])', bygroups(Keyword, Text, Punctuation), 'property_dec'),
|
1069
|
-
(r'(val|var)(\s+)', bygroups(Keyword, Text), 'property'),
|
1070
|
-
(r'(fun)(\s+)', bygroups(Keyword, Text), 'function'),
|
1071
|
-
(r'(inline fun)(\s+)', bygroups(Keyword, Text), 'function'),
|
1072
|
-
(r'(abstract|annotation|as|break|by|catch|class|companion|const|'
|
1073
|
-
r'constructor|continue|crossinline|data|do|dynamic|else|enum|'
|
1074
|
-
r'external|false|final|finally|for|fun|get|if|import|in|infix|'
|
1075
|
-
r'inline|inner|interface|internal|is|lateinit|noinline|null|'
|
1076
|
-
r'object|open|operator|out|override|package|private|protected|'
|
1077
|
-
r'public|reified|return|sealed|set|super|tailrec|this|throw|'
|
1078
|
-
r'true|try|val|var|vararg|when|where|while)\b', Keyword),
|
1079
|
-
(kt_id, Name),
|
1080
|
-
],
|
1081
|
-
'package': [
|
1082
|
-
(r'\S+', Name.Namespace, '#pop')
|
1107
|
+
# Identifiers
|
1108
|
+
(r'' + kt_id + r'((\?[^.])?)', Name) # additionally handle nullable types
|
1083
1109
|
],
|
1084
1110
|
'class': [
|
1085
1111
|
(kt_id, Name.Class, '#pop')
|
1086
1112
|
],
|
1087
|
-
'
|
1088
|
-
(kt_id, Name.
|
1113
|
+
'variable': [
|
1114
|
+
(kt_id, Name.Variable, '#pop')
|
1089
1115
|
],
|
1090
|
-
'
|
1091
|
-
(r'
|
1092
|
-
(r'
|
1093
|
-
(
|
1094
|
-
(r'(
|
1095
|
-
(
|
1116
|
+
'destructuring_assignment': [
|
1117
|
+
(r',', Punctuation),
|
1118
|
+
(r'\s+', Text),
|
1119
|
+
(kt_id, Name.Variable),
|
1120
|
+
(r'(:)(\s+)(' + kt_id + ')', bygroups(Punctuation, Text, Name)),
|
1121
|
+
(r'<', Operator, 'generic'),
|
1122
|
+
(r'\)', Punctuation, '#pop')
|
1096
1123
|
],
|
1097
1124
|
'function': [
|
1098
|
-
(r'<',
|
1099
|
-
(r''+kt_id+'(
|
1125
|
+
(r'<', Operator, 'generic'),
|
1126
|
+
(r'' + kt_id + r'(\.)' + kt_id, bygroups(Name, Punctuation, Name.Function), '#pop'),
|
1100
1127
|
(kt_id, Name.Function, '#pop')
|
1101
1128
|
],
|
1102
1129
|
'generic': [
|
1103
|
-
(r'(>)(\s*)', bygroups(
|
1104
|
-
(r':',Punctuation),
|
1130
|
+
(r'(>)(\s*)', bygroups(Operator, Text), '#pop'),
|
1131
|
+
(r':', Punctuation),
|
1105
1132
|
(r'(reified|out|in)\b', Keyword),
|
1106
|
-
(r',',
|
1107
|
-
(r'\s+',Text),
|
1108
|
-
(kt_id,Name)
|
1133
|
+
(r',', Punctuation),
|
1134
|
+
(r'\s+', Text),
|
1135
|
+
(kt_id, Name)
|
1136
|
+
],
|
1137
|
+
'modifiers': [
|
1138
|
+
(r'\w+', Keyword.Declaration),
|
1139
|
+
(r'\s+', Text),
|
1140
|
+
default('#pop')
|
1141
|
+
],
|
1142
|
+
'string': [
|
1143
|
+
(r'"', String, '#pop'),
|
1144
|
+
include('string_common')
|
1145
|
+
],
|
1146
|
+
'multiline_string': [
|
1147
|
+
(r'"""', String, '#pop'),
|
1148
|
+
(r'"', String),
|
1149
|
+
include('string_common')
|
1150
|
+
],
|
1151
|
+
'string_common': [
|
1152
|
+
(r'\\\\', String), # escaped backslash
|
1153
|
+
(r'\\"', String), # escaped quote
|
1154
|
+
(r'\\', String), # bare backslash
|
1155
|
+
(r'\$\{', String.Interpol, 'interpolation'),
|
1156
|
+
(r'(\$)(\w+)', bygroups(String.Interpol, Name)),
|
1157
|
+
(r'[^\\"$]+', String)
|
1158
|
+
],
|
1159
|
+
'interpolation': [
|
1160
|
+
(r'"', String),
|
1161
|
+
(r'\$\{', String.Interpol, 'interpolation'),
|
1162
|
+
(r'\{', Punctuation, 'scope'),
|
1163
|
+
(r'\}', String.Interpol, '#pop'),
|
1164
|
+
include('root')
|
1165
|
+
],
|
1166
|
+
'scope': [
|
1167
|
+
(r'\{', Punctuation, 'scope'),
|
1168
|
+
(r'\}', Punctuation, '#pop'),
|
1169
|
+
include('root')
|
1109
1170
|
]
|
1110
1171
|
}
|
1111
1172
|
|
@@ -1151,8 +1212,8 @@ class XtendLexer(RegexLexer):
|
|
1151
1212
|
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
|
1152
1213
|
(r"(''')", String, 'template'),
|
1153
1214
|
(r'(\u00BB)', String, 'template'),
|
1154
|
-
(r'"(\\\\|\\
|
1155
|
-
(r"'(\\\\|\\
|
1215
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
1216
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
1156
1217
|
(r'[a-zA-Z_]\w*:', Name.Label),
|
1157
1218
|
(r'[a-zA-Z_$]\w*', Name),
|
1158
1219
|
(r'[~^*!%&\[\](){}<>\|+=:;,./?-]', Operator),
|
@@ -1620,54 +1681,59 @@ class JasminLexer(RegexLexer):
|
|
1620
1681
|
|
1621
1682
|
|
1622
1683
|
class SarlLexer(RegexLexer):
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1684
|
+
"""
|
1685
|
+
For `SARL <http://www.sarl.io>`_ source code.
|
1686
|
+
|
1687
|
+
.. versionadded:: 2.4
|
1688
|
+
"""
|
1689
|
+
|
1690
|
+
name = 'SARL'
|
1691
|
+
aliases = ['sarl']
|
1692
|
+
filenames = ['*.sarl']
|
1693
|
+
mimetypes = ['text/x-sarl']
|
1694
|
+
|
1695
|
+
flags = re.MULTILINE | re.DOTALL
|
1696
|
+
|
1697
|
+
tokens = {
|
1698
|
+
'root': [
|
1699
|
+
# method names
|
1700
|
+
(r'^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)' # return arguments
|
1701
|
+
r'([a-zA-Z_$][\w$]*)' # method name
|
1702
|
+
r'(\s*)(\()', # signature start
|
1703
|
+
bygroups(using(this), Name.Function, Text, Operator)),
|
1704
|
+
(r'[^\S\n]+', Text),
|
1705
|
+
(r'//.*?\n', Comment.Single),
|
1706
|
+
(r'/\*.*?\*/', Comment.Multiline),
|
1707
|
+
(r'@[a-zA-Z_][\w.]*', Name.Decorator),
|
1708
|
+
(r'(as|break|case|catch|default|do|else|extends|extension|finally|'
|
1709
|
+
r'fires|for|if|implements|instanceof|new|on|requires|return|super|'
|
1710
|
+
r'switch|throw|throws|try|typeof|uses|while|with)\b',
|
1711
|
+
Keyword),
|
1712
|
+
(r'(abstract|def|dispatch|final|native|override|private|protected|'
|
1713
|
+
r'public|static|strictfp|synchronized|transient|val|var|volatile)\b',
|
1714
|
+
Keyword.Declaration),
|
1715
|
+
(r'(boolean|byte|char|double|float|int|long|short|void)\b',
|
1716
|
+
Keyword.Type),
|
1717
|
+
(r'(package)(\s+)', bygroups(Keyword.Namespace, Text)),
|
1718
|
+
(r'(false|it|null|occurrence|this|true|void)\b', Keyword.Constant),
|
1719
|
+
(r'(agent|annotation|artifact|behavior|capacity|class|enum|event|'
|
1720
|
+
r'interface|skill|space)(\s+)', bygroups(Keyword.Declaration, Text),
|
1721
|
+
'class'),
|
1722
|
+
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
|
1723
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
1724
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
1725
|
+
(r'[a-zA-Z_]\w*:', Name.Label),
|
1726
|
+
(r'[a-zA-Z_$]\w*', Name),
|
1727
|
+
(r'[~^*!%&\[\](){}<>\|+=:;,./?-]', Operator),
|
1728
|
+
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
|
1729
|
+
(r'0x[0-9a-fA-F]+', Number.Hex),
|
1730
|
+
(r'[0-9]+L?', Number.Integer),
|
1731
|
+
(r'\n', Text)
|
1732
|
+
],
|
1733
|
+
'class': [
|
1734
|
+
(r'[a-zA-Z_]\w*', Name.Class, '#pop')
|
1735
|
+
],
|
1736
|
+
'import': [
|
1737
|
+
(r'[\w.]+\*?', Name.Namespace, '#pop')
|
1738
|
+
],
|
1739
|
+
}
|