Pygments: updated Pygments to 2.3.1

Tue, 21 Apr 2020 19:47:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 21 Apr 2020 19:47:10 +0200
changeset 7547
21b0534faebc
parent 7546
bf5f777260a6
child 7548
e1c6a2e32a38

Pygments: updated Pygments to 2.3.1

docs/changelog file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/AUTHORS file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/CHANGES file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/LICENSE file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/PKG-INFO file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/__init__.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/__main__.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/cmdline.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/console.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/filter.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/filters/__init__.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatter.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/__init__.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/_mapping.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/bbcode.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/html.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/img.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/irc.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/latex.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/other.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/rtf.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/svg.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/terminal.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/formatters/terminal256.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexer.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/__init__.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_asy_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_cl_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_cocoa_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_csound_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_lasso_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_lua_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_mapping.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_mql_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_openedge_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_php_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_postgres_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_scilab_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_sourcemod_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_stan_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_stata_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_tsql_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_usd_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_vbscript_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/_vim_builtins.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/actionscript.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/agile.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/algebra.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ambient.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ampl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/apl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/archetype.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/asm.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/automation.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/basic.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/bibtex.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/boa.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/business.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/c_cpp.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/c_like.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/capnproto.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/chapel.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/clean.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/compiled.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/configs.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/console.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/crystal.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/csound.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/css.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/d.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/dalvik.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/data.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/diff.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/dotnet.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/dsls.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/dylan.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ecl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/eiffel.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/elm.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/email.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/erlang.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/esoteric.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ezhil.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/factor.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/fantom.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/felix.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/floscript.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/forth.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/fortran.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/foxpro.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/freefem.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/functional.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/go.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/grammar_notation.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/graph.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/graphics.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/haskell.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/haxe.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/hdl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/hexdump.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/html.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/idl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/igor.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/inferno.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/installers.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/int_fiction.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/iolang.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/j.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/javascript.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/julia.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/jvm.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/lisp.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/make.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/markup.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/math.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/matlab.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/mime.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ml.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/modeling.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/modula2.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/monte.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/mosel.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ncl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/nimrod.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/nit.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/nix.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/oberon.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/objective.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ooc.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/other.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/parasail.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/parsers.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/pascal.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/pawn.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/perl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/php.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/pony.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/praat.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/prolog.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/python.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/qvt.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/r.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/rdf.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/rebol.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/resource.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ride.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/rnc.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/roboconf.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/robotframework.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/ruby.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/rust.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/sas.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/scdoc.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/scripting.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/sgf.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/shell.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/sieve.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/slash.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/smalltalk.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/smv.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/snobol.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/solidity.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/special.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/sql.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/stata.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/supercollider.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/tcl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/templates.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/testing.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/text.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/textedit.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/textfmts.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/theorem.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/trafficscript.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/typoscript.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/unicon.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/urbi.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/usd.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/varnish.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/verification.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/web.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/webidl.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/webmisc.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/whiley.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/x10.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/xorg.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/lexers/zig.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/modeline.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/plugin.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/regexopt.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/scanner.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/sphinxext.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/style.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/__init__.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/abap.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/algol.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/algol_nu.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/arduino.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/autumn.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/borland.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/bw.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/colorful.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/default.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/emacs.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/friendly.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/fruity.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/igor.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/inkpot.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/lovelace.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/manni.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/monokai.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/murphy.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/native.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/paraiso_dark.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/paraiso_light.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/pastie.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/perldoc.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/rainbow_dash.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/rrt.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/sas.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/solarized.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/stata.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/stata_dark.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/stata_light.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/tango.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/trac.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/vim.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/vs.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/styles/xcode.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/token.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/unistring.py file | annotate | diff | comparison | revisions
eric6/ThirdParty/Pygments/pygments/util.py file | annotate | diff | comparison | revisions
--- a/docs/changelog	Tue Apr 21 19:44:19 2020 +0200
+++ b/docs/changelog	Tue Apr 21 19:47:10 2020 +0200
@@ -1,5 +1,10 @@
 Change Log
 ----------
+Version 20.5:
+- bug fixes
+- Third Party packages
+  -- updated Pygments to 2.3.1
+
 Version 20.4:
 - bug fixes
 - General
@@ -10,7 +15,7 @@
 - Debugger
   -- added debugging support for QRunable
 - Mercurial Interface
-  -- added support for the '--secure' flag of hg import as of Mercurial 5.3
+  -- added support for the '--secure' flag of "hg import" as of Mercurial 5.3
 - Syntax Checker
   -- updated pyflakes to repository as of 2020-02-03
 - Third Party packages
--- a/eric6.e4p	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6.e4p	Tue Apr 21 19:47:10 2020 +0200
@@ -961,6 +961,7 @@
     <Source>eric6/ThirdParty/Jasy/jasy/script/util/__init__.py</Source>
     <Source>eric6/ThirdParty/Pygments/__init__.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/__init__.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/__main__.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/cmdline.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/console.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/filter.py</Source>
@@ -996,6 +997,8 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/_stan_builtins.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/_stata_builtins.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/_tsql_builtins.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/_usd_builtins.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/_vbscript_builtins.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/_vim_builtins.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/actionscript.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/agile.py</Source>
@@ -1008,6 +1011,7 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/automation.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/basic.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/bibtex.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/boa.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/business.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/c_cpp.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/c_like.py</Source>
@@ -1030,15 +1034,18 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/ecl.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/eiffel.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/elm.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/email.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/erlang.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/esoteric.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/ezhil.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/factor.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/fantom.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/felix.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/floscript.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/forth.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/fortran.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/foxpro.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/freefem.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/functional.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/go.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/grammar_notation.py</Source>
@@ -1064,10 +1071,12 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/markup.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/math.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/matlab.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/mime.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/ml.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/modeling.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/modula2.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/monte.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/mosel.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/ncl.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/nimrod.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/nit.py</Source>
@@ -1082,6 +1091,7 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/pawn.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/perl.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/php.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/pony.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/praat.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/prolog.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/python.py</Source>
@@ -1090,23 +1100,30 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/rdf.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/rebol.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/resource.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/ride.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/rnc.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/roboconf.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/robotframework.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/ruby.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/rust.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/sas.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/scdoc.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/scripting.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/sgf.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/shell.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/sieve.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/slash.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/smalltalk.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/smv.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/snobol.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/solidity.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/special.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/sql.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/stata.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/supercollider.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/tcl.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/templates.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/testing.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/text.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/textedit.py</Source>
@@ -1114,14 +1131,18 @@
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/theorem.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/trafficscript.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/typoscript.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/unicon.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/urbi.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/usd.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/varnish.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/verification.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/web.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/webidl.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/webmisc.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/whiley.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/x10.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/lexers/xorg.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/lexers/zig.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/modeline.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/plugin.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/regexopt.py</Source>
@@ -1142,6 +1163,7 @@
     <Source>eric6/ThirdParty/Pygments/pygments/styles/friendly.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/fruity.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/igor.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/styles/inkpot.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/lovelace.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/manni.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/monokai.py</Source>
@@ -1154,7 +1176,9 @@
     <Source>eric6/ThirdParty/Pygments/pygments/styles/rainbow_dash.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/rrt.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/sas.py</Source>
-    <Source>eric6/ThirdParty/Pygments/pygments/styles/stata.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/styles/solarized.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/styles/stata_dark.py</Source>
+    <Source>eric6/ThirdParty/Pygments/pygments/styles/stata_light.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/tango.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/trac.py</Source>
     <Source>eric6/ThirdParty/Pygments/pygments/styles/vim.py</Source>
--- a/eric6/ThirdParty/Pygments/pygments/AUTHORS	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/AUTHORS	Tue Apr 21 19:47:10 2020 +0200
@@ -7,7 +7,8 @@
 
 * Sam Aaron -- Ioke lexer
 * Ali Afshar -- image formatter
-* Thomas Aglassinger -- Easytrieve, JCL, Rexx and Transact-SQL lexers
+* Thomas Aglassinger -- Easytrieve, JCL, Rexx, Transact-SQL and VBScript
+  lexers
 * Muthiah Annamalai -- Ezhil lexer
 * Kumar Appaiah -- Debian control lexer
 * Andreas Amann -- AppleScript lexer
@@ -31,8 +32,10 @@
 * Sébastien Bigaret -- QVT Operational lexer
 * Jarrett Billingsley -- MiniD lexer
 * Adam Blinkinsop -- Haskell, Redcode lexers
+* Stéphane Blondon -- SGF and Sieve lexers
 * Frits van Bommel -- assembler lexers
 * Pierre Bourdon -- bugfixes
+* Martijn Braam -- Kernel log lexer
 * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter
 * chebee7i -- Python traceback lexer improvements
 * Hiram Chirino -- Scaml and Jade lexers
@@ -59,13 +62,16 @@
 * Carlos Galdino -- Elixir and Elixir Console lexers
 * Michael Galloy -- IDL lexer
 * Naveen Garg -- Autohotkey lexer
+* Simon Garnotel -- FreeFem++ lexer
 * Laurent Gautier -- R/S lexer
 * Alex Gaynor -- PyPy log lexer
 * Richard Gerkin -- Igor Pro lexer
 * Alain Gilbert -- TypeScript lexer
 * Alex Gilding -- BlitzBasic lexer
+* GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers
 * Bertrand Goetzmann -- Groovy lexer
 * Krzysiek Goj -- Scala lexer
+* Rostyslav Golda -- FloScript lexer
 * Andrey Golovizin -- BibTeX lexers
 * Matt Good -- Genshi, Cheetah lexers
 * Michał Górny -- vim modeline support
@@ -99,6 +105,7 @@
 * Dennis Kaarsemaker -- sources.list lexer
 * Dmitri Kabak -- Inferno Limbo lexer
 * Igor Kalnitsky -- vhdl lexer
+* Colin Kennedy - USD lexer
 * Alexander Kit -- MaskJS lexer
 * Pekka Klärck -- Robot Framework lexer
 * Gerwin Klein -- Isabelle lexer
@@ -130,6 +137,7 @@
 * Stephen McKamey -- Duel/JBST lexer
 * Brian McKenna -- F# lexer
 * Charles McLaughlin -- Puppet lexer
+* Kurt McKee -- Tera Term macro lexer
 * Lukas Meuser -- BBCode formatter, Lua lexer
 * Cat Miller -- Pig lexer
 * Paul Miller -- LiveScript lexer
@@ -158,6 +166,7 @@
 * Clément Prévost -- UrbiScript lexer
 * Tanner Prynn -- cmdline -x option and loading lexers from files
 * Oleh Prypin -- Crystal lexer (based on Ruby lexer)
+* Xidorn Quan -- Web IDL lexer
 * Elias Rabel -- Fortran fixed form lexer
 * raichoo -- Idris lexer
 * Kashif Rasul -- CUDA lexer
@@ -187,7 +196,7 @@
 * Alexander Smishlajev -- Visual FoxPro lexer
 * Steve Spigarelli -- XQuery lexer
 * Jerome St-Louis -- eC lexer
-* Camil Staps -- Clean and NuSMV lexers
+* Camil Staps -- Clean and NuSMV lexers; Solarized style
 * James Strachan -- Kotlin lexer
 * Tom Stuart -- Treetop lexer
 * Colin Sullivan -- SuperCollider lexer
--- a/eric6/ThirdParty/Pygments/pygments/CHANGES	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/CHANGES	Tue Apr 21 19:47:10 2020 +0200
@@ -1,10 +1,235 @@
 Pygments changelog
 ==================
 
-Issue numbers refer to the tracker at
-<https://bitbucket.org/birkenfeld/pygments-main/issues>,
+Since 2.5.0, issue numbers refer to the tracker at
+<https://github.com/pygments/pygments/issues>,
 pull request numbers to the requests at
-<https://bitbucket.org/birkenfeld/pygments-main/pull-requests/merged>.
+<https://github.com/pygments/pygments/pulls>.
+
+
+Version 2.6.1
+-------------
+(released March 8, 2020)
+
+- This release fixes a packaging issue. No functional changes.
+
+Version 2.6
+-----------
+(released March 8, 2020)
+
+- Running Pygments on Python 2.x is no longer supported.
+  (The Python 2 lexer still exists.)
+
+- Added lexers:
+
+  * Linux kernel logs (PR#1310)
+  * LLVM MIR (PR#1361)
+  * MiniScript (PR#1397)
+  * Mosel (PR#1287, PR#1326)
+  * Parsing Expression Grammar (PR#1336)
+  * ReasonML (PR#1386)
+  * Ride (PR#1319, PR#1321)
+  * Sieve (PR#1257)
+  * USD (PR#1290)
+  * WebIDL (PR#1309)
+
+- Updated lexers:
+
+  * Apache2 (PR#1378)
+  * Chapel (PR#1357)
+  * CSound (PR#1383)
+  * D (PR#1375, PR#1362)
+  * Idris (PR#1360)
+  * Perl6/Raku lexer (PR#1344)
+  * Python3 (PR#1382, PR#1385)
+  * Rust: Updated lexer to cover more builtins (mostly macros) and miscellaneous
+  new syntax (PR#1320)
+  * SQL: Add temporal support keywords (PR#1402)
+
+- The 256-color/true-color terminal formatters now support the italic attribute
+  in styles (PR#1288)
+- Support HTTP 2/3 header (PR#1308)
+- Support missing reason in HTTP header (PR#1322)
+- Boogie/Silver: support line continuations and triggers, move contract keywords
+  to separate category (PR#1299)
+- GAS: support C-style comments (PR#1291)
+- Fix names in S lexer (PR#1330, PR#1333)
+- Fix numeric literals in Ada (PR#1334)
+- Recognize ``.mjs`` files as Javascript (PR#1392)
+- Recognize ``.eex`` files as Elixir (PR#1387)
+- Fix ``re.MULTILINE`` usage (PR#1388)
+- Recognize ``pipenv`` and ``poetry`` dependency & lock files (PR#1376)
+- Improve font search on Windows (#1247)
+- Remove unused script block (#1401)
+
+Version 2.5.2
+-------------
+(released November 29, 2019)
+
+- Fix incompatibility with some setuptools versions (PR#1316)
+
+- Fix lexing of ReST field lists (PR#1279)
+- Fix lexing of Matlab keywords as field names (PR#1282)
+- Recognize double-quoted strings in Matlab (PR#1278)
+- Avoid slow backtracking in Vim lexer (PR#1312)
+- Fix Scala highlighting of types (PR#1315)
+- Highlight field lists more consistently in ReST (PR#1279)
+- Fix highlighting Matlab keywords in field names (PR#1282)
+- Recognize Matlab double quoted strings (PR#1278)
+- Add some Terraform keywords
+- Update Modelica lexer to 3.4
+- Update Crystal examples
+
+
+Version 2.5.1
+-------------
+(released November 26, 2019)
+
+- This release fixes a packaging issue. No functional changes.
+
+
+Version 2.5.0
+-------------
+(released November 26, 2019)
+
+- Added lexers:
+
+  * Email (PR#1246)
+  * Erlang, Elixir shells (PR#823, #1521)
+  * Notmuch (PR#1264)
+  * `Scdoc <https://git.sr.ht/~sircmpwn/scdoc>`_ (PR#1268)
+  * `Solidity <https://solidity.readthedocs.io/>`_ (#1214)
+  * `Zeek <https://www.zeek.org>`_ (new name for Bro) (PR#1269)
+  * `Zig <https://ziglang.org/>`_ (PR#820)
+
+- Updated lexers:
+
+  * Apache2 Configuration (PR#1251)
+  * Bash sessions (#1253)
+  * CSound (PR#1250)
+  * Dart
+  * Dockerfile
+  * Emacs Lisp
+  * Handlebars (PR#773)
+  * Java (#1101, #987)
+  * Logtalk (PR#1261)
+  * Matlab (PR#1271)
+  * Praat (PR#1277)
+  * Python3 (PR#1255, PR#1400)
+  * Ruby
+  * YAML (#1528)
+  * Velocity
+
+- Added styles:
+
+  * Inkpot (PR#1276)
+
+- The ``PythonLexer`` class is now an alias for the former ``Python3Lexer``.
+  The old ``PythonLexer`` is available as ``Python2Lexer``.  Same change has
+  been done for the ``PythonTracebackLexer``.  The ``python3`` option for
+  the ``PythonConsoleLexer`` is now true by default.
+
+- Bump ``NasmLexer`` priority over ``TasmLexer`` for ``.asm`` files
+  (fixes #1326)
+- Default font in the ``ImageFormatter`` has been updated (#928, PR#1245)
+- Test suite switched to py.test, removed nose dependency (#1490)
+- Reduce ``TeraTerm`` lexer score -- it used to match nearly all languages
+  (#1256)
+- Treat ``Skylark``/``Starlark`` files as Python files (PR#1259)
+- Image formatter: actually respect ``line_number_separator`` option
+
+- Add LICENSE file to wheel builds
+- Agda: fix lambda highlighting
+- Dart: support ``@`` annotations
+- Dockerfile: accept ``FROM ... AS`` syntax
+- Emacs Lisp: add more string functions
+- GAS: accept registers in directive arguments
+- Java: make structural punctuation (braces, parens, colon, comma) ``Punctuation``, not ``Operator`` (#987)
+- Java: support ``var`` contextual keyword (#1101)
+- Matlab: Fix recognition of ``function`` keyword (PR#1271)
+- Python: recognize ``.jy`` filenames (#976)
+- Python: recognize ``f`` string prefix (#1156)
+- Ruby: support squiggly heredocs
+- Shell sessions: recognize Virtualenv prompt (PR#1266)
+- Velocity: support silent reference syntax
+
+
+Version 2.4.2
+-------------
+(released May 28, 2019)
+
+- Fix encoding error when guessing lexer with given ``encoding`` option
+  (#1438)
+
+
+Version 2.4.1
+-------------
+(released May 24, 2019)
+
+- Updated lexers:
+
+  * Coq (#1430)
+  * MSDOS Session (PR#734)
+  * NASM (#1517)
+  * Objective-C (PR#813, #1508)
+  * Prolog (#1511)
+  * TypeScript (#1515)
+
+- Support CSS variables in stylesheets (PR#814, #1356)
+- Fix F# lexer name (PR#709)
+- Fix ``TerminalFormatter`` using bold for bright text (#1480)
+
+
+Version 2.4.0
+-------------
+(released May 8, 2019)
+
+- Added lexers:
+
+  * Augeas (PR#807)
+  * BBC Basic (PR#806)
+  * Boa (PR#756)
+  * Charm++ CI (PR#788)
+  * DASM16 (PR#807)
+  * FloScript (PR#750)
+  * FreeFem++ (PR#785)
+  * Hspec (PR#790)
+  * Pony (PR#627)
+  * SGF (PR#780)
+  * Slash (PR#807)
+  * Slurm (PR#760)
+  * Tera Term Language (PR#749)
+  * TOML (PR#807)
+  * Unicon (PR#731)
+  * VBScript (PR#673)
+
+- Updated lexers:
+
+  * Apache2 (PR#766)
+  * Cypher (PR#746)
+  * LLVM (PR#792)
+  * Makefiles (PR#766)
+  * PHP (#1482)
+  * Rust
+  * SQL (PR#672)
+  * Stan (PR#774)
+  * Stata (PR#800)
+  * Terraform (PR#787)
+  * YAML
+
+- Add solarized style (PR#708)
+- Add support for Markdown reference-style links (PR#753)
+- Add license information to generated HTML/CSS files (#1496)
+- Change ANSI color names (PR#777)
+- Fix catastrophic backtracking in the bash lexer (#1494)
+- Fix documentation failing to build using Sphinx 2.0 (#1501)
+- Fix incorrect links in the Lisp and R lexer documentation (PR#775)
+- Fix rare unicode errors on Python 2.7 (PR#798, #1492)
+- Fix lexers popping from an empty stack (#1506)
+- TypoScript uses ``.typoscript`` now (#1498)
+- Updated Trove classifiers and ``pip`` requirements (PR#799)
+
+
 
 Version 2.3.1
 -------------
@@ -30,6 +255,7 @@
 - Fix invalid string escape sequences
 - Fix `FutureWarning` introduced by regex changes in Python 3.7
 
+
 Version 2.3.0
 -------------
 (released Nov 25, 2018)
@@ -613,7 +839,7 @@
 
 - Support ``application/javascript`` as a JavaScript mime type (#504).
 
-- Support `Offload <http://offload.codeplay.com>`_ C++ Extensions as
+- Support `Offload <https://offload.codeplay.com/>`_ C++ Extensions as
   keywords in the C++ lexer (#484).
 
 - Escape more characters in LaTeX output (#505).
--- a/eric6/ThirdParty/Pygments/pygments/LICENSE	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/LICENSE	Tue Apr 21 19:47:10 2020 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2006-2017 by the respective authors (see AUTHORS file).
+Copyright (c) 2006-2019 by the respective authors (see AUTHORS file).
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
--- a/eric6/ThirdParty/Pygments/pygments/PKG-INFO	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/PKG-INFO	Tue Apr 21 19:47:10 2020 +0200
@@ -1,28 +1,29 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: Pygments
-Version: 2.3.1
+Version: 2.6.1
 Summary: Pygments is a syntax highlighting package written in Python.
-Home-page: http://pygments.org/
+Home-page: https://pygments.org/
 Author: Georg Brandl
 Author-email: georg@python.org
 License: BSD License
-Description: Pygments
-            ~~~~~~~~
+Description: 
+        Pygments
+        ~~~~~~~~
         
-            Pygments is a syntax highlighting package written in Python.
-        
-            It is a generic syntax highlighter suitable for use in code hosting, forums,
-            wikis or other applications that need to prettify source code.  Highlights
-            are:
+        Pygments is a syntax highlighting package written in Python.
         
-            * a wide range of over 300 languages and other text formats is supported
-            * special attention is paid to details, increasing quality by a fair amount
-            * support for new languages and formats are added easily
-            * a number of output formats, presently HTML, LaTeX, RTF, SVG, all image       formats that PIL supports and ANSI sequences
-            * it is usable as a command-line tool and as a library
+        It is a generic syntax highlighter suitable for use in code hosting, forums,
+        wikis or other applications that need to prettify source code.  Highlights
+        are:
         
-            :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
-            :license: BSD, see LICENSE for details.
+        * a wide range of over 500 languages and other text formats is supported
+        * special attention is paid to details, increasing quality by a fair amount
+        * support for new languages and formats are added easily
+        * a number of output formats, presently HTML, LaTeX, RTF, SVG, all image     formats that PIL supports and ANSI sequences
+        * it is usable as a command-line tool and as a library
+        
+        :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+        :license: BSD, see LICENSE for details.
         
 Keywords: syntax highlighting
 Platform: any
@@ -32,8 +33,14 @@
 Classifier: Intended Audience :: System Administrators
 Classifier: Development Status :: 6 - Mature
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Text Processing :: Filters
 Classifier: Topic :: Utilities
+Requires-Python: >=3.5
--- a/eric6/ThirdParty/Pygments/pygments/__init__.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/__init__.py	Tue Apr 21 19:47:10 2020 +0200
@@ -17,19 +17,18 @@
     * it is usable as a command-line tool and as a library
     * ... and it highlights even Brainfuck!
 
-    The `Pygments tip`_ is installable with ``easy_install Pygments==dev``.
+    The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``.
 
-    .. _Pygments tip:
-       http://bitbucket.org/birkenfeld/pygments-main/get/tip.zip#egg=Pygments-dev
+    .. _Pygments master branch:
+       https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 import sys
+from io import StringIO, BytesIO
 
-from pygments.util import StringIO, BytesIO
-
-__version__ = '2.3.1'
+__version__ = '2.6.1'
 __docformat__ = 'restructuredtext'
 
 __all__ = ['lex', 'format', 'highlight']
@@ -84,7 +83,3 @@
     """
     return format(lex(code, lexer), formatter, outfile)
 
-
-if __name__ == '__main__':  # pragma: no cover
-    from pygments.cmdline import main
-    sys.exit(main(sys.argv))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/__main__.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.__main__
+    ~~~~~~~~~~~~~~~~~
+
+    Main entry point for ``python -m pygments``.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import sys
+import pygments.cmdline
+
+try:
+    sys.exit(pygments.cmdline.main(sys.argv))
+except KeyboardInterrupt:
+    sys.exit(1)
--- a/eric6/ThirdParty/Pygments/pygments/cmdline.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/cmdline.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,12 +5,10 @@
 
     Command line interface.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 import os
 import sys
 import getopt
@@ -18,7 +16,8 @@
 
 from pygments import __version__, highlight
 from pygments.util import ClassNotFound, OptionError, docstring_headline, \
-    guess_decode, guess_decode_from_terminal, terminal_encoding
+    guess_decode, guess_decode_from_terminal, terminal_encoding, \
+    UnclosingTextIOWrapper
 from pygments.lexers import get_all_lexers, get_lexer_by_name, guess_lexer, \
     load_lexer_from_file, get_lexer_for_filename, find_lexer_class_for_filename
 from pygments.lexers.special import TextLexer
@@ -233,7 +232,7 @@
         return 0
 
     if opts.pop('-V', None) is not None:
-        print('Pygments version %s, (c) 2006-2017 by Georg Brandl.' % __version__)
+        print('Pygments version %s, (c) 2006-2019 by Georg Brandl.' % __version__)
         return 0
 
     # handle ``pygmentize -L``
@@ -338,8 +337,17 @@
         # custom lexer, located relative to user's cwd
         if allow_custom_lexer_formatter and '.py' in lexername:
             try:
+                filename = None
+                name = None
                 if ':' in lexername:
                     filename, name = lexername.rsplit(':', 1)
+
+                    if '.py' in name:
+                        # This can happen on Windows: If the lexername is
+                        # C:\lexer.py -- return to normal load path in that case
+                        name = None
+
+                if filename and name:
                     lexer = load_lexer_from_file(filename, name,
                                                  **parsed_opts)
                 else:
@@ -397,11 +405,7 @@
     elif '-s' not in opts:  # treat stdin as full file (-s support is later)
         # read code from terminal, always in binary mode since we want to
         # decode ourselves and be tolerant with it
-        if sys.version_info > (3,):
-            # Python 3: we have to use .buffer to get a binary stream
-            code = sys.stdin.buffer.read()
-        else:
-            code = sys.stdin.read()
+        code = sys.stdin.buffer.read()  # use .buffer to get a binary stream
         if not inencoding:
             code, inencoding = guess_decode_from_terminal(code, sys.stdin)
             # else the lexer will do the decoding
@@ -432,10 +436,18 @@
         # custom formatter, located relative to user's cwd
         if allow_custom_lexer_formatter and '.py' in fmter:
             try:
+                filename = None
+                name = None
                 if ':' in fmter:
-                    file, fmtername = fmter.rsplit(':', 1)
-                    fmter = load_formatter_from_file(file, fmtername,
-                                                     **parsed_opts)
+                    # Same logic as above for custom lexer
+                    filename, name = fmter.rsplit(':', 1)
+
+                    if '.py' in name:
+                        name = None
+
+                if filename and name:
+                    fmter = load_formatter_from_file(filename, name,
+                                    **parsed_opts)
                 else:
                     fmter = load_formatter_from_file(fmter, **parsed_opts)
             except ClassNotFound as err:
@@ -466,11 +478,7 @@
                 fmter = Terminal256Formatter(**parsed_opts)
             else:
                 fmter = TerminalFormatter(**parsed_opts)
-        if sys.version_info > (3,):
-            # Python 3: we have to use .buffer to get a binary stream
-            outfile = sys.stdout.buffer
-        else:
-            outfile = sys.stdout
+        outfile = sys.stdout.buffer
 
     # determine output encoding if not explicitly selected
     if not outencoding:
@@ -485,10 +493,8 @@
     if not outfn and sys.platform in ('win32', 'cygwin') and \
        fmter.name in ('Terminal', 'Terminal256'):  # pragma: no cover
         # unfortunately colorama doesn't support binary streams on Py3
-        if sys.version_info > (3,):
-            from pygments.util import UnclosingTextIOWrapper
-            outfile = UnclosingTextIOWrapper(outfile, encoding=fmter.encoding)
-            fmter.encoding = None
+        outfile = UnclosingTextIOWrapper(outfile, encoding=fmter.encoding)
+        fmter.encoding = None
         try:
             import colorama.initialise
         except ImportError:
@@ -515,11 +521,7 @@
         # line by line processing of stdin (eg: for 'tail -f')...
         try:
             while 1:
-                if sys.version_info > (3,):
-                    # Python 3: we have to use .buffer to get a binary stream
-                    line = sys.stdin.buffer.readline()
-                else:
-                    line = sys.stdin.readline()
+                line = sys.stdin.buffer.readline()
                 if not line:
                     break
                 if not inencoding:
@@ -554,7 +556,7 @@
                   file=sys.stderr)
             print('Please report the whole traceback to the issue tracker at',
                   file=sys.stderr)
-            print('<https://bitbucket.org/birkenfeld/pygments-main/issues>.',
+            print('<https://github.com/pygments/pygments/issues>.',
                   file=sys.stderr)
             print('*' * 65, file=sys.stderr)
             print(file=sys.stderr)
--- a/eric6/ThirdParty/Pygments/pygments/console.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/console.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Format colored console output.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -22,22 +22,19 @@
 codes["blink"] = esc + "05m"
 codes["overline"] = esc + "06m"
 
-dark_colors = ["black", "darkred", "darkgreen", "brown", "darkblue",
-               "purple", "teal", "lightgray"]
-light_colors = ["darkgray", "red", "green", "yellow", "blue",
-                "fuchsia", "turquoise", "white"]
+dark_colors = ["black", "red", "green", "yellow", "blue",
+               "magenta", "cyan", "gray"]
+light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue",
+                "brightmagenta", "brightcyan", "white"]
 
 x = 30
 for d, l in zip(dark_colors, light_colors):
     codes[d] = esc + "%im" % x
-    codes[l] = esc + "%i;01m" % x
+    codes[l] = esc + "%im" % (60 + x)
     x += 1
 
 del d, l, x
 
-codes["darkteal"] = codes["turquoise"]
-codes["darkyellow"] = codes["brown"]
-codes["fuscia"] = codes["fuchsia"]
 codes["white"] = codes["bold"]
 
 
--- a/eric6/ThirdParty/Pygments/pygments/filter.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/filter.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Module that implements the default filter.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -40,7 +40,7 @@
     })
 
 
-class Filter(object):
+class Filter:
     """
     Default filter. Subclass this class or use the `simplefilter`
     decorator to create own filters.
--- a/eric6/ThirdParty/Pygments/pygments/filters/__init__.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/filters/__init__.py	Tue Apr 21 19:47:10 2020 +0200
@@ -6,7 +6,7 @@
     Module containing filter lookup functions and default
     filters.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -16,7 +16,7 @@
     string_to_tokentype
 from pygments.filter import Filter
 from pygments.util import get_list_opt, get_int_opt, get_bool_opt, \
-     get_choice_opt, ClassNotFound, OptionError, text_type, string_types
+    get_choice_opt, ClassNotFound, OptionError
 from pygments.plugin import find_plugin_filters
 
 
@@ -113,7 +113,7 @@
         Filter.__init__(self, **options)
         case = get_choice_opt(options, 'case',
                               ['lower', 'upper', 'capitalize'], 'lower')
-        self.convert = getattr(text_type, case)
+        self.convert = getattr(str, case)
 
     def filter(self, lexer, stream):
         for ttype, value in stream:
@@ -233,7 +233,7 @@
                               ('tabs',     u'»'),
                               ('newlines', u'¶')]:
             opt = options.get(name, False)
-            if isinstance(opt, string_types) and len(opt) == 1:
+            if isinstance(opt, str) and len(opt) == 1:
                 setattr(self, name, opt)
             else:
                 setattr(self, name, (opt and default or ''))
@@ -250,6 +250,7 @@
             tabs = self.tabs or u'\t'
             newlines = self.newlines or u'\n'
             regex = re.compile(r'\s')
+
             def replacefunc(wschar):
                 if wschar == ' ':
                     return spaces
@@ -302,7 +303,7 @@
 
     def filter(self, lexer, stream):
         n = self.n
-        left = n # How many characters left to gobble.
+        left = n  # How many characters left to gobble.
         for ttype, value in stream:
             # Remove ``left`` tokens from first line, ``n`` from all others.
             parts = value.split('\n')
--- a/eric6/ThirdParty/Pygments/pygments/formatter.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatter.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,25 +5,25 @@
 
     Base formatter class.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import codecs
 
-from pygments.util import get_bool_opt, string_types
+from pygments.util import get_bool_opt
 from pygments.styles import get_style_by_name
 
 __all__ = ['Formatter']
 
 
 def _lookup_style(style):
-    if isinstance(style, string_types):
+    if isinstance(style, str):
         return get_style_by_name(style)
     return style
 
 
-class Formatter(object):
+class Formatter:
     """
     Converts a token stream to text.
 
--- a/eric6/ThirdParty/Pygments/pygments/formatters/__init__.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/__init__.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Pygments formatters.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -17,7 +17,7 @@
 
 from pygments.formatters._mapping import FORMATTERS
 from pygments.plugin import find_plugin_formatters
-from pygments.util import ClassNotFound, itervalues
+from pygments.util import ClassNotFound
 
 __all__ = ['get_formatter_by_name', 'get_formatter_for_filename',
            'get_all_formatters', 'load_formatter_from_file'] + list(FORMATTERS)
@@ -45,7 +45,7 @@
 def get_all_formatters():
     """Return a generator for all formatter classes."""
     # NB: this returns formatter classes, not info like get_all_lexers().
-    for info in itervalues(FORMATTERS):
+    for info in FORMATTERS.values():
         if info[1] not in _formatter_cache:
             _load_formatters(info[0])
         yield _formatter_cache[info[1]]
@@ -58,7 +58,7 @@
 
     Returns None if not found.
     """
-    for module_name, name, aliases, _, _ in itervalues(FORMATTERS):
+    for module_name, name, aliases, _, _ in FORMATTERS.values():
         if alias in aliases:
             if name not in _formatter_cache:
                 _load_formatters(module_name)
@@ -98,7 +98,8 @@
     try:
         # This empty dict will contain the namespace for the exec'd file
         custom_namespace = {}
-        exec(open(filename, 'rb').read(), custom_namespace)
+        with open(filename, 'rb') as f:
+            exec(f.read(), custom_namespace)
         # Retrieve the class `formattername` from that namespace
         if formattername not in custom_namespace:
             raise ClassNotFound('no valid %s class found in %s' %
@@ -107,8 +108,8 @@
         # And finally instantiate it with the options
         return formatter_class(**options)
     except IOError as err:
-        raise ClassNotFound('cannot read %s' % filename)
-    except ClassNotFound as err:
+        raise ClassNotFound('cannot read %s: %s' % (filename, err))
+    except ClassNotFound:
         raise
     except Exception as err:
         raise ClassNotFound('error when loading custom formatter: %s' % err)
@@ -120,7 +121,7 @@
     Raises ClassNotFound if not found.
     """
     fn = basename(fn)
-    for modname, name, _, filenames, _ in itervalues(FORMATTERS):
+    for modname, name, _, filenames, _ in FORMATTERS.values():
         for filename in filenames:
             if _fn_matches(fn, filename):
                 if name not in _formatter_cache:
--- a/eric6/ThirdParty/Pygments/pygments/formatters/_mapping.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/_mapping.py	Tue Apr 21 19:47:10 2020 +0200
@@ -9,12 +9,10 @@
 
     Do not alter the FORMATTERS dictionary by hand.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 FORMATTERS = {
     'BBCodeFormatter': ('pygments.formatters.bbcode', 'BBCode', ('bbcode', 'bb'), (), 'Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.'),
     'BmpImageFormatter': ('pygments.formatters.img', 'img_bmp', ('bmp', 'bitmap'), ('*.bmp',), 'Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
@@ -34,7 +32,6 @@
     'TestcaseFormatter': ('pygments.formatters.other', 'Testcase', ('testcase',), (), 'Format tokens as appropriate for a new testcase.')
 }
 
-
 if __name__ == '__main__':  # pragma: no cover
     import sys
     import os
--- a/eric6/ThirdParty/Pygments/pygments/formatters/bbcode.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/bbcode.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     BBcode formatter.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/formatters/html.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/html.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,20 +5,18 @@
 
     Formatter for HTML output.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 import os
 import sys
 import os.path
+from io import StringIO
 
 from pygments.formatter import Formatter
 from pygments.token import Token, Text, STANDARD_TYPES
-from pygments.util import get_bool_opt, get_int_opt, get_list_opt, \
-    StringIO, string_types, iteritems
+from pygments.util import get_bool_opt, get_int_opt, get_list_opt
 
 try:
     import ctags
@@ -42,6 +40,13 @@
     return text.translate(table)
 
 
+def webify(color):
+    if color.startswith('calc') or color.startswith('var'):
+        return color
+    else:
+        return '#' + color
+
+
 def _get_ttype_class(ttype):
     fname = STANDARD_TYPES.get(ttype)
     if fname:
@@ -55,6 +60,11 @@
 
 
 CSSFILE_TEMPLATE = '''\
+/*
+generated by Pygments <https://pygments.org/>
+Copyright 2006-2019 by the Pygments team.
+Licensed under the BSD license, see LICENSE for details.
+*/
 td.linenos { background-color: #f0f0f0; padding-right: 10px; }
 span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
 pre { line-height: 125%%; }
@@ -64,7 +74,11 @@
 DOC_HEADER = '''\
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
-
+<!--
+generated by Pygments <https://pygments.org/>
+Copyright 2006-2019 by the Pygments team.
+Licensed under the BSD license, see LICENSE for details.
+-->
 <html>
 <head>
   <title>%(title)s</title>
@@ -322,11 +336,17 @@
         .. versionadded:: 1.6
 
     `filename`
-        A string used to generate a filename when rendering <pre> blocks,
+        A string used to generate a filename when rendering ``<pre>`` blocks,
         for example if displaying source code.
 
         .. versionadded:: 2.1
 
+    `wrapcode`
+        Wrap the code inside ``<pre>`` blocks using ``<code>``, as recommended
+        by the HTML5 specification.
+
+        .. versionadded:: 2.4
+
 
     **Subclassing the HTML formatter**
 
@@ -395,6 +415,7 @@
         self.tagsfile = self._decodeifneeded(options.get('tagsfile', ''))
         self.tagurlformat = self._decodeifneeded(options.get('tagurlformat', ''))
         self.filename = self._decodeifneeded(options.get('filename', ''))
+        self.wrapcode = get_bool_opt(options, 'wrapcode', False)
 
         if self.tagsfile:
             if not ctags:
@@ -414,7 +435,7 @@
         self.linenostep = abs(get_int_opt(options, 'linenostep', 1))
         self.linenospecial = abs(get_int_opt(options, 'linenospecial', 0))
         self.nobackground = get_bool_opt(options, 'nobackground', False)
-        self.lineseparator = options.get('lineseparator', '\n')
+        self.lineseparator = options.get('lineseparator', u'\n')
         self.lineanchors = options.get('lineanchors', '')
         self.linespans = options.get('linespans', '')
         self.anchorlinenos = options.get('anchorlinenos', False)
@@ -451,7 +472,7 @@
             name = self._get_css_class(ttype)
             style = ''
             if ndef['color']:
-                style += 'color: #%s; ' % ndef['color']
+                style += 'color: %s; ' % webify(ndef['color'])
             if ndef['bold']:
                 style += 'font-weight: bold; '
             if ndef['italic']:
@@ -459,9 +480,9 @@
             if ndef['underline']:
                 style += 'text-decoration: underline; '
             if ndef['bgcolor']:
-                style += 'background-color: #%s; ' % ndef['bgcolor']
+                style += 'background-color: %s; ' % webify(ndef['bgcolor'])
             if ndef['border']:
-                style += 'border: 1px solid #%s; ' % ndef['border']
+                style += 'border: 1px solid %s; ' % webify(ndef['border'])
             if style:
                 t2c[ttype] = name
                 # save len(ttype) to enable ordering the styles by
@@ -476,7 +497,7 @@
         """
         if arg is None:
             arg = ('cssclass' in self.options and '.'+self.cssclass or '')
-        if isinstance(arg, string_types):
+        if isinstance(arg, str):
             args = [arg]
         else:
             args = list(arg)
@@ -490,7 +511,7 @@
             return ', '.join(tmp)
 
         styles = [(level, ttype, cls, style)
-                  for cls, (style, ttype, level) in iteritems(self.class2style)
+                  for cls, (style, ttype, level) in self.class2style.items()
                   if cls and style]
         styles.sort()
         lines = ['%s { %s } /* %s */' % (prefix(cls), style, repr(ttype)[6:])
@@ -535,10 +556,9 @@
             # write CSS file only if noclobber_cssfile isn't given as an option.
             try:
                 if not os.path.exists(cssfilename) or not self.noclobber_cssfile:
-                    cf = open(cssfilename, "w")
-                    cf.write(CSSFILE_TEMPLATE %
-                             {'styledefs': self.get_style_defs('body')})
-                    cf.close()
+                    with open(cssfilename, "w") as cf:
+                        cf.write(CSSFILE_TEMPLATE %
+                                 {'styledefs': self.get_style_defs('body')})
             except IOError as err:
                 err.strerror = 'Error writing CSS file: ' + err.strerror
                 raise
@@ -709,6 +729,12 @@
             yield tup
         yield 0, '</pre>'
 
+    def _wrap_code(self, inner):
+        yield 0, '<code>'
+        for tup in inner:
+            yield tup
+        yield 0, '</code>'
+
     def _format_lines(self, tokensource):
         """
         Just format the tokens, without any wrapping tags.
@@ -815,7 +841,10 @@
         individual lines, in custom generators. See docstring
         for `format`. Can be overridden.
         """
-        return self._wrap_div(self._wrap_pre(source))
+        if self.wrapcode:
+            return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
+        else:
+            return self._wrap_div(self._wrap_pre(source))
 
     def format_unencoded(self, tokensource, outfile):
         """
--- a/eric6/ThirdParty/Pygments/pygments/formatters/img.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/img.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Formatter for Pixmap output.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -14,7 +14,7 @@
 
 from pygments.formatter import Formatter
 from pygments.util import get_bool_opt, get_int_opt, get_list_opt, \
-    get_choice_opt, xrange
+    get_choice_opt
 
 import subprocess
 
@@ -46,9 +46,9 @@
 }
 
 # A sane default for modern systems
-DEFAULT_FONT_NAME_NIX = 'Bitstream Vera Sans Mono'
+DEFAULT_FONT_NAME_NIX = 'DejaVu Sans Mono'
 DEFAULT_FONT_NAME_WIN = 'Courier New'
-DEFAULT_FONT_NAME_MAC = 'Courier New'
+DEFAULT_FONT_NAME_MAC = 'Menlo'
 
 
 class PilNotAvailable(ImportError):
@@ -59,7 +59,7 @@
     """When there are no usable fonts specified"""
 
 
-class FontManager(object):
+class FontManager:
     """
     Manages a set of fonts: normal, italic, bold, etc...
     """
@@ -125,8 +125,8 @@
         for font_dir in (os.path.join(os.getenv("HOME"), 'Library/Fonts/'),
                          '/Library/Fonts/', '/System/Library/Fonts/'):
             font_map.update(
-                ((os.path.splitext(f)[0].lower(), os.path.join(font_dir, f))
-                    for f in os.listdir(font_dir) if f.lower().endswith('ttf')))
+                (os.path.splitext(f)[0].lower(), os.path.join(font_dir, f))
+                for f in os.listdir(font_dir) if f.lower().endswith('ttf'))
 
         for name in STYLES['NORMAL']:
             path = self._get_mac_font_path(font_map, self.font_name, name)
@@ -164,31 +164,43 @@
             return None
 
     def _create_win(self):
-        try:
-            key = _winreg.OpenKey(
-                _winreg.HKEY_LOCAL_MACHINE,
-                r'Software\Microsoft\Windows NT\CurrentVersion\Fonts')
-        except EnvironmentError:
+        lookuperror = None
+        keynames = [ (_winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows NT\CurrentVersion\Fonts'),
+                     (_winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Fonts'),
+                     (_winreg.HKEY_LOCAL_MACHINE, r'Software\Microsoft\Windows NT\CurrentVersion\Fonts'),
+                     (_winreg.HKEY_LOCAL_MACHINE, r'Software\Microsoft\Windows\CurrentVersion\Fonts') ]
+        for keyname in keynames:
             try:
-                key = _winreg.OpenKey(
-                    _winreg.HKEY_LOCAL_MACHINE,
-                    r'Software\Microsoft\Windows\CurrentVersion\Fonts')
+                key = _winreg.OpenKey(*keyname)
+                try:
+                    path = self._lookup_win(key, self.font_name, STYLES['NORMAL'], True)
+                    self.fonts['NORMAL'] = ImageFont.truetype(path, self.font_size)
+                    for style in ('ITALIC', 'BOLD', 'BOLDITALIC'):
+                        path = self._lookup_win(key, self.font_name, STYLES[style])
+                        if path:
+                            self.fonts[style] = ImageFont.truetype(path, self.font_size)
+                        else:
+                            if style == 'BOLDITALIC':
+                                self.fonts[style] = self.fonts['BOLD']
+                            else:
+                                self.fonts[style] = self.fonts['NORMAL']
+                    return
+                except FontNotFound as err:
+                    lookuperror = err
+                finally:
+                    _winreg.CloseKey(key)
             except EnvironmentError:
-                raise FontNotFound('Can\'t open Windows font registry key')
-        try:
-            path = self._lookup_win(key, self.font_name, STYLES['NORMAL'], True)
-            self.fonts['NORMAL'] = ImageFont.truetype(path, self.font_size)
-            for style in ('ITALIC', 'BOLD', 'BOLDITALIC'):
-                path = self._lookup_win(key, self.font_name, STYLES[style])
-                if path:
-                    self.fonts[style] = ImageFont.truetype(path, self.font_size)
-                else:
-                    if style == 'BOLDITALIC':
-                        self.fonts[style] = self.fonts['BOLD']
-                    else:
-                        self.fonts[style] = self.fonts['NORMAL']
-        finally:
-            _winreg.CloseKey(key)
+                pass
+        else:
+            # If we get here, we checked all registry keys and had no luck
+            # We can be in one of two situations now:
+            # * All key lookups failed. In this case lookuperror is None and we
+            #   will raise a generic error
+            # * At least one lookup failed with a FontNotFound error. In this
+            #   case, we will raise that as a more specific error
+            if lookuperror:
+                raise lookuperror
+            raise FontNotFound('Can\'t open Windows font registry key')
 
     def get_char_size(self):
         """
@@ -237,7 +249,8 @@
         bold and italic fonts will be generated.  This really should be a
         monospace font to look sane.
 
-        Default: "Bitstream Vera Sans Mono" on Windows, Courier New on \\*nix
+        Default: "Courier New" on Windows, "Menlo" on Mac OS, and
+                 "DejaVu Sans Mono" on \\*nix
 
     `font_size`
         The font size in points to be used.
@@ -503,7 +516,7 @@
         """
         if not self.line_numbers:
             return
-        for p in xrange(self.maxlineno):
+        for p in range(self.maxlineno):
             n = p + self.line_number_start
             if (n % self.line_number_step) == 0:
                 self._draw_linenumber(p, n)
@@ -521,7 +534,8 @@
         rectw = self.image_pad + self.line_number_width - self.line_number_pad
         draw.rectangle([(0, 0), (rectw, recth)],
                        fill=self.line_number_bg)
-        draw.line([(rectw, 0), (rectw, recth)], fill=self.line_number_fg)
+        if self.line_number_separator:
+            draw.line([(rectw, 0), (rectw, recth)], fill=self.line_number_fg)
         del draw
 
     def format(self, tokensource, outfile):
--- a/eric6/ThirdParty/Pygments/pygments/formatters/irc.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/irc.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Formatter for IRC output
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -25,55 +25,55 @@
 IRC_COLORS = {
     Token:              ('',            ''),
 
-    Whitespace:         ('lightgray',   'darkgray'),
-    Comment:            ('lightgray',   'darkgray'),
-    Comment.Preproc:    ('teal',        'turquoise'),
-    Keyword:            ('darkblue',    'blue'),
-    Keyword.Type:       ('teal',        'turquoise'),
-    Operator.Word:      ('purple',      'fuchsia'),
-    Name.Builtin:       ('teal',        'turquoise'),
-    Name.Function:      ('darkgreen',   'green'),
-    Name.Namespace:     ('_teal_',      '_turquoise_'),
-    Name.Class:         ('_darkgreen_', '_green_'),
-    Name.Exception:     ('teal',        'turquoise'),
-    Name.Decorator:     ('darkgray',    'lightgray'),
-    Name.Variable:      ('darkred',     'red'),
-    Name.Constant:      ('darkred',     'red'),
-    Name.Attribute:     ('teal',        'turquoise'),
-    Name.Tag:           ('blue',        'blue'),
-    String:             ('brown',       'brown'),
-    Number:             ('darkblue',    'blue'),
+    Whitespace:         ('gray',   'brightblack'),
+    Comment:            ('gray',   'brightblack'),
+    Comment.Preproc:    ('cyan',        'brightcyan'),
+    Keyword:            ('blue',    'brightblue'),
+    Keyword.Type:       ('cyan',        'brightcyan'),
+    Operator.Word:      ('magenta',      'brightcyan'),
+    Name.Builtin:       ('cyan',        'brightcyan'),
+    Name.Function:      ('green',   'brightgreen'),
+    Name.Namespace:     ('_cyan_',      '_brightcyan_'),
+    Name.Class:         ('_green_', '_brightgreen_'),
+    Name.Exception:     ('cyan',        'brightcyan'),
+    Name.Decorator:     ('brightblack',    'gray'),
+    Name.Variable:      ('red',     'brightred'),
+    Name.Constant:      ('red',     'brightred'),
+    Name.Attribute:     ('cyan',        'brightcyan'),
+    Name.Tag:           ('brightblue',        'brightblue'),
+    String:             ('yellow',       'yellow'),
+    Number:             ('blue',    'brightblue'),
 
-    Generic.Deleted:    ('red',        'red'),
-    Generic.Inserted:   ('darkgreen',  'green'),
+    Generic.Deleted:    ('brightred',        'brightred'),
+    Generic.Inserted:   ('green',  'brightgreen'),
     Generic.Heading:    ('**',         '**'),
-    Generic.Subheading: ('*purple*',   '*fuchsia*'),
-    Generic.Error:      ('red',        'red'),
+    Generic.Subheading: ('*magenta*',   '*brightmagenta*'),
+    Generic.Error:      ('brightred',        'brightred'),
 
-    Error:              ('_red_',      '_red_'),
+    Error:              ('_brightred_',      '_brightred_'),
 }
 
 
 IRC_COLOR_MAP = {
     'white': 0,
     'black': 1,
-    'darkblue': 2,
-    'green': 3,
-    'red': 4,
-    'brown': 5,
-    'purple': 6,
+    'blue': 2,
+    'brightgreen': 3,
+    'brightred': 4,
+    'yellow': 5,
+    'magenta': 6,
     'orange': 7,
-    'darkgreen': 7, #compat w/ ansi
-    'yellow': 8,
+    'green': 7, #compat w/ ansi
+    'brightyellow': 8,
     'lightgreen': 9,
-    'turquoise': 9, # compat w/ ansi
-    'teal': 10,
+    'brightcyan': 9, # compat w/ ansi
+    'cyan': 10,
     'lightblue': 11,
-    'darkred': 11, # compat w/ ansi
-    'blue': 12,
-    'fuchsia': 13,
-    'darkgray': 14,
-    'lightgray': 15,
+    'red': 11, # compat w/ ansi
+    'brightblue': 12,
+    'brightmagenta': 13,
+    'brightblack': 14,
+    'gray': 15,
 }
 
 def ircformat(color, text):
--- a/eric6/ThirdParty/Pygments/pygments/formatters/latex.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/latex.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,17 +5,16 @@
 
     Formatter for LaTeX fancyvrb output.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import division
+from io import StringIO
 
 from pygments.formatter import Formatter
 from pygments.lexer import Lexer
 from pygments.token import Token, STANDARD_TYPES
-from pygments.util import get_bool_opt, get_int_opt, StringIO, xrange, \
-    iteritems
+from pygments.util import get_bool_opt, get_int_opt
 
 
 __all__ = ['LatexFormatter']
@@ -322,7 +321,7 @@
         """
         cp = self.commandprefix
         styles = []
-        for name, definition in iteritems(self.cmd2def):
+        for name, definition in self.cmd2def.items():
             styles.append(r'\expandafter\def\csname %s@tok@%s\endcsname{%s}' %
                           (cp, name, definition))
         return STYLE_TEMPLATE % {'cp': self.commandprefix,
@@ -354,7 +353,7 @@
                 if self.texcomments:
                     # Try to guess comment starting lexeme and escape it ...
                     start = value[0:1]
-                    for i in xrange(1, len(value)):
+                    for i in range(1, len(value)):
                         if start[0] != value[i]:
                             break
                         start += value[i]
--- a/eric6/ThirdParty/Pygments/pygments/formatters/other.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/other.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,12 +5,12 @@
 
     Other formatters: NullFormatter, RawTokenFormatter.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 from pygments.formatter import Formatter
-from pygments.util import OptionError, get_choice_opt
+from pygments.util import get_choice_opt
 from pygments.token import Token
 from pygments.console import colorize
 
@@ -87,14 +87,17 @@
         if self.compress == 'gz':
             import gzip
             outfile = gzip.GzipFile('', 'wb', 9, outfile)
+
             def write(text):
                 outfile.write(text.encode())
             flush = outfile.flush
         elif self.compress == 'bz2':
             import bz2
             compressor = bz2.BZ2Compressor(9)
+
             def write(text):
                 outfile.write(compressor.compress(text.encode()))
+
             def flush():
                 outfile.write(compressor.flush())
                 outfile.flush()
@@ -115,14 +118,15 @@
                 write("%s\t%r\n" % (ttype, value))
         flush()
 
+
 TESTCASE_BEFORE = u'''\
-    def testNeedsName(self):
+    def testNeedsName(lexer):
         fragment = %r
         tokens = [
 '''
 TESTCASE_AFTER = u'''\
         ]
-        self.assertEqual(tokens, list(self.lexer.get_tokens(fragment)))
+        assert list(lexer.get_tokens(fragment)) == tokens
 '''
 
 
--- a/eric6/ThirdParty/Pygments/pygments/formatters/rtf.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/rtf.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A formatter that generates RTF files.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -35,7 +35,7 @@
         ``'default'``).
 
     `fontface`
-        The used font famliy, for example ``Bitstream Vera Sans``. Defaults to
+        The used font family, for example ``Bitstream Vera Sans``. Defaults to
         some generic font which is supposed to have fixed width.
 
     `fontsize`
@@ -70,7 +70,7 @@
                    .replace(u'}', u'\\}')
 
     def _escape_text(self, text):
-        # empty strings, should give a small performance improvment
+        # empty strings, should give a small performance improvement
         if not text:
             return u''
 
--- a/eric6/ThirdParty/Pygments/pygments/formatters/svg.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/svg.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,11 +5,12 @@
 
     Formatter for SVG output.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 from pygments.formatter import Formatter
+from pygments.token import Comment
 from pygments.util import get_bool_opt, get_int_opt
 
 __all__ = ['SvgFormatter']
@@ -52,6 +53,19 @@
         The value to give the wrapping ``<g>`` element's ``font-size``
         attribute, defaults to ``"14px"``.
 
+    `linenos`
+        If ``True``, add line numbers (default: ``False``).
+
+    `linenostart`
+        The line number for the first line (default: ``1``).
+
+    `linenostep`
+        If set to a number n > 1, only every nth line number is printed.
+        
+    `linenowidth`
+        Maximum width devoted to line numbers (default: ``3*ystep``, sufficient
+        for up to 4-digit line numbers. Increase width for longer code blocks).  
+        
     `xoffset`
         Starting offset in X direction, defaults to ``0``.
 
@@ -92,6 +106,10 @@
         self.yoffset = get_int_opt(options, 'yoffset', int_fs)
         self.ystep = get_int_opt(options, 'ystep', int_fs + 5)
         self.spacehack = get_bool_opt(options, 'spacehack', True)
+        self.linenos = get_bool_opt(options,'linenos',False)
+        self.linenostart = get_int_opt(options,'linenostart',1)
+        self.linenostep = get_int_opt(options,'linenostep',1)
+        self.linenowidth = get_int_opt(options,'linenowidth', 3*self.ystep)
         self._stylecache = {}
 
     def format_unencoded(self, tokensource, outfile):
@@ -115,7 +133,19 @@
             outfile.write('<svg xmlns="http://www.w3.org/2000/svg">\n')
             outfile.write('<g font-family="%s" font-size="%s">\n' %
                           (self.fontfamily, self.fontsize))
-        outfile.write('<text x="%s" y="%s" xml:space="preserve">' % (x, y))
+        
+        counter = self.linenostart 
+        counter_step = self.linenostep
+        counter_style = self._get_style(Comment)
+        line_x = x
+        
+        if self.linenos:
+            if counter % counter_step == 0:
+                outfile.write('<text x="%s" y="%s" %s text-anchor="end">%s</text>' % (x+self.linenowidth,y,counter_style,counter))
+            line_x += self.linenowidth + self.ystep
+            counter += 1
+
+        outfile.write('<text x="%s" y="%s" xml:space="preserve">' % (line_x, y))
         for ttype, value in tokensource:
             style = self._get_style(ttype)
             tspan = style and '<tspan' + style + '>' or ''
@@ -127,8 +157,12 @@
             for part in parts[:-1]:
                 outfile.write(tspan + part + tspanend)
                 y += self.ystep
-                outfile.write('</text>\n<text x="%s" y="%s" '
-                              'xml:space="preserve">' % (x, y))
+                outfile.write('</text>\n')
+                if self.linenos and counter % counter_step == 0:
+                    outfile.write('<text x="%s" y="%s" text-anchor="end" %s>%s</text>' % (x+self.linenowidth,y,counter_style,counter))
+                
+                counter += 1
+                outfile.write('<text x="%s" y="%s" ' 'xml:space="preserve">' % (line_x,y))
             outfile.write(tspan + parts[-1] + tspanend)
         outfile.write('</text>')
 
--- a/eric6/ThirdParty/Pygments/pygments/formatters/terminal.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/terminal.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Formatter for terminal output with ANSI sequences.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -26,33 +26,33 @@
 TERMINAL_COLORS = {
     Token:              ('',            ''),
 
-    Whitespace:         ('lightgray',   'darkgray'),
-    Comment:            ('lightgray',   'darkgray'),
-    Comment.Preproc:    ('teal',        'turquoise'),
-    Keyword:            ('darkblue',    'blue'),
-    Keyword.Type:       ('teal',        'turquoise'),
-    Operator.Word:      ('purple',      'fuchsia'),
-    Name.Builtin:       ('teal',        'turquoise'),
-    Name.Function:      ('darkgreen',   'green'),
-    Name.Namespace:     ('_teal_',      '_turquoise_'),
-    Name.Class:         ('_darkgreen_', '_green_'),
-    Name.Exception:     ('teal',        'turquoise'),
-    Name.Decorator:     ('darkgray',    'lightgray'),
-    Name.Variable:      ('darkred',     'red'),
-    Name.Constant:      ('darkred',     'red'),
-    Name.Attribute:     ('teal',        'turquoise'),
-    Name.Tag:           ('blue',        'blue'),
-    String:             ('brown',       'brown'),
-    Number:             ('darkblue',    'blue'),
+    Whitespace:         ('gray',   'brightblack'),
+    Comment:            ('gray',   'brightblack'),
+    Comment.Preproc:    ('cyan',        'brightcyan'),
+    Keyword:            ('blue',    'brightblue'),
+    Keyword.Type:       ('cyan',        'brightcyan'),
+    Operator.Word:      ('magenta',      'brightmagenta'),
+    Name.Builtin:       ('cyan',        'brightcyan'),
+    Name.Function:      ('green',   'brightgreen'),
+    Name.Namespace:     ('_cyan_',      '_brightcyan_'),
+    Name.Class:         ('_green_', '_brightgreen_'),
+    Name.Exception:     ('cyan',        'brightcyan'),
+    Name.Decorator:     ('brightblack',    'gray'),
+    Name.Variable:      ('red',     'brightred'),
+    Name.Constant:      ('red',     'brightred'),
+    Name.Attribute:     ('cyan',        'brightcyan'),
+    Name.Tag:           ('brightblue',        'brightblue'),
+    String:             ('yellow',       'yellow'),
+    Number:             ('blue',    'brightblue'),
 
-    Generic.Deleted:    ('red',        'red'),
-    Generic.Inserted:   ('darkgreen',  'green'),
+    Generic.Deleted:    ('brightred',        'brightred'),
+    Generic.Inserted:   ('green',  'brightgreen'),
     Generic.Heading:    ('**',         '**'),
-    Generic.Subheading: ('*purple*',   '*fuchsia*'),
+    Generic.Subheading: ('*magenta*',   '*brightmagenta*'),
     Generic.Prompt:     ('**',         '**'),
-    Generic.Error:      ('red',        'red'),
+    Generic.Error:      ('brightred',        'brightred'),
 
-    Error:              ('_red_',      '_red_'),
+    Error:              ('_brightred_',      '_brightred_'),
 }
 
 
@@ -92,12 +92,6 @@
         self._lineno = 0
 
     def format(self, tokensource, outfile):
-        # hack: if the output is a terminal and has an encoding set,
-        # use that to avoid unicode encode problems
-        if not self.encoding and hasattr(outfile, "encoding") and \
-           hasattr(outfile, "isatty") and outfile.isatty() and \
-           sys.version_info < (3,):
-            self.encoding = outfile.encoding
         return Formatter.format(self, tokensource, outfile)
 
     def _write_lineno(self, outfile):
--- a/eric6/ThirdParty/Pygments/pygments/formatters/terminal256.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/formatters/terminal256.py	Tue Apr 21 19:47:10 2020 +0200
@@ -11,7 +11,7 @@
 
     Formatter version 1.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -35,11 +35,12 @@
 
 
 class EscapeSequence:
-    def __init__(self, fg=None, bg=None, bold=False, underline=False):
+    def __init__(self, fg=None, bg=None, bold=False, underline=False, italic=False):
         self.fg = fg
         self.bg = bg
         self.bold = bold
         self.underline = underline
+        self.italic = italic
 
     def escape(self, attrs):
         if len(attrs):
@@ -50,7 +51,7 @@
         attrs = []
         if self.fg is not None:
             if self.fg in ansicolors:
-                esc = codes[self.fg[5:]]
+                esc = codes[self.fg.replace('ansi','')]
                 if ';01m' in esc:
                     self.bold = True
                 # extract fg color code.
@@ -59,7 +60,7 @@
                 attrs.extend(("38", "5", "%i" % self.fg))
         if self.bg is not None:
             if self.bg in ansicolors:
-                esc = codes[self.bg[5:]]
+                esc = codes[self.bg.replace('ansi','')]
                 # extract fg color code, add 10 for bg.
                 attrs.append(str(int(esc[2:4])+10))
             else:
@@ -68,6 +69,8 @@
             attrs.append("01")
         if self.underline:
             attrs.append("04")
+        if self.italic:
+            attrs.append("03")
         return self.escape(attrs)
 
     def true_color_string(self):
@@ -80,6 +83,8 @@
             attrs.append("01")
         if self.underline:
             attrs.append("04")
+        if self.italic:
+            attrs.append("03")
         return self.escape(attrs)
 
     def reset_string(self):
@@ -88,7 +93,7 @@
             attrs.append("39")
         if self.bg is not None:
             attrs.append("49")
-        if self.bold or self.underline:
+        if self.bold or self.underline or self.italic:
             attrs.append("00")
         return self.escape(attrs)
 
@@ -110,6 +115,12 @@
        `Terminal256Formatter` will map these to non extended foreground color.
        See :ref:`AnsiTerminalStyle` for more information.
 
+    .. versionchanged:: 2.4
+       The ANSI color names have been updated with names that are easier to
+       understand and align with colornames of other projects and terminals.
+       See :ref:`this table <new-ansi-color-names>` for more information.
+
+
     Options accepted:
 
     `style`
@@ -129,6 +140,7 @@
 
         self.usebold = 'nobold' not in options
         self.useunderline = 'nounderline' not in options
+        self.useitalic = 'noitalic' not in options
 
         self._build_color_table()  # build an RGB-to-256 color conversion table
         self._setup_styles()  # convert selected style's colors to term. colors
@@ -189,7 +201,7 @@
     def _color_index(self, color):
         index = self.best_match.get(color, None)
         if color in ansicolors:
-            # strip the `#ansi` part and look up code
+            # strip the `ansi/#ansi` part and look up code
             index = color
             self.best_match[color] = index
         if index is None:
@@ -221,16 +233,12 @@
                 escape.bold = True
             if self.useunderline and ndef['underline']:
                 escape.underline = True
+            if self.useitalic and ndef['italic']:
+                escape.italic = True
             self.style_string[str(ttype)] = (escape.color_string(),
                                              escape.reset_string())
 
     def format(self, tokensource, outfile):
-        # hack: if the output is a terminal and has an encoding set,
-        # use that to avoid unicode encode problems
-        if not self.encoding and hasattr(outfile, "encoding") and \
-           hasattr(outfile, "isatty") and outfile.isatty() and \
-           sys.version_info < (3,):
-            self.encoding = outfile.encoding
         return Formatter.format(self, tokensource, outfile)
 
     def format_unencoded(self, tokensource, outfile):
@@ -305,5 +313,7 @@
                 escape.bold = True
             if self.useunderline and ndef['underline']:
                 escape.underline = True
+            if self.useitalic and ndef['italic']:
+                escape.italic = True
             self.style_string[str(ttype)] = (escape.true_color_string(),
                                              escape.reset_string())
--- a/eric6/ThirdParty/Pygments/pygments/lexer.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexer.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,12 +5,10 @@
 
     Base lexer classes.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 import re
 import sys
 import time
@@ -19,7 +17,7 @@
 from pygments.filters import get_filter_by_name
 from pygments.token import Error, Text, Other, _TokenType
 from pygments.util import get_bool_opt, get_int_opt, get_list_opt, \
-    make_analysator, text_type, add_metaclass, iteritems, Future, guess_decode
+    make_analysator, Future, guess_decode
 from pygments.regexopt import regex_opt
 
 __all__ = ['Lexer', 'RegexLexer', 'ExtendedRegexLexer', 'DelegatingLexer',
@@ -48,8 +46,7 @@
         return type.__new__(mcs, name, bases, d)
 
 
-@add_metaclass(LexerMeta)
-class Lexer(object):
+class Lexer(metaclass=LexerMeta):
     """
     Lexer for a specific language.
 
@@ -145,7 +142,7 @@
         Also preprocess the text, i.e. expand tabs and strip it if
         wanted and applies registered filters.
         """
-        if not isinstance(text, text_type):
+        if not isinstance(text, str):
             if self.encoding == 'guess':
                 text, _ = guess_decode(text)
             elif self.encoding == 'chardet':
@@ -252,7 +249,7 @@
     pass
 
 
-class _inherit(object):
+class _inherit:
     """
     Indicates the a state should inherit from its superclass.
     """
@@ -275,7 +272,7 @@
         pass
 
 
-class _PseudoMatch(object):
+class _PseudoMatch:
     """
     A pseudo match object constructed from a string.
     """
@@ -328,11 +325,12 @@
     return callback
 
 
-class _This(object):
+class _This:
     """
     Special singleton used for indicating the caller class.
     Used by ``using``.
     """
+
 this = _This()
 
 
@@ -536,7 +534,7 @@
         for c in cls.__mro__:
             toks = c.__dict__.get('tokens', {})
 
-            for state, items in iteritems(toks):
+            for state, items in toks.items():
                 curitems = tokens.get(state)
                 if curitems is None:
                     # N.b. because this is assigned by reference, sufficiently
@@ -582,8 +580,7 @@
         return type.__call__(cls, *args, **kwds)
 
 
-@add_metaclass(RegexLexerMeta)
-class RegexLexer(Lexer):
+class RegexLexer(Lexer, metaclass=RegexLexerMeta):
     """
     Base for simple stateful regular expression-based lexers.
     Simplifies the lexing process so that you need only
@@ -639,14 +636,20 @@
                         if isinstance(new_state, tuple):
                             for state in new_state:
                                 if state == '#pop':
-                                    statestack.pop()
+                                    if len(statestack) > 1:
+                                        statestack.pop()
                                 elif state == '#push':
                                     statestack.append(statestack[-1])
                                 else:
                                     statestack.append(state)
                         elif isinstance(new_state, int):
-                            # pop
-                            del statestack[new_state:]
+                            # pop, but keep at least one state on the stack
+                            # (random code leading to unexpected pops should
+                            # not allow exceptions)
+                            if abs(new_state) >= len(statestack):
+                                del statestack[1:]
+                            else:
+                                del statestack[new_state:]
                         elif new_state == '#push':
                             statestack.append(statestack[-1])
                         else:
@@ -670,7 +673,7 @@
                     break
 
 
-class LexerContext(object):
+class LexerContext:
     """
     A helper object that holds lexer position data.
     """
@@ -724,14 +727,18 @@
                         if isinstance(new_state, tuple):
                             for state in new_state:
                                 if state == '#pop':
-                                    ctx.stack.pop()
+                                    if len(ctx.stack) > 1:
+                                        ctx.stack.pop()
                                 elif state == '#push':
                                     ctx.stack.append(ctx.stack[-1])
                                 else:
                                     ctx.stack.append(state)
                         elif isinstance(new_state, int):
-                            # pop
-                            del ctx.stack[new_state:]
+                            # see RegexLexer for why this check is made
+                            if abs(new_state) >= len(ctx.stack):
+                                del ctx.state[1:]
+                            else:
+                                del ctx.stack[new_state:]
                         elif new_state == '#push':
                             ctx.stack.append(ctx.stack[-1])
                         else:
@@ -840,8 +847,7 @@
         return match_func
 
 
-@add_metaclass(ProfilingRegexLexerMeta)
-class ProfilingRegexLexer(RegexLexer):
+class ProfilingRegexLexer(RegexLexer, metaclass=ProfilingRegexLexerMeta):
     """Drop-in replacement for RegexLexer that does profiling of its regexes."""
 
     _prof_data = []
--- a/eric6/ThirdParty/Pygments/pygments/lexers/__init__.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/__init__.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Pygments lexers.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -18,11 +18,15 @@
 from pygments.lexers._mapping import LEXERS
 from pygments.modeline import get_filetype_from_buffer
 from pygments.plugin import find_plugin_lexers
-from pygments.util import ClassNotFound, itervalues, guess_decode
+from pygments.util import ClassNotFound, guess_decode
 
+COMPAT = {
+    'Python3Lexer': 'PythonLexer',
+    'Python3TracebackLexer': 'PythonTracebackLexer',
+}
 
 __all__ = ['get_lexer_by_name', 'get_lexer_for_filename', 'find_lexer_class',
-           'guess_lexer', 'load_lexer_from_file'] + list(LEXERS)
+           'guess_lexer', 'load_lexer_from_file'] + list(LEXERS) + list(COMPAT)
 
 _lexer_cache = {}
 _pattern_cache = {}
@@ -48,7 +52,7 @@
     """Return a generator of tuples in the form ``(name, aliases,
     filenames, mimetypes)`` of all know lexers.
     """
-    for item in itervalues(LEXERS):
+    for item in LEXERS.values():
         yield item[1:]
     for lexer in find_plugin_lexers():
         yield lexer.name, lexer.aliases, lexer.filenames, lexer.mimetypes
@@ -62,7 +66,7 @@
     if name in _lexer_cache:
         return _lexer_cache[name]
     # lookup builtin lexers
-    for module_name, lname, aliases, _, _ in itervalues(LEXERS):
+    for module_name, lname, aliases, _, _ in LEXERS.values():
         if name == lname:
             _load_lexers(module_name)
             return _lexer_cache[name]
@@ -82,7 +86,7 @@
     if not _alias:
         raise ClassNotFound('no lexer for alias %r found' % _alias)
     # lookup builtin lexers
-    for module_name, name, aliases, _, _ in itervalues(LEXERS):
+    for module_name, name, aliases, _, _ in LEXERS.values():
         if _alias.lower() in aliases:
             if name not in _lexer_cache:
                 _load_lexers(module_name)
@@ -103,7 +107,7 @@
         raise ClassNotFound('no lexer for alias %r found' % _alias)
 
     # lookup builtin lexers
-    for module_name, name, aliases, _, _ in itervalues(LEXERS):
+    for module_name, name, aliases, _, _ in LEXERS.values():
         if _alias.lower() in aliases:
             if name not in _lexer_cache:
                 _load_lexers(module_name)
@@ -133,7 +137,8 @@
     try:
         # This empty dict will contain the namespace for the exec'd file
         custom_namespace = {}
-        exec(open(filename, 'rb').read(), custom_namespace)
+        with open(filename, 'rb') as f:
+            exec(f.read(), custom_namespace)
         # Retrieve the class `lexername` from that namespace
         if lexername not in custom_namespace:
             raise ClassNotFound('no valid %s class found in %s' %
@@ -142,8 +147,8 @@
         # And finally instantiate it with the options
         return lexer_class(**options)
     except IOError as err:
-        raise ClassNotFound('cannot read %s' % filename)
-    except ClassNotFound as err:
+        raise ClassNotFound('cannot read %s: %s' % (filename, err))
+    except ClassNotFound:
         raise
     except Exception as err:
         raise ClassNotFound('error when loading custom lexer: %s' % err)
@@ -159,7 +164,7 @@
     """
     matches = []
     fn = basename(_fn)
-    for modname, name, _, filenames, _ in itervalues(LEXERS):
+    for modname, name, _, filenames, _ in LEXERS.values():
         for filename in filenames:
             if _fn_matches(fn, filename):
                 if name not in _lexer_cache:
@@ -170,7 +175,7 @@
             if _fn_matches(fn, filename):
                 matches.append((cls, filename))
 
-    if sys.version_info > (3,) and isinstance(code, bytes):
+    if isinstance(code, bytes):
         # decode it, since all analyse_text functions expect unicode
         code = guess_decode(code)
 
@@ -211,7 +216,7 @@
 
     Raises ClassNotFound if not found.
     """
-    for modname, name, _, _, mimetypes in itervalues(LEXERS):
+    for modname, name, _, _, mimetypes in LEXERS.values():
         if _mime in mimetypes:
             if name not in _lexer_cache:
                 _load_lexers(modname)
@@ -288,6 +293,13 @@
 def guess_lexer(_text, **options):
     """Guess a lexer by strong distinctions in the text (eg, shebang)."""
 
+    if not isinstance(_text, str):
+        inencoding = options.get('inencoding', options.get('encoding'))
+        if inencoding:
+            _text = _text.decode(inencoding or 'utf8')
+        else:
+            _text, _ = guess_decode(_text)
+
     # try to get a vim modeline first
     ft = get_filetype_from_buffer(_text)
 
@@ -319,6 +331,8 @@
             cls = _lexer_cache[info[1]]
             setattr(self, name, cls)
             return cls
+        if name in COMPAT:
+            return getattr(self, COMPAT[name])
         raise AttributeError(name)
 
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_asy_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_asy_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -10,11 +10,11 @@
     TODO: perl/python script in Asymptote SVN similar to asy-list.pl but only
     for function and variable names.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-ASYFUNCNAME = set((
+ASYFUNCNAME = {
     'AND',
     'Arc',
     'ArcArrow',
@@ -1038,9 +1038,9 @@
     'ztick',
     'ztick3',
     'ztrans'
-))
+}
 
-ASYVARNAME = set((
+ASYVARNAME = {
     'AliceBlue',
     'Align',
     'Allow',
@@ -1642,4 +1642,4 @@
     'ylabelwidth',
     'zerotickfuzz',
     'zerowinding'
-))
+}
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_cl_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_cl_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,11 +5,11 @@
 
     ANSI Common Lisp builtins.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-BUILTIN_FUNCTIONS = set((  # 638 functions
+BUILTIN_FUNCTIONS = {  # 638 functions
     '<', '<=', '=', '>', '>=', '-', '/', '/=', '*', '+', '1-', '1+',
     'abort', 'abs', 'acons', 'acos', 'acosh', 'add-method', 'adjoin',
     'adjustable-array-p', 'adjust-array', 'allocate-instance',
@@ -157,17 +157,17 @@
     'wild-pathname-p', 'write', 'write-byte', 'write-char', 'write-line',
     'write-sequence', 'write-string', 'write-to-string', 'yes-or-no-p',
     'y-or-n-p', 'zerop',
-))
+}
 
-SPECIAL_FORMS = set((
+SPECIAL_FORMS = {
     'block', 'catch', 'declare', 'eval-when', 'flet', 'function', 'go', 'if',
     'labels', 'lambda', 'let', 'let*', 'load-time-value', 'locally', 'macrolet',
     'multiple-value-call', 'multiple-value-prog1', 'progn', 'progv', 'quote',
     'return-from', 'setq', 'symbol-macrolet', 'tagbody', 'the', 'throw',
     'unwind-protect',
-))
+}
 
-MACROS = set((
+MACROS = {
     'and', 'assert', 'call-method', 'case', 'ccase', 'check-type', 'cond',
     'ctypecase', 'decf', 'declaim', 'defclass', 'defconstant', 'defgeneric',
     'define-compiler-macro', 'define-condition', 'define-method-combination',
@@ -188,19 +188,19 @@
     'with-input-from-string', 'with-open-file', 'with-open-stream',
     'with-output-to-string', 'with-package-iterator', 'with-simple-restart',
     'with-slots', 'with-standard-io-syntax',
-))
+}
 
-LAMBDA_LIST_KEYWORDS = set((
+LAMBDA_LIST_KEYWORDS = {
     '&allow-other-keys', '&aux', '&body', '&environment', '&key', '&optional',
     '&rest', '&whole',
-))
+}
 
-DECLARATIONS = set((
+DECLARATIONS = {
     'dynamic-extent', 'ignore', 'optimize', 'ftype', 'inline', 'special',
     'ignorable', 'notinline', 'type',
-))
+}
 
-BUILTIN_TYPES = set((
+BUILTIN_TYPES = {
     'atom', 'boolean', 'base-char', 'base-string', 'bignum', 'bit',
     'compiled-function', 'extended-char', 'fixnum', 'keyword', 'nil',
     'signed-byte', 'short-float', 'single-float', 'double-float', 'long-float',
@@ -217,9 +217,9 @@
     'simple-type-error', 'simple-warning', 'stream-error', 'storage-condition',
     'style-warning', 'type-error', 'unbound-variable', 'unbound-slot',
     'undefined-function', 'warning',
-))
+}
 
-BUILTIN_CLASSES = set((
+BUILTIN_CLASSES = {
     'array', 'broadcast-stream', 'bit-vector', 'built-in-class', 'character',
     'class', 'complex', 'concatenated-stream', 'cons', 'echo-stream',
     'file-stream', 'float', 'function', 'generic-function', 'hash-table',
@@ -229,4 +229,4 @@
     'standard-generic-function', 'standard-method', 'standard-object',
     'string-stream', 'stream', 'string', 'structure-class', 'structure-object',
     'symbol', 'synonym-stream', 't', 'two-way-stream', 'vector',
-))
+}
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_cocoa_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_cocoa_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -8,15 +8,13 @@
 
     File may be also used as standalone generator for aboves.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
-COCOA_INTERFACES = set(['UITableViewCell', 'HKCorrelationQuery', 'NSURLSessionDataTask', 'PHFetchOptions', 'NSLinguisticTagger', 'NSStream', 'AVAudioUnitDelay', 'GCMotion', 'SKPhysicsWorld', 'NSString', 'CMAttitude', 'AVAudioEnvironmentDistanceAttenuationParameters', 'HKStatisticsCollection', 'SCNPlane', 'CBPeer', 'JSContext', 'SCNTransaction', 'SCNTorus', 'AVAudioUnitEffect', 'UICollectionReusableView', 'MTLSamplerDescriptor', 'AVAssetReaderSampleReferenceOutput', 'AVMutableCompositionTrack', 'GKLeaderboard', 'NSFetchedResultsController', 'SKRange', 'MKTileOverlayRenderer', 'MIDINetworkSession', 'UIVisualEffectView', 'CIWarpKernel', 'PKObject', 'MKRoute', 'MPVolumeView', 'UIPrintInfo', 'SCNText', 'ADClient', 'PKPayment', 'AVMutableAudioMix', 'GLKEffectPropertyLight', 'WKScriptMessage', 'AVMIDIPlayer', 'PHCollectionListChangeRequest', 'UICollectionViewLayout', 'NSMutableCharacterSet', 'SKPaymentTransaction', 'NEOnDemandRuleConnect', 'NSShadow', 'SCNView', 'NSURLSessionConfiguration', 'MTLVertexAttributeDescriptor', 'CBCharacteristic', 'HKQuantityType', 'CKLocationSortDescriptor', 'NEVPNIKEv2SecurityAssociationParameters', 'CMStepCounter', 'NSNetService', 'AVAssetWriterInputMetadataAdaptor', 'UICollectionView', 'UIViewPrintFormatter', 'SCNLevelOfDetail', 'CAShapeLayer', 'MCPeerID', 'MPRatingCommand', 'WKNavigation', 'NSDictionary', 'NSFileVersion', 'CMGyroData', 'AVAudioUnitDistortion', 'CKFetchRecordsOperation', 'SKPhysicsJointSpring', 'SCNHitTestResult', 'AVAudioTime', 'CIFilter', 'UIView', 'SCNConstraint', 'CAPropertyAnimation', 'MKMapItem', 'MPRemoteCommandCenter', 'PKPaymentSummaryItem', 'UICollectionViewFlowLayoutInvalidationContext', 'UIInputViewController', 'PKPass', 'SCNPhysicsBehavior', 'MTLRenderPassColorAttachmentDescriptor', 'MKPolygonRenderer', 'CKNotification', 'JSValue', 'PHCollectionList', 'CLGeocoder', 'NSByteCountFormatter', 'AVCaptureScreenInput', 'MPFeedbackCommand', 'CAAnimation', 'MKOverlayPathView', 'UIActionSheet', 'UIMotionEffectGroup', 'NSLengthFormatter', 'UIBarItem', 'SKProduct', 'AVAssetExportSession', 'NSKeyedUnarchiver', 'NSMutableSet', 'SCNPyramid', 'PHAssetCollection', 'MKMapView', 'HMHomeManager', 'CATransition', 'MTLCompileOptions', 'UIVibrancyEffect', 'CLCircularRegion', 'MKTileOverlay', 'SCNShape', 'ACAccountCredential', 'SKPhysicsJointLimit', 'MKMapSnapshotter', 'AVMediaSelectionGroup', 'NSIndexSet', 'CBPeripheralManager', 'CKRecordZone', 'AVAudioRecorder', 'NSURL', 'CBCentral', 'NSNumber', 'AVAudioOutputNode', 'MTLVertexAttributeDescriptorArray', 'MKETAResponse', 'SKTransition', 'SSReadingList', 'HKSourceQuery', 'UITableViewRowAction', 'UITableView', 'SCNParticlePropertyController', 'AVCaptureStillImageOutput', 'GCController', 'AVAudioPlayerNode', 'AVAudioSessionPortDescription', 'NSHTTPURLResponse', 'NEOnDemandRuleEvaluateConnection', 'SKEffectNode', 'HKQuantity', 'GCControllerElement', 'AVPlayerItemAccessLogEvent', 'SCNBox', 'NSExtensionContext', 'MKOverlayRenderer', 'SCNPhysicsVehicle', 'NSDecimalNumber', 'EKReminder', 'MKPolylineView', 'CKQuery', 'AVAudioMixerNode', 'GKAchievementDescription', 'EKParticipant', 'NSBlockOperation', 'UIActivityItemProvider', 'CLLocation', 'NSBatchUpdateRequest', 'PHContentEditingOutput', 'PHObjectChangeDetails', 'HKWorkoutType', 'MPMoviePlayerController', 'AVAudioFormat', 'HMTrigger', 'MTLRenderPassDepthAttachmentDescriptor', 'SCNRenderer', 'GKScore', 'UISplitViewController', 'HKSource', 'NSURLConnection', 'ABUnknownPersonViewController', 'SCNTechnique', 'UIMenuController', 'NSEvent', 'SKTextureAtlas', 'NSKeyedArchiver', 'GKLeaderboardSet', 'NSSimpleCString', 'AVAudioPCMBuffer', 'CBATTRequest', 'GKMatchRequest', 'AVMetadataObject', 'SKProductsRequest', 'UIAlertView', 'NSIncrementalStore', 'MFMailComposeViewController', 'SCNFloor', 'NSSortDescriptor', 'CKFetchNotificationChangesOperation', 'MPMovieAccessLog', 'NSManagedObjectContext', 'AVAudioUnitGenerator', 'WKBackForwardList', 'SKMutableTexture', 'AVCaptureAudioDataOutput', 'ACAccount', 'AVMetadataItem', 'MPRatingCommandEvent', 'AVCaptureDeviceInputSource', 'CLLocationManager', 'MPRemoteCommand', 'AVCaptureSession', 'UIStepper', 'UIRefreshControl', 'NEEvaluateConnectionRule', 'CKModifyRecordsOperation', 'UICollectionViewTransitionLayout', 'CBCentralManager', 'NSPurgeableData', 'PKShippingMethod', 'SLComposeViewController', 'NSHashTable', 'MKUserTrackingBarButtonItem', 'UILexiconEntry', 'CMMotionActivity', 'SKAction', 'SKShader', 'AVPlayerItemOutput', 'MTLRenderPassAttachmentDescriptor', 'UIDocumentInteractionController', 'UIDynamicItemBehavior', 'NSMutableDictionary', 'UILabel', 'AVCaptureInputPort', 'NSExpression', 'CAInterAppAudioTransportView', 'SKMutablePayment', 'UIImage', 'PHCachingImageManager', 'SCNTransformConstraint', 'HKCorrelationType', 'UIColor', 'SCNGeometrySource', 'AVCaptureAutoExposureBracketedStillImageSettings', 'UIPopoverBackgroundView', 'UIToolbar', 'NSNotificationCenter', 'UICollectionViewLayoutAttributes', 'AVAssetReaderOutputMetadataAdaptor', 'NSEntityMigrationPolicy', 'HMUser', 'NSLocale', 'NSURLSession', 'SCNCamera', 'NSTimeZone', 'UIManagedDocument', 'AVMutableVideoCompositionLayerInstruction', 'AVAssetTrackGroup', 'NSInvocationOperation', 'ALAssetRepresentation', 'AVQueuePlayer', 'HMServiceGroup', 'UIPasteboard', 'PHContentEditingInput', 'NSLayoutManager', 'EKCalendarChooser', 'EKObject', 'CATiledLayer', 'GLKReflectionMapEffect', 'NSManagedObjectID', 'NSEnergyFormatter', 'SLRequest', 'HMCharacteristic', 'AVPlayerLayer', 'MTLRenderPassDescriptor', 'SKPayment', 'NSPointerArray', 'AVAudioMix', 'SCNLight', 'MCAdvertiserAssistant', 'MKMapSnapshotOptions', 'HKCategorySample', 'AVAudioEnvironmentReverbParameters', 'SCNMorpher', 'AVTimedMetadataGroup', 'CBMutableCharacteristic', 'NSFetchRequest', 'UIDevice', 'NSManagedObject', 'NKAssetDownload', 'AVOutputSettingsAssistant', 'SKPhysicsJointPin', 'UITabBar', 'UITextInputMode', 'NSFetchRequestExpression', 'HMActionSet', 'CTSubscriber', 'PHAssetChangeRequest', 'NSPersistentStoreRequest', 'UITabBarController', 'HKQuantitySample', 'AVPlayerItem', 'AVSynchronizedLayer', 'MKDirectionsRequest', 'NSMetadataItem', 'UIPresentationController', 'UINavigationItem', 'PHFetchResultChangeDetails', 'PHImageManager', 'AVCaptureManualExposureBracketedStillImageSettings', 'UIStoryboardPopoverSegue', 'SCNLookAtConstraint', 'UIGravityBehavior', 'UIWindow', 'CBMutableDescriptor', 'NEOnDemandRuleDisconnect', 'UIBezierPath', 'UINavigationController', 'ABPeoplePickerNavigationController', 'EKSource', 'AVAssetWriterInput', 'AVPlayerItemTrack', 'GLKEffectPropertyTexture', 'NSHTTPCookie', 'NSURLResponse', 'SKPaymentQueue', 'NSAssertionHandler', 'MKReverseGeocoder', 'GCControllerAxisInput', 'NSArray', 'NSOrthography', 'NSURLSessionUploadTask', 'NSCharacterSet', 'AVMutableVideoCompositionInstruction', 'AVAssetReaderOutput', 'EAGLContext', 'WKFrameInfo', 'CMPedometer', 'MyClass', 'CKModifyBadgeOperation', 'AVCaptureAudioFileOutput', 'SKEmitterNode', 'NSMachPort', 'AVVideoCompositionCoreAnimationTool', 'PHCollection', 'SCNPhysicsWorld', 'NSURLRequest', 'CMAccelerometerData', 'NSNetServiceBrowser', 'CLFloor', 'AVAsynchronousVideoCompositionRequest', 'SCNGeometry', 'SCNIKConstraint', 'CIKernel', 'CAGradientLayer', 'HKCharacteristicType', 'NSFormatter', 'SCNAction', 'CATransaction', 'CBUUID', 'UIStoryboard', 'MPMediaLibrary', 'UITapGestureRecognizer', 'MPMediaItemArtwork', 'NSURLSessionTask', 'AVAudioUnit', 'MCBrowserViewController', 'UIFontDescriptor', 'NSRelationshipDescription', 'HKSample', 'WKWebView', 'NSMutableAttributedString', 'NSPersistentStoreAsynchronousResult', 'MPNowPlayingInfoCenter', 'MKLocalSearch', 'EAAccessory', 'HKCorrelation', 'CATextLayer', 'NSNotificationQueue', 'UINib', 'GLKTextureLoader', 'HKObjectType', 'NSValue', 'NSMutableIndexSet', 'SKPhysicsContact', 'NSProgress', 'AVPlayerViewController', 'CAScrollLayer', 'GKSavedGame', 'NSTextCheckingResult', 'PHObjectPlaceholder', 'SKConstraint', 'EKEventEditViewController', 'NSEntityDescription', 'NSURLCredentialStorage', 'UIApplication', 'SKDownload', 'SCNNode', 'MKLocalSearchRequest', 'SKScene', 'UISearchDisplayController', 'NEOnDemandRule', 'MTLRenderPassStencilAttachmentDescriptor', 'CAReplicatorLayer', 'UIPrintPageRenderer', 'EKCalendarItem', 'NSUUID', 'EAAccessoryManager', 'NEOnDemandRuleIgnore', 'SKRegion', 'AVAssetResourceLoader', 'EAWiFiUnconfiguredAccessoryBrowser', 'NSUserActivity', 'CTCall', 'UIPrinterPickerController', 'CIVector', 'UINavigationBar', 'UIPanGestureRecognizer', 'MPMediaQuery', 'ABNewPersonViewController', 'CKRecordZoneID', 'HKAnchoredObjectQuery', 'CKFetchRecordZonesOperation', 'UIStoryboardSegue', 'ACAccountType', 'GKSession', 'SKVideoNode', 'PHChange', 'SKReceiptRefreshRequest', 'GCExtendedGamepadSnapshot', 'MPSeekCommandEvent', 'GCExtendedGamepad', 'CAValueFunction', 'SCNCylinder', 'NSNotification', 'NSBatchUpdateResult', 'PKPushCredentials', 'SCNPhysicsSliderJoint', 'AVCaptureDeviceFormat', 'AVPlayerItemErrorLog', 'NSMapTable', 'NSSet', 'CMMotionManager', 'GKVoiceChatService', 'UIPageControl', 'UILexicon', 'MTLArrayType', 'AVAudioUnitReverb', 'MKGeodesicPolyline', 'AVMutableComposition', 'NSLayoutConstraint', 'UIPrinter', 'NSOrderedSet', 'CBAttribute', 'PKPushPayload', 'NSIncrementalStoreNode', 'EKEventStore', 'MPRemoteCommandEvent', 'UISlider', 'UIBlurEffect', 'CKAsset', 'AVCaptureInput', 'AVAudioEngine', 'MTLVertexDescriptor', 'SKPhysicsBody', 'NSOperation', 'PKPaymentPass', 'UIImageAsset', 'MKMapCamera', 'SKProductsResponse', 'GLKEffectPropertyMaterial', 'AVCaptureDevice', 'CTCallCenter', 'CABTMIDILocalPeripheralViewController', 'NEVPNManager', 'HKQuery', 'SCNPhysicsContact', 'CBMutableService', 'AVSampleBufferDisplayLayer', 'SCNSceneSource', 'SKLightNode', 'CKDiscoveredUserInfo', 'NSMutableArray', 'MTLDepthStencilDescriptor', 'MTLArgument', 'NSMassFormatter', 'CIRectangleFeature', 'PKPushRegistry', 'NEVPNConnection', 'MCNearbyServiceBrowser', 'NSOperationQueue', 'MKPolylineRenderer', 'HKWorkout', 'NSValueTransformer', 'UICollectionViewFlowLayout', 'MPChangePlaybackRateCommandEvent', 'NSEntityMapping', 'SKTexture', 'NSMergePolicy', 'UITextInputStringTokenizer', 'NSRecursiveLock', 'AVAsset', 'NSUndoManager', 'AVAudioUnitSampler', 'NSItemProvider', 'SKUniform', 'MPMediaPickerController', 'CKOperation', 'MTLRenderPipelineDescriptor', 'EAWiFiUnconfiguredAccessory', 'NSFileCoordinator', 'SKRequest', 'NSFileHandle', 'NSConditionLock', 'UISegmentedControl', 'NSManagedObjectModel', 'UITabBarItem', 'SCNCone', 'MPMediaItem', 'SCNMaterial', 'EKRecurrenceRule', 'UIEvent', 'UITouch', 'UIPrintInteractionController', 'CMDeviceMotion', 'NEVPNProtocol', 'NSCompoundPredicate', 'HKHealthStore', 'MKMultiPoint', 'HKSampleType', 'UIPrintFormatter', 'AVAudioUnitEQFilterParameters', 'SKView', 'NSConstantString', 'UIPopoverController', 'CKDatabase', 'AVMetadataFaceObject', 'UIAccelerometer', 'EKEventViewController', 'CMAltitudeData', 'MTLStencilDescriptor', 'UISwipeGestureRecognizer', 'NSPort', 'MKCircleRenderer', 'AVCompositionTrack', 'NSAsynchronousFetchRequest', 'NSUbiquitousKeyValueStore', 'NSMetadataQueryResultGroup', 'AVAssetResourceLoadingDataRequest', 'UITableViewHeaderFooterView', 'CKNotificationID', 'AVAudioSession', 'HKUnit', 'NSNull', 'NSPersistentStoreResult', 'MKCircleView', 'AVAudioChannelLayout', 'NEVPNProtocolIKEv2', 'WKProcessPool', 'UIAttachmentBehavior', 'CLBeacon', 'NSInputStream', 'NSURLCache', 'GKPlayer', 'NSMappingModel', 'CIQRCodeFeature', 'AVMutableVideoComposition', 'PHFetchResult', 'NSAttributeDescription', 'AVPlayer', 'MKAnnotationView', 'PKPaymentRequest', 'NSTimer', 'CBDescriptor', 'MKOverlayView', 'AVAudioUnitTimePitch', 'NSSaveChangesRequest', 'UIReferenceLibraryViewController', 'SKPhysicsJointFixed', 'UILocalizedIndexedCollation', 'UIInterpolatingMotionEffect', 'UIDocumentPickerViewController', 'AVAssetWriter', 'NSBundle', 'SKStoreProductViewController', 'GLKViewController', 'NSMetadataQueryAttributeValueTuple', 'GKTurnBasedMatch', 'AVAudioFile', 'UIActivity', 'NSPipe', 'MKShape', 'NSMergeConflict', 'CIImage', 'HKObject', 'UIRotationGestureRecognizer', 'AVPlayerItemLegibleOutput', 'AVAssetImageGenerator', 'GCControllerButtonInput', 'CKMarkNotificationsReadOperation', 'CKSubscription', 'MPTimedMetadata', 'NKIssue', 'UIScreenMode', 'HMAccessoryBrowser', 'GKTurnBasedEventHandler', 'UIWebView', 'MKPolyline', 'JSVirtualMachine', 'AVAssetReader', 'NSAttributedString', 'GKMatchmakerViewController', 'NSCountedSet', 'UIButton', 'WKNavigationResponse', 'GKLocalPlayer', 'MPMovieErrorLog', 'AVSpeechUtterance', 'HKStatistics', 'UILocalNotification', 'HKBiologicalSexObject', 'AVURLAsset', 'CBPeripheral', 'NSDateComponentsFormatter', 'SKSpriteNode', 'UIAccessibilityElement', 'AVAssetWriterInputGroup', 'HMZone', 'AVAssetReaderAudioMixOutput', 'NSEnumerator', 'UIDocument', 'MKLocalSearchResponse', 'UISimpleTextPrintFormatter', 'PHPhotoLibrary', 'CBService', 'UIDocumentMenuViewController', 'MCSession', 'QLPreviewController', 'CAMediaTimingFunction', 'UITextPosition', 'ASIdentifierManager', 'AVAssetResourceLoadingRequest', 'SLComposeServiceViewController', 'UIPinchGestureRecognizer', 'PHObject', 'NSExtensionItem', 'HKSampleQuery', 'MTLRenderPipelineColorAttachmentDescriptorArray', 'MKRouteStep', 'SCNCapsule', 'NSMetadataQuery', 'AVAssetResourceLoadingContentInformationRequest', 'UITraitCollection', 'CTCarrier', 'NSFileSecurity', 'UIAcceleration', 'UIMotionEffect', 'MTLRenderPipelineReflection', 'CLHeading', 'CLVisit', 'MKDirectionsResponse', 'HMAccessory', 'MTLStructType', 'UITextView', 'CMMagnetometerData', 'UICollisionBehavior', 'UIProgressView', 'CKServerChangeToken', 'UISearchBar', 'MKPlacemark', 'AVCaptureConnection', 'NSPropertyMapping', 'ALAssetsFilter', 'SK3DNode', 'AVPlayerItemErrorLogEvent', 'NSJSONSerialization', 'AVAssetReaderVideoCompositionOutput', 'ABPersonViewController', 'CIDetector', 'GKTurnBasedMatchmakerViewController', 'MPMediaItemCollection', 'SCNSphere', 'NSCondition', 'NSURLCredential', 'MIDINetworkConnection', 'NSFileProviderExtension', 'NSDecimalNumberHandler', 'NSAtomicStoreCacheNode', 'NSAtomicStore', 'EKAlarm', 'CKNotificationInfo', 'AVAudioUnitEQ', 'UIPercentDrivenInteractiveTransition', 'MKPolygon', 'AVAssetTrackSegment', 'MTLVertexAttribute', 'NSExpressionDescription', 'HKStatisticsCollectionQuery', 'NSURLAuthenticationChallenge', 'NSDirectoryEnumerator', 'MKDistanceFormatter', 'UIAlertAction', 'NSPropertyListSerialization', 'GKPeerPickerController', 'UIUserNotificationSettings', 'UITableViewController', 'GKNotificationBanner', 'MKPointAnnotation', 'MTLRenderPassColorAttachmentDescriptorArray', 'NSCache', 'SKPhysicsJoint', 'NSXMLParser', 'UIViewController', 'PKPaymentToken', 'MFMessageComposeViewController', 'AVAudioInputNode', 'NSDataDetector', 'CABTMIDICentralViewController', 'AVAudioUnitMIDIInstrument', 'AVCaptureVideoPreviewLayer', 'AVAssetWriterInputPassDescription', 'MPChangePlaybackRateCommand', 'NSURLComponents', 'CAMetalLayer', 'UISnapBehavior', 'AVMetadataMachineReadableCodeObject', 'CKDiscoverUserInfosOperation', 'NSTextAttachment', 'NSException', 'UIMenuItem', 'CMMotionActivityManager', 'SCNGeometryElement', 'NCWidgetController', 'CAEmitterLayer', 'MKUserLocation', 'UIImagePickerController', 'CIFeature', 'AVCaptureDeviceInput', 'ALAsset', 'NSURLSessionDownloadTask', 'SCNPhysicsHingeJoint', 'MPMoviePlayerViewController', 'NSMutableOrderedSet', 'SCNMaterialProperty', 'UIFont', 'AVCaptureVideoDataOutput', 'NSCachedURLResponse', 'ALAssetsLibrary', 'NSInvocation', 'UILongPressGestureRecognizer', 'NSTextStorage', 'WKWebViewConfiguration', 'CIFaceFeature', 'MKMapSnapshot', 'GLKEffectPropertyFog', 'AVComposition', 'CKDiscoverAllContactsOperation', 'AVAudioMixInputParameters', 'CAEmitterBehavior', 'PKPassLibrary', 'UIMutableUserNotificationCategory', 'NSLock', 'NEVPNProtocolIPSec', 'ADBannerView', 'UIDocumentPickerExtensionViewController', 'UIActivityIndicatorView', 'AVPlayerMediaSelectionCriteria', 'CALayer', 'UIAccessibilityCustomAction', 'UIBarButtonItem', 'AVAudioSessionRouteDescription', 'CLBeaconRegion', 'HKBloodTypeObject', 'MTLVertexBufferLayoutDescriptorArray', 'CABasicAnimation', 'AVVideoCompositionInstruction', 'AVMutableTimedMetadataGroup', 'EKRecurrenceEnd', 'NSTextContainer', 'TWTweetComposeViewController', 'PKPaymentAuthorizationViewController', 'UIScrollView', 'WKNavigationAction', 'AVPlayerItemMetadataOutput', 'EKRecurrenceDayOfWeek', 'NSNumberFormatter', 'MTLComputePipelineReflection', 'UIScreen', 'CLRegion', 'NSProcessInfo', 'GLKTextureInfo', 'SCNSkinner', 'AVCaptureMetadataOutput', 'SCNAnimationEvent', 'NSTextTab', 'JSManagedValue', 'NSDate', 'UITextChecker', 'WKBackForwardListItem', 'NSData', 'NSParagraphStyle', 'AVMutableMetadataItem', 'EKCalendar', 'HKWorkoutEvent', 'NSMutableURLRequest', 'UIVideoEditorController', 'HMTimerTrigger', 'AVAudioUnitVarispeed', 'UIDynamicAnimator', 'AVCompositionTrackSegment', 'GCGamepadSnapshot', 'MPMediaEntity', 'GLKSkyboxEffect', 'UISwitch', 'EKStructuredLocation', 'UIGestureRecognizer', 'NSProxy', 'GLKBaseEffect', 'UIPushBehavior', 'GKScoreChallenge', 'NSCoder', 'MPMediaPlaylist', 'NSDateComponents', 'WKUserScript', 'EKEvent', 'NSDateFormatter', 'NSAsynchronousFetchResult', 'AVAssetWriterInputPixelBufferAdaptor', 'UIVisualEffect', 'UICollectionViewCell', 'UITextField', 'CLPlacemark', 'MPPlayableContentManager', 'AVCaptureOutput', 'HMCharacteristicWriteAction', 'CKModifySubscriptionsOperation', 'NSPropertyDescription', 'GCGamepad', 'UIMarkupTextPrintFormatter', 'SCNTube', 'NSPersistentStoreCoordinator', 'AVAudioEnvironmentNode', 'GKMatchmaker', 'CIContext', 'NSThread', 'SLComposeSheetConfigurationItem', 'SKPhysicsJointSliding', 'NSPredicate', 'GKVoiceChat', 'SKCropNode', 'AVCaptureAudioPreviewOutput', 'NSStringDrawingContext', 'GKGameCenterViewController', 'UIPrintPaper', 'SCNPhysicsBallSocketJoint', 'UICollectionViewLayoutInvalidationContext', 'GLKEffectPropertyTransform', 'AVAudioIONode', 'UIDatePicker', 'MKDirections', 'ALAssetsGroup', 'CKRecordZoneNotification', 'SCNScene', 'MPMovieAccessLogEvent', 'CKFetchSubscriptionsOperation', 'CAEmitterCell', 'AVAudioUnitTimeEffect', 'HMCharacteristicMetadata', 'MKPinAnnotationView', 'UIPickerView', 'UIImageView', 'UIUserNotificationCategory', 'SCNPhysicsVehicleWheel', 'HKCategoryType', 'MPMediaQuerySection', 'GKFriendRequestComposeViewController', 'NSError', 'MTLRenderPipelineColorAttachmentDescriptor', 'SCNPhysicsShape', 'UISearchController', 'SCNPhysicsBody', 'CTSubscriberInfo', 'AVPlayerItemAccessLog', 'MPMediaPropertyPredicate', 'CMLogItem', 'NSAutoreleasePool', 'NSSocketPort', 'AVAssetReaderTrackOutput', 'SKNode', 'UIMutableUserNotificationAction', 'SCNProgram', 'AVSpeechSynthesisVoice', 'CMAltimeter', 'AVCaptureAudioChannel', 'GKTurnBasedExchangeReply', 'AVVideoCompositionLayerInstruction', 'AVSpeechSynthesizer', 'GKChallengeEventHandler', 'AVCaptureFileOutput', 'UIControl', 'SCNPhysicsField', 'CKReference', 'LAContext', 'CKRecordID', 'ADInterstitialAd', 'AVAudioSessionDataSourceDescription', 'AVAudioBuffer', 'CIColorKernel', 'GCControllerDirectionPad', 'NSFileManager', 'AVMutableAudioMixInputParameters', 'UIScreenEdgePanGestureRecognizer', 'CAKeyframeAnimation', 'CKQueryNotification', 'PHAdjustmentData', 'EASession', 'AVAssetResourceRenewalRequest', 'UIInputView', 'NSFileWrapper', 'UIResponder', 'NSPointerFunctions', 'UIKeyCommand', 'NSHTTPCookieStorage', 'AVMediaSelectionOption', 'NSRunLoop', 'NSFileAccessIntent', 'CAAnimationGroup', 'MKCircle', 'UIAlertController', 'NSMigrationManager', 'NSDateIntervalFormatter', 'UICollectionViewUpdateItem', 'CKDatabaseOperation', 'PHImageRequestOptions', 'SKReachConstraints', 'CKRecord', 'CAInterAppAudioSwitcherView', 'WKWindowFeatures', 'GKInvite', 'NSMutableData', 'PHAssetCollectionChangeRequest', 'NSMutableParagraphStyle', 'UIDynamicBehavior', 'GLKEffectProperty', 'CKFetchRecordChangesOperation', 'SKShapeNode', 'MPMovieErrorLogEvent', 'MKPolygonView', 'MPContentItem', 'HMAction', 'NSScanner', 'GKAchievementChallenge', 'AVAudioPlayer', 'CKContainer', 'AVVideoComposition', 'NKLibrary', 'NSPersistentStore', 'AVCaptureMovieFileOutput', 'HMRoom', 'GKChallenge', 'UITextRange', 'NSURLProtectionSpace', 'ACAccountStore', 'MPSkipIntervalCommand', 'NSComparisonPredicate', 'HMHome', 'PHVideoRequestOptions', 'NSOutputStream', 'MPSkipIntervalCommandEvent', 'PKAddPassesViewController', 'UITextSelectionRect', 'CTTelephonyNetworkInfo', 'AVTextStyleRule', 'NSFetchedPropertyDescription', 'UIPageViewController', 'CATransformLayer', 'UICollectionViewController', 'AVAudioNode', 'MCNearbyServiceAdvertiser', 'NSObject', 'PHAsset', 'GKLeaderboardViewController', 'CKQueryCursor', 'MPMusicPlayerController', 'MKOverlayPathRenderer', 'CMPedometerData', 'HMService', 'SKFieldNode', 'GKAchievement', 'WKUserContentController', 'AVAssetTrack', 'TWRequest', 'SKLabelNode', 'AVCaptureBracketedStillImageSettings', 'MIDINetworkHost', 'MPMediaPredicate', 'AVFrameRateRange', 'MTLTextureDescriptor', 'MTLVertexBufferLayoutDescriptor', 'MPFeedbackCommandEvent', 'UIUserNotificationAction', 'HKStatisticsQuery', 'SCNParticleSystem', 'NSIndexPath', 'AVVideoCompositionRenderContext', 'CADisplayLink', 'HKObserverQuery', 'UIPopoverPresentationController', 'CKQueryOperation', 'CAEAGLLayer', 'NSMutableString', 'NSMessagePort', 'NSURLQueryItem', 'MTLStructMember', 'AVAudioSessionChannelDescription', 'GLKView', 'UIActivityViewController', 'GKAchievementViewController', 'GKTurnBasedParticipant', 'NSURLProtocol', 'NSUserDefaults', 'NSCalendar', 'SKKeyframeSequence', 'AVMetadataItemFilter', 'CKModifyRecordZonesOperation', 'WKPreferences', 'NSMethodSignature', 'NSRegularExpression', 'EAGLSharegroup', 'AVPlayerItemVideoOutput', 'PHContentEditingInputRequestOptions', 'GKMatch', 'CIColor', 'UIDictationPhrase'])
-COCOA_PROTOCOLS = set(['SKStoreProductViewControllerDelegate', 'AVVideoCompositionInstruction', 'AVAudioSessionDelegate', 'GKMatchDelegate', 'NSFileManagerDelegate', 'UILayoutSupport', 'NSCopying', 'UIPrintInteractionControllerDelegate', 'QLPreviewControllerDataSource', 'SKProductsRequestDelegate', 'NSTextStorageDelegate', 'MCBrowserViewControllerDelegate', 'MTLComputeCommandEncoder', 'SCNSceneExportDelegate', 'UISearchResultsUpdating', 'MFMailComposeViewControllerDelegate', 'MTLBlitCommandEncoder', 'NSDecimalNumberBehaviors', 'PHContentEditingController', 'NSMutableCopying', 'UIActionSheetDelegate', 'UIViewControllerTransitioningDelegate', 'UIAlertViewDelegate', 'AVAudioPlayerDelegate', 'MKReverseGeocoderDelegate', 'NSCoding', 'UITextInputTokenizer', 'GKFriendRequestComposeViewControllerDelegate', 'UIActivityItemSource', 'NSCacheDelegate', 'UIAdaptivePresentationControllerDelegate', 'GKAchievementViewControllerDelegate', 'UIViewControllerTransitionCoordinator', 'EKEventEditViewDelegate', 'NSURLConnectionDelegate', 'UITableViewDelegate', 'GKPeerPickerControllerDelegate', 'UIGuidedAccessRestrictionDelegate', 'AVSpeechSynthesizerDelegate', 'AVAudio3DMixing', 'AVPlayerItemLegibleOutputPushDelegate', 'ADInterstitialAdDelegate', 'HMAccessoryBrowserDelegate', 'AVAssetResourceLoaderDelegate', 'UITabBarControllerDelegate', 'CKRecordValue', 'SKPaymentTransactionObserver', 'AVCaptureAudioDataOutputSampleBufferDelegate', 'UIInputViewAudioFeedback', 'GKChallengeListener', 'SKSceneDelegate', 'UIPickerViewDelegate', 'UIWebViewDelegate', 'UIApplicationDelegate', 'GKInviteEventListener', 'MPMediaPlayback', 'MyClassJavaScriptMethods', 'AVAsynchronousKeyValueLoading', 'QLPreviewItem', 'SCNBoundingVolume', 'NSPortDelegate', 'UIContentContainer', 'SCNNodeRendererDelegate', 'SKRequestDelegate', 'SKPhysicsContactDelegate', 'HMAccessoryDelegate', 'UIPageViewControllerDataSource', 'SCNSceneRendererDelegate', 'SCNPhysicsContactDelegate', 'MKMapViewDelegate', 'AVPlayerItemOutputPushDelegate', 'UICollectionViewDelegate', 'UIImagePickerControllerDelegate', 'MTLRenderCommandEncoder', 'PKPaymentAuthorizationViewControllerDelegate', 'UIToolbarDelegate', 'WKUIDelegate', 'SCNActionable', 'NSURLConnectionDataDelegate', 'MKOverlay', 'CBCentralManagerDelegate', 'JSExport', 'NSTextLayoutOrientationProvider', 'UIPickerViewDataSource', 'PKPushRegistryDelegate', 'UIViewControllerTransitionCoordinatorContext', 'NSLayoutManagerDelegate', 'MTLLibrary', 'NSFetchedResultsControllerDelegate', 'ABPeoplePickerNavigationControllerDelegate', 'MTLResource', 'NSDiscardableContent', 'UITextFieldDelegate', 'MTLBuffer', 'MTLSamplerState', 'GKGameCenterControllerDelegate', 'MPMediaPickerControllerDelegate', 'UISplitViewControllerDelegate', 'UIAppearance', 'UIPickerViewAccessibilityDelegate', 'UITraitEnvironment', 'UIScrollViewAccessibilityDelegate', 'ADBannerViewDelegate', 'MPPlayableContentDataSource', 'MTLComputePipelineState', 'NSURLSessionDelegate', 'MTLCommandBuffer', 'NSXMLParserDelegate', 'UIViewControllerRestoration', 'UISearchBarDelegate', 'UIBarPositioning', 'CBPeripheralDelegate', 'UISearchDisplayDelegate', 'CAAction', 'PKAddPassesViewControllerDelegate', 'MCNearbyServiceAdvertiserDelegate', 'MTLDepthStencilState', 'GKTurnBasedMatchmakerViewControllerDelegate', 'MPPlayableContentDelegate', 'AVCaptureVideoDataOutputSampleBufferDelegate', 'UIAppearanceContainer', 'UIStateRestoring', 'UITextDocumentProxy', 'MTLDrawable', 'NSURLSessionTaskDelegate', 'NSFilePresenter', 'AVAudioStereoMixing', 'UIViewControllerContextTransitioning', 'UITextInput', 'CBPeripheralManagerDelegate', 'UITextInputDelegate', 'NSFastEnumeration', 'NSURLAuthenticationChallengeSender', 'SCNProgramDelegate', 'AVVideoCompositing', 'SCNAnimatable', 'NSSecureCoding', 'MCAdvertiserAssistantDelegate', 'GKLocalPlayerListener', 'GLKNamedEffect', 'UIPopoverControllerDelegate', 'AVCaptureMetadataOutputObjectsDelegate', 'NSExtensionRequestHandling', 'UITextSelecting', 'UIPrinterPickerControllerDelegate', 'NCWidgetProviding', 'MTLCommandEncoder', 'NSURLProtocolClient', 'MFMessageComposeViewControllerDelegate', 'UIVideoEditorControllerDelegate', 'WKNavigationDelegate', 'GKSavedGameListener', 'UITableViewDataSource', 'MTLFunction', 'EKCalendarChooserDelegate', 'NSUserActivityDelegate', 'UICollisionBehaviorDelegate', 'NSStreamDelegate', 'MCNearbyServiceBrowserDelegate', 'HMHomeDelegate', 'UINavigationControllerDelegate', 'MCSessionDelegate', 'UIDocumentPickerDelegate', 'UIViewControllerInteractiveTransitioning', 'GKTurnBasedEventListener', 'SCNSceneRenderer', 'MTLTexture', 'GLKViewDelegate', 'EAAccessoryDelegate', 'WKScriptMessageHandler', 'PHPhotoLibraryChangeObserver', 'NSKeyedUnarchiverDelegate', 'AVPlayerItemMetadataOutputPushDelegate', 'NSMachPortDelegate', 'SCNShadable', 'UIPopoverBackgroundViewMethods', 'UIDocumentMenuDelegate', 'UIBarPositioningDelegate', 'ABPersonViewControllerDelegate', 'NSNetServiceBrowserDelegate', 'EKEventViewDelegate', 'UIScrollViewDelegate', 'NSURLConnectionDownloadDelegate', 'UIGestureRecognizerDelegate', 'UINavigationBarDelegate', 'AVAudioMixing', 'NSFetchedResultsSectionInfo', 'UIDocumentInteractionControllerDelegate', 'MTLParallelRenderCommandEncoder', 'QLPreviewControllerDelegate', 'UIAccessibilityReadingContent', 'ABUnknownPersonViewControllerDelegate', 'GLKViewControllerDelegate', 'UICollectionViewDelegateFlowLayout', 'UIPopoverPresentationControllerDelegate', 'UIDynamicAnimatorDelegate', 'NSTextAttachmentContainer', 'MKAnnotation', 'UIAccessibilityIdentification', 'UICoordinateSpace', 'ABNewPersonViewControllerDelegate', 'MTLDevice', 'CAMediaTiming', 'AVCaptureFileOutputRecordingDelegate', 'HMHomeManagerDelegate', 'UITextViewDelegate', 'UITabBarDelegate', 'GKLeaderboardViewControllerDelegate', 'UISearchControllerDelegate', 'EAWiFiUnconfiguredAccessoryBrowserDelegate', 'UITextInputTraits', 'MTLRenderPipelineState', 'GKVoiceChatClient', 'UIKeyInput', 'UICollectionViewDataSource', 'SCNTechniqueSupport', 'NSLocking', 'AVCaptureFileOutputDelegate', 'GKChallengeEventHandlerDelegate', 'UIObjectRestoration', 'CIFilterConstructor', 'AVPlayerItemOutputPullDelegate', 'EAGLDrawable', 'AVVideoCompositionValidationHandling', 'UIViewControllerAnimatedTransitioning', 'NSURLSessionDownloadDelegate', 'UIAccelerometerDelegate', 'UIPageViewControllerDelegate', 'MTLCommandQueue', 'UIDataSourceModelAssociation', 'AVAudioRecorderDelegate', 'GKSessionDelegate', 'NSKeyedArchiverDelegate', 'CAMetalDrawable', 'UIDynamicItem', 'CLLocationManagerDelegate', 'NSMetadataQueryDelegate', 'NSNetServiceDelegate', 'GKMatchmakerViewControllerDelegate', 'NSURLSessionDataDelegate'])
-COCOA_PRIMITIVES = set(['ROTAHeader', '__CFBundle', 'MortSubtable', 'AudioFilePacketTableInfo', 'CGPDFOperatorTable', 'KerxStateEntry', 'ExtendedTempoEvent', 'CTParagraphStyleSetting', 'OpaqueMIDIPort', '_GLKMatrix3', '_GLKMatrix2', '_GLKMatrix4', 'ExtendedControlEvent', 'CAFAudioDescription', 'OpaqueCMBlockBuffer', 'CGTextDrawingMode', 'EKErrorCode', 'gss_buffer_desc_struct', 'AudioUnitParameterInfo', '__SCPreferences', '__CTFrame', '__CTLine', 'AudioFile_SMPTE_Time', 'gss_krb5_lucid_context_v1', 'OpaqueJSValue', 'TrakTableEntry', 'AudioFramePacketTranslation', 'CGImageSource', 'OpaqueJSPropertyNameAccumulator', 'JustPCGlyphRepeatAddAction', '__CFBinaryHeap', 'OpaqueMIDIThruConnection', 'opaqueCMBufferQueue', 'OpaqueMusicSequence', 'MortRearrangementSubtable', 'MixerDistanceParams', 'MorxSubtable', 'MIDIObjectPropertyChangeNotification', 'SFNTLookupSegment', 'CGImageMetadataErrors', 'CGPath', 'OpaqueMIDIEndpoint', 'AudioComponentPlugInInterface', 'gss_ctx_id_t_desc_struct', 'sfntFontFeatureSetting', 'OpaqueJSContextGroup', '__SCNetworkConnection', 'AudioUnitParameterValueTranslation', 'CGImageMetadataType', 'CGPattern', 'AudioFileTypeAndFormatID', 'CGContext', 'AUNodeInteraction', 'SFNTLookupTable', 'JustPCDecompositionAction', 'KerxControlPointHeader', 'AudioStreamPacketDescription', 'KernSubtableHeader', '__SecCertificate', 'AUMIDIOutputCallbackStruct', 'MIDIMetaEvent', 'AudioQueueChannelAssignment', 'AnchorPoint', 'JustTable', '__CFNetService', 'CF_BRIDGED_TYPE', 'gss_krb5_lucid_key', 'CGPDFDictionary', 'KerxSubtableHeader', 'CAF_UUID_ChunkHeader', 'gss_krb5_cfx_keydata', 'OpaqueJSClass', 'CGGradient', 'OpaqueMIDISetup', 'JustPostcompTable', '__CTParagraphStyle', 'AudioUnitParameterHistoryInfo', 'OpaqueJSContext', 'CGShading', 'MIDIThruConnectionParams', 'BslnFormat0Part', 'SFNTLookupSingle', '__CFHost', '__SecRandom', '__CTFontDescriptor', '_NSRange', 'sfntDirectory', 'AudioQueueLevelMeterState', 'CAFPositionPeak', 'PropLookupSegment', '__CVOpenGLESTextureCache', 'sfntInstance', '_GLKQuaternion', 'AnkrTable', '__SCNetworkProtocol', 'CAFFileHeader', 'KerxOrderedListHeader', 'CGBlendMode', 'STXEntryOne', 'CAFRegion', 'SFNTLookupTrimmedArrayHeader', 'SCNMatrix4', 'KerxControlPointEntry', 'OpaqueMusicTrack', '_GLKVector4', 'gss_OID_set_desc_struct', 'OpaqueMusicPlayer', '_CFHTTPAuthentication', 'CGAffineTransform', 'CAFMarkerChunk', 'AUHostIdentifier', 'ROTAGlyphEntry', 'BslnTable', 'gss_krb5_lucid_context_version', '_GLKMatrixStack', 'CGImage', 'KernStateEntry', 'SFNTLookupSingleHeader', 'MortLigatureSubtable', 'CAFUMIDChunk', 'SMPTETime', 'CAFDataChunk', 'CGPDFStream', 'AudioFileRegionList', 'STEntryTwo', 'SFNTLookupBinarySearchHeader', 'OpbdTable', '__CTGlyphInfo', 'BslnFormat2Part', 'KerxIndexArrayHeader', 'TrakTable', 'KerxKerningPair', '__CFBitVector', 'KernVersion0SubtableHeader', 'OpaqueAudioComponentInstance', 'AudioChannelLayout', '__CFUUID', 'MIDISysexSendRequest', '__CFNumberFormatter', 'CGImageSourceStatus', 'AudioFileMarkerList', 'AUSamplerBankPresetData', 'CGDataProvider', 'AudioFormatInfo', '__SecIdentity', 'sfntCMapExtendedSubHeader', 'MIDIChannelMessage', 'KernOffsetTable', 'CGColorSpaceModel', 'MFMailComposeErrorCode', 'CGFunction', '__SecTrust', 'AVAudio3DAngularOrientation', 'CGFontPostScriptFormat', 'KernStateHeader', 'AudioUnitCocoaViewInfo', 'CGDataConsumer', 'OpaqueMIDIDevice', 'KernVersion0Header', 'AnchorPointTable', 'CGImageDestination', 'CAFInstrumentChunk', 'AudioUnitMeterClipping', 'MorxChain', '__CTFontCollection', 'STEntryOne', 'STXEntryTwo', 'ExtendedNoteOnEvent', 'CGColorRenderingIntent', 'KerxSimpleArrayHeader', 'MorxTable', '_GLKVector3', '_GLKVector2', 'MortTable', 'CGPDFBox', 'AudioUnitParameterValueFromString', '__CFSocket', 'ALCdevice_struct', 'MIDINoteMessage', 'sfntFeatureHeader', 'CGRect', '__SCNetworkInterface', '__CFTree', 'MusicEventUserData', 'TrakTableData', 'GCQuaternion', 'MortContextualSubtable', '__CTRun', 'AudioUnitFrequencyResponseBin', 'MortChain', 'MorxInsertionSubtable', 'CGImageMetadata', 'gss_auth_identity', 'AudioUnitMIDIControlMapping', 'CAFChunkHeader', 'CGImagePropertyOrientation', 'CGPDFScanner', 'OpaqueMusicEventIterator', 'sfntDescriptorHeader', 'AudioUnitNodeConnection', 'OpaqueMIDIDeviceList', 'ExtendedAudioFormatInfo', 'BslnFormat1Part', 'sfntFontDescriptor', 'KernSimpleArrayHeader', '__CFRunLoopObserver', 'CGPatternTiling', 'MIDINotification', 'MorxLigatureSubtable', 'MessageComposeResult', 'MIDIThruConnectionEndpoint', 'MusicDeviceStdNoteParams', 'opaqueCMSimpleQueue', 'ALCcontext_struct', 'OpaqueAudioQueue', 'PropLookupSingle', 'CGInterpolationQuality', 'CGColor', 'AudioOutputUnitStartAtTimeParams', 'gss_name_t_desc_struct', 'CGFunctionCallbacks', 'CAFPacketTableHeader', 'AudioChannelDescription', 'sfntFeatureName', 'MorxContextualSubtable', 'CVSMPTETime', 'AudioValueRange', 'CGTextEncoding', 'AudioStreamBasicDescription', 'AUNodeRenderCallback', 'AudioPanningInfo', 'KerxOrderedListEntry', '__CFAllocator', 'OpaqueJSPropertyNameArray', '__SCDynamicStore', 'OpaqueMIDIEntity', '__CTRubyAnnotation', 'SCNVector4', 'CFHostClientContext', 'CFNetServiceClientContext', 'AudioUnitPresetMAS_SettingData', 'opaqueCMBufferQueueTriggerToken', 'AudioUnitProperty', 'CAFRegionChunk', 'CGPDFString', '__GLsync', '__CFStringTokenizer', 'JustWidthDeltaEntry', 'sfntVariationAxis', '__CFNetDiagnostic', 'CAFOverviewSample', 'sfntCMapEncoding', 'CGVector', '__SCNetworkService', 'opaqueCMSampleBuffer', 'AUHostVersionIdentifier', 'AudioBalanceFade', 'sfntFontRunFeature', 'KerxCoordinateAction', 'sfntCMapSubHeader', 'CVPlanarPixelBufferInfo', 'AUNumVersion', 'AUSamplerInstrumentData', 'AUPreset', '__CTRunDelegate', 'OpaqueAudioQueueProcessingTap', 'KerxTableHeader', '_NSZone', 'OpaqueExtAudioFile', '__CFRunLoopSource', '__CVMetalTextureCache', 'KerxAnchorPointAction', 'OpaqueJSString', 'AudioQueueParameterEvent', '__CFHTTPMessage', 'OpaqueCMClock', 'ScheduledAudioFileRegion', 'STEntryZero', 'AVAudio3DPoint', 'gss_channel_bindings_struct', 'sfntVariationHeader', 'AUChannelInfo', 'UIOffset', 'GLKEffectPropertyPrv', 'KerxStateHeader', 'CGLineJoin', 'CGPDFDocument', '__CFBag', 'KernOrderedListHeader', '__SCNetworkSet', '__SecKey', 'MIDIObjectAddRemoveNotification', 'AudioUnitParameter', 'JustPCActionSubrecord', 'AudioComponentDescription', 'AudioUnitParameterValueName', 'AudioUnitParameterEvent', 'KerxControlPointAction', 'AudioTimeStamp', 'KernKerningPair', 'gss_buffer_set_desc_struct', 'MortFeatureEntry', 'FontVariation', 'CAFStringID', 'LcarCaretClassEntry', 'AudioUnitParameterStringFromValue', 'ACErrorCode', 'ALMXGlyphEntry', 'LtagTable', '__CTTypesetter', 'AuthorizationOpaqueRef', 'UIEdgeInsets', 'CGPathElement', 'CAFMarker', 'KernTableHeader', 'NoteParamsControlValue', 'SSLContext', 'gss_cred_id_t_desc_struct', 'AudioUnitParameterNameInfo', 'CGDataConsumerCallbacks', 'ALMXHeader', 'CGLineCap', 'MIDIControlTransform', 'CGPDFArray', '__SecPolicy', 'AudioConverterPrimeInfo', '__CTTextTab', '__CFNetServiceMonitor', 'AUInputSamplesInOutputCallbackStruct', '__CTFramesetter', 'CGPDFDataFormat', 'STHeader', 'CVPlanarPixelBufferInfo_YCbCrPlanar', 'MIDIValueMap', 'JustDirectionTable', '__SCBondStatus', 'SFNTLookupSegmentHeader', 'OpaqueCMMemoryPool', 'CGPathDrawingMode', 'CGFont', '__SCNetworkReachability', 'AudioClassDescription', 'CGPoint', 'AVAudio3DVectorOrientation', 'CAFStrings', '__CFNetServiceBrowser', 'opaqueMTAudioProcessingTap', 'sfntNameRecord', 'CGPDFPage', 'CGLayer', 'ComponentInstanceRecord', 'CAFInfoStrings', 'HostCallbackInfo', 'MusicDeviceNoteParams', 'OpaqueVTCompressionSession', 'KernIndexArrayHeader', 'CVPlanarPixelBufferInfo_YCbCrBiPlanar', 'MusicTrackLoopInfo', 'opaqueCMFormatDescription', 'STClassTable', 'sfntDirectoryEntry', 'OpaqueCMTimebase', 'CGDataProviderDirectCallbacks', 'MIDIPacketList', 'CAFOverviewChunk', 'MIDIPacket', 'ScheduledAudioSlice', 'CGDataProviderSequentialCallbacks', 'AudioBuffer', 'MorxRearrangementSubtable', 'CGPatternCallbacks', 'AUDistanceAttenuationData', 'MIDIIOErrorNotification', 'CGPDFContentStream', 'IUnknownVTbl', 'MIDITransform', 'MortInsertionSubtable', 'CABarBeatTime', 'AudioBufferList', '__CVBuffer', 'AURenderCallbackStruct', 'STXEntryZero', 'JustPCDuctilityAction', 'OpaqueAudioQueueTimeline', 'VTDecompressionOutputCallbackRecord', 'OpaqueMIDIClient', '__CFPlugInInstance', 'AudioQueueBuffer', '__CFFileDescriptor', 'AudioUnitConnection', '_GKTurnBasedExchangeStatus', 'LcarCaretTable', 'CVPlanarComponentInfo', 'JustWidthDeltaGroup', 'OpaqueAudioComponent', 'ParameterEvent', '__CVPixelBufferPool', '__CTFont', 'CGColorSpace', 'CGSize', 'AUDependentParameter', 'MIDIDriverInterface', 'gss_krb5_rfc1964_keydata', '__CFDateFormatter', 'LtagStringRange', 'OpaqueVTDecompressionSession', 'gss_iov_buffer_desc_struct', 'AUPresetEvent', 'PropTable', 'KernOrderedListEntry', 'CF_BRIDGED_MUTABLE_TYPE', 'gss_OID_desc_struct', 'AudioUnitPresetMAS_Settings', 'AudioFileMarker', 'JustPCConditionalAddAction', 'BslnFormat3Part', '__CFNotificationCenter', 'MortSwashSubtable', 'AUParameterMIDIMapping', 'SCNVector3', 'OpaqueAudioConverter', 'MIDIRawData', 'sfntNameHeader', '__CFRunLoop', 'MFMailComposeResult', 'CATransform3D', 'OpbdSideValues', 'CAF_SMPTE_Time', '__SecAccessControl', 'JustPCAction', 'OpaqueVTFrameSilo', 'OpaqueVTMultiPassStorage', 'CGPathElementType', 'AudioFormatListItem', 'AudioUnitExternalBuffer', 'AudioFileRegion', 'AudioValueTranslation', 'CGImageMetadataTag', 'CAFPeakChunk', 'AudioBytePacketTranslation', 'sfntCMapHeader', '__CFURLEnumerator', 'STXHeader', 'CGPDFObjectType', 'SFNTLookupArrayHeader'])
+COCOA_INTERFACES = {'UITableViewCell', 'HKCorrelationQuery', 'NSURLSessionDataTask', 'PHFetchOptions', 'NSLinguisticTagger', 'NSStream', 'AVAudioUnitDelay', 'GCMotion', 'SKPhysicsWorld', 'NSString', 'CMAttitude', 'AVAudioEnvironmentDistanceAttenuationParameters', 'HKStatisticsCollection', 'SCNPlane', 'CBPeer', 'JSContext', 'SCNTransaction', 'SCNTorus', 'AVAudioUnitEffect', 'UICollectionReusableView', 'MTLSamplerDescriptor', 'AVAssetReaderSampleReferenceOutput', 'AVMutableCompositionTrack', 'GKLeaderboard', 'NSFetchedResultsController', 'SKRange', 'MKTileOverlayRenderer', 'MIDINetworkSession', 'UIVisualEffectView', 'CIWarpKernel', 'PKObject', 'MKRoute', 'MPVolumeView', 'UIPrintInfo', 'SCNText', 'ADClient', 'PKPayment', 'AVMutableAudioMix', 'GLKEffectPropertyLight', 'WKScriptMessage', 'AVMIDIPlayer', 'PHCollectionListChangeRequest', 'UICollectionViewLayout', 'NSMutableCharacterSet', 'SKPaymentTransaction', 'NEOnDemandRuleConnect', 'NSShadow', 'SCNView', 'NSURLSessionConfiguration', 'MTLVertexAttributeDescriptor', 'CBCharacteristic', 'HKQuantityType', 'CKLocationSortDescriptor', 'NEVPNIKEv2SecurityAssociationParameters', 'CMStepCounter', 'NSNetService', 'AVAssetWriterInputMetadataAdaptor', 'UICollectionView', 'UIViewPrintFormatter', 'SCNLevelOfDetail', 'CAShapeLayer', 'MCPeerID', 'MPRatingCommand', 'WKNavigation', 'NSDictionary', 'NSFileVersion', 'CMGyroData', 'AVAudioUnitDistortion', 'CKFetchRecordsOperation', 'SKPhysicsJointSpring', 'SCNHitTestResult', 'AVAudioTime', 'CIFilter', 'UIView', 'SCNConstraint', 'CAPropertyAnimation', 'MKMapItem', 'MPRemoteCommandCenter', 'PKPaymentSummaryItem', 'UICollectionViewFlowLayoutInvalidationContext', 'UIInputViewController', 'PKPass', 'SCNPhysicsBehavior', 'MTLRenderPassColorAttachmentDescriptor', 'MKPolygonRenderer', 'CKNotification', 'JSValue', 'PHCollectionList', 'CLGeocoder', 'NSByteCountFormatter', 'AVCaptureScreenInput', 'MPFeedbackCommand', 'CAAnimation', 'MKOverlayPathView', 'UIActionSheet', 'UIMotionEffectGroup', 'NSLengthFormatter', 'UIBarItem', 'SKProduct', 'AVAssetExportSession', 'NSKeyedUnarchiver', 'NSMutableSet', 'SCNPyramid', 'PHAssetCollection', 'MKMapView', 'HMHomeManager', 'CATransition', 'MTLCompileOptions', 'UIVibrancyEffect', 'CLCircularRegion', 'MKTileOverlay', 'SCNShape', 'ACAccountCredential', 'SKPhysicsJointLimit', 'MKMapSnapshotter', 'AVMediaSelectionGroup', 'NSIndexSet', 'CBPeripheralManager', 'CKRecordZone', 'AVAudioRecorder', 'NSURL', 'CBCentral', 'NSNumber', 'AVAudioOutputNode', 'MTLVertexAttributeDescriptorArray', 'MKETAResponse', 'SKTransition', 'SSReadingList', 'HKSourceQuery', 'UITableViewRowAction', 'UITableView', 'SCNParticlePropertyController', 'AVCaptureStillImageOutput', 'GCController', 'AVAudioPlayerNode', 'AVAudioSessionPortDescription', 'NSHTTPURLResponse', 'NEOnDemandRuleEvaluateConnection', 'SKEffectNode', 'HKQuantity', 'GCControllerElement', 'AVPlayerItemAccessLogEvent', 'SCNBox', 'NSExtensionContext', 'MKOverlayRenderer', 'SCNPhysicsVehicle', 'NSDecimalNumber', 'EKReminder', 'MKPolylineView', 'CKQuery', 'AVAudioMixerNode', 'GKAchievementDescription', 'EKParticipant', 'NSBlockOperation', 'UIActivityItemProvider', 'CLLocation', 'NSBatchUpdateRequest', 'PHContentEditingOutput', 'PHObjectChangeDetails', 'HKWorkoutType', 'MPMoviePlayerController', 'AVAudioFormat', 'HMTrigger', 'MTLRenderPassDepthAttachmentDescriptor', 'SCNRenderer', 'GKScore', 'UISplitViewController', 'HKSource', 'NSURLConnection', 'ABUnknownPersonViewController', 'SCNTechnique', 'UIMenuController', 'NSEvent', 'SKTextureAtlas', 'NSKeyedArchiver', 'GKLeaderboardSet', 'NSSimpleCString', 'AVAudioPCMBuffer', 'CBATTRequest', 'GKMatchRequest', 'AVMetadataObject', 'SKProductsRequest', 'UIAlertView', 'NSIncrementalStore', 'MFMailComposeViewController', 'SCNFloor', 'NSSortDescriptor', 'CKFetchNotificationChangesOperation', 'MPMovieAccessLog', 'NSManagedObjectContext', 'AVAudioUnitGenerator', 'WKBackForwardList', 'SKMutableTexture', 'AVCaptureAudioDataOutput', 'ACAccount', 'AVMetadataItem', 'MPRatingCommandEvent', 'AVCaptureDeviceInputSource', 'CLLocationManager', 'MPRemoteCommand', 'AVCaptureSession', 'UIStepper', 'UIRefreshControl', 'NEEvaluateConnectionRule', 'CKModifyRecordsOperation', 'UICollectionViewTransitionLayout', 'CBCentralManager', 'NSPurgeableData', 'PKShippingMethod', 'SLComposeViewController', 'NSHashTable', 'MKUserTrackingBarButtonItem', 'UILexiconEntry', 'CMMotionActivity', 'SKAction', 'SKShader', 'AVPlayerItemOutput', 'MTLRenderPassAttachmentDescriptor', 'UIDocumentInteractionController', 'UIDynamicItemBehavior', 'NSMutableDictionary', 'UILabel', 'AVCaptureInputPort', 'NSExpression', 'CAInterAppAudioTransportView', 'SKMutablePayment', 'UIImage', 'PHCachingImageManager', 'SCNTransformConstraint', 'HKCorrelationType', 'UIColor', 'SCNGeometrySource', 'AVCaptureAutoExposureBracketedStillImageSettings', 'UIPopoverBackgroundView', 'UIToolbar', 'NSNotificationCenter', 'UICollectionViewLayoutAttributes', 'AVAssetReaderOutputMetadataAdaptor', 'NSEntityMigrationPolicy', 'HMUser', 'NSLocale', 'NSURLSession', 'SCNCamera', 'NSTimeZone', 'UIManagedDocument', 'AVMutableVideoCompositionLayerInstruction', 'AVAssetTrackGroup', 'NSInvocationOperation', 'ALAssetRepresentation', 'AVQueuePlayer', 'HMServiceGroup', 'UIPasteboard', 'PHContentEditingInput', 'NSLayoutManager', 'EKCalendarChooser', 'EKObject', 'CATiledLayer', 'GLKReflectionMapEffect', 'NSManagedObjectID', 'NSEnergyFormatter', 'SLRequest', 'HMCharacteristic', 'AVPlayerLayer', 'MTLRenderPassDescriptor', 'SKPayment', 'NSPointerArray', 'AVAudioMix', 'SCNLight', 'MCAdvertiserAssistant', 'MKMapSnapshotOptions', 'HKCategorySample', 'AVAudioEnvironmentReverbParameters', 'SCNMorpher', 'AVTimedMetadataGroup', 'CBMutableCharacteristic', 'NSFetchRequest', 'UIDevice', 'NSManagedObject', 'NKAssetDownload', 'AVOutputSettingsAssistant', 'SKPhysicsJointPin', 'UITabBar', 'UITextInputMode', 'NSFetchRequestExpression', 'HMActionSet', 'CTSubscriber', 'PHAssetChangeRequest', 'NSPersistentStoreRequest', 'UITabBarController', 'HKQuantitySample', 'AVPlayerItem', 'AVSynchronizedLayer', 'MKDirectionsRequest', 'NSMetadataItem', 'UIPresentationController', 'UINavigationItem', 'PHFetchResultChangeDetails', 'PHImageManager', 'AVCaptureManualExposureBracketedStillImageSettings', 'UIStoryboardPopoverSegue', 'SCNLookAtConstraint', 'UIGravityBehavior', 'UIWindow', 'CBMutableDescriptor', 'NEOnDemandRuleDisconnect', 'UIBezierPath', 'UINavigationController', 'ABPeoplePickerNavigationController', 'EKSource', 'AVAssetWriterInput', 'AVPlayerItemTrack', 'GLKEffectPropertyTexture', 'NSHTTPCookie', 'NSURLResponse', 'SKPaymentQueue', 'NSAssertionHandler', 'MKReverseGeocoder', 'GCControllerAxisInput', 'NSArray', 'NSOrthography', 'NSURLSessionUploadTask', 'NSCharacterSet', 'AVMutableVideoCompositionInstruction', 'AVAssetReaderOutput', 'EAGLContext', 'WKFrameInfo', 'CMPedometer', 'MyClass', 'CKModifyBadgeOperation', 'AVCaptureAudioFileOutput', 'SKEmitterNode', 'NSMachPort', 'AVVideoCompositionCoreAnimationTool', 'PHCollection', 'SCNPhysicsWorld', 'NSURLRequest', 'CMAccelerometerData', 'NSNetServiceBrowser', 'CLFloor', 'AVAsynchronousVideoCompositionRequest', 'SCNGeometry', 'SCNIKConstraint', 'CIKernel', 'CAGradientLayer', 'HKCharacteristicType', 'NSFormatter', 'SCNAction', 'CATransaction', 'CBUUID', 'UIStoryboard', 'MPMediaLibrary', 'UITapGestureRecognizer', 'MPMediaItemArtwork', 'NSURLSessionTask', 'AVAudioUnit', 'MCBrowserViewController', 'UIFontDescriptor', 'NSRelationshipDescription', 'HKSample', 'WKWebView', 'NSMutableAttributedString', 'NSPersistentStoreAsynchronousResult', 'MPNowPlayingInfoCenter', 'MKLocalSearch', 'EAAccessory', 'HKCorrelation', 'CATextLayer', 'NSNotificationQueue', 'UINib', 'GLKTextureLoader', 'HKObjectType', 'NSValue', 'NSMutableIndexSet', 'SKPhysicsContact', 'NSProgress', 'AVPlayerViewController', 'CAScrollLayer', 'GKSavedGame', 'NSTextCheckingResult', 'PHObjectPlaceholder', 'SKConstraint', 'EKEventEditViewController', 'NSEntityDescription', 'NSURLCredentialStorage', 'UIApplication', 'SKDownload', 'SCNNode', 'MKLocalSearchRequest', 'SKScene', 'UISearchDisplayController', 'NEOnDemandRule', 'MTLRenderPassStencilAttachmentDescriptor', 'CAReplicatorLayer', 'UIPrintPageRenderer', 'EKCalendarItem', 'NSUUID', 'EAAccessoryManager', 'NEOnDemandRuleIgnore', 'SKRegion', 'AVAssetResourceLoader', 'EAWiFiUnconfiguredAccessoryBrowser', 'NSUserActivity', 'CTCall', 'UIPrinterPickerController', 'CIVector', 'UINavigationBar', 'UIPanGestureRecognizer', 'MPMediaQuery', 'ABNewPersonViewController', 'CKRecordZoneID', 'HKAnchoredObjectQuery', 'CKFetchRecordZonesOperation', 'UIStoryboardSegue', 'ACAccountType', 'GKSession', 'SKVideoNode', 'PHChange', 'SKReceiptRefreshRequest', 'GCExtendedGamepadSnapshot', 'MPSeekCommandEvent', 'GCExtendedGamepad', 'CAValueFunction', 'SCNCylinder', 'NSNotification', 'NSBatchUpdateResult', 'PKPushCredentials', 'SCNPhysicsSliderJoint', 'AVCaptureDeviceFormat', 'AVPlayerItemErrorLog', 'NSMapTable', 'NSSet', 'CMMotionManager', 'GKVoiceChatService', 'UIPageControl', 'UILexicon', 'MTLArrayType', 'AVAudioUnitReverb', 'MKGeodesicPolyline', 'AVMutableComposition', 'NSLayoutConstraint', 'UIPrinter', 'NSOrderedSet', 'CBAttribute', 'PKPushPayload', 'NSIncrementalStoreNode', 'EKEventStore', 'MPRemoteCommandEvent', 'UISlider', 'UIBlurEffect', 'CKAsset', 'AVCaptureInput', 'AVAudioEngine', 'MTLVertexDescriptor', 'SKPhysicsBody', 'NSOperation', 'PKPaymentPass', 'UIImageAsset', 'MKMapCamera', 'SKProductsResponse', 'GLKEffectPropertyMaterial', 'AVCaptureDevice', 'CTCallCenter', 'CABTMIDILocalPeripheralViewController', 'NEVPNManager', 'HKQuery', 'SCNPhysicsContact', 'CBMutableService', 'AVSampleBufferDisplayLayer', 'SCNSceneSource', 'SKLightNode', 'CKDiscoveredUserInfo', 'NSMutableArray', 'MTLDepthStencilDescriptor', 'MTLArgument', 'NSMassFormatter', 'CIRectangleFeature', 'PKPushRegistry', 'NEVPNConnection', 'MCNearbyServiceBrowser', 'NSOperationQueue', 'MKPolylineRenderer', 'HKWorkout', 'NSValueTransformer', 'UICollectionViewFlowLayout', 'MPChangePlaybackRateCommandEvent', 'NSEntityMapping', 'SKTexture', 'NSMergePolicy', 'UITextInputStringTokenizer', 'NSRecursiveLock', 'AVAsset', 'NSUndoManager', 'AVAudioUnitSampler', 'NSItemProvider', 'SKUniform', 'MPMediaPickerController', 'CKOperation', 'MTLRenderPipelineDescriptor', 'EAWiFiUnconfiguredAccessory', 'NSFileCoordinator', 'SKRequest', 'NSFileHandle', 'NSConditionLock', 'UISegmentedControl', 'NSManagedObjectModel', 'UITabBarItem', 'SCNCone', 'MPMediaItem', 'SCNMaterial', 'EKRecurrenceRule', 'UIEvent', 'UITouch', 'UIPrintInteractionController', 'CMDeviceMotion', 'NEVPNProtocol', 'NSCompoundPredicate', 'HKHealthStore', 'MKMultiPoint', 'HKSampleType', 'UIPrintFormatter', 'AVAudioUnitEQFilterParameters', 'SKView', 'NSConstantString', 'UIPopoverController', 'CKDatabase', 'AVMetadataFaceObject', 'UIAccelerometer', 'EKEventViewController', 'CMAltitudeData', 'MTLStencilDescriptor', 'UISwipeGestureRecognizer', 'NSPort', 'MKCircleRenderer', 'AVCompositionTrack', 'NSAsynchronousFetchRequest', 'NSUbiquitousKeyValueStore', 'NSMetadataQueryResultGroup', 'AVAssetResourceLoadingDataRequest', 'UITableViewHeaderFooterView', 'CKNotificationID', 'AVAudioSession', 'HKUnit', 'NSNull', 'NSPersistentStoreResult', 'MKCircleView', 'AVAudioChannelLayout', 'NEVPNProtocolIKEv2', 'WKProcessPool', 'UIAttachmentBehavior', 'CLBeacon', 'NSInputStream', 'NSURLCache', 'GKPlayer', 'NSMappingModel', 'CIQRCodeFeature', 'AVMutableVideoComposition', 'PHFetchResult', 'NSAttributeDescription', 'AVPlayer', 'MKAnnotationView', 'PKPaymentRequest', 'NSTimer', 'CBDescriptor', 'MKOverlayView', 'AVAudioUnitTimePitch', 'NSSaveChangesRequest', 'UIReferenceLibraryViewController', 'SKPhysicsJointFixed', 'UILocalizedIndexedCollation', 'UIInterpolatingMotionEffect', 'UIDocumentPickerViewController', 'AVAssetWriter', 'NSBundle', 'SKStoreProductViewController', 'GLKViewController', 'NSMetadataQueryAttributeValueTuple', 'GKTurnBasedMatch', 'AVAudioFile', 'UIActivity', 'NSPipe', 'MKShape', 'NSMergeConflict', 'CIImage', 'HKObject', 'UIRotationGestureRecognizer', 'AVPlayerItemLegibleOutput', 'AVAssetImageGenerator', 'GCControllerButtonInput', 'CKMarkNotificationsReadOperation', 'CKSubscription', 'MPTimedMetadata', 'NKIssue', 'UIScreenMode', 'HMAccessoryBrowser', 'GKTurnBasedEventHandler', 'UIWebView', 'MKPolyline', 'JSVirtualMachine', 'AVAssetReader', 'NSAttributedString', 'GKMatchmakerViewController', 'NSCountedSet', 'UIButton', 'WKNavigationResponse', 'GKLocalPlayer', 'MPMovieErrorLog', 'AVSpeechUtterance', 'HKStatistics', 'UILocalNotification', 'HKBiologicalSexObject', 'AVURLAsset', 'CBPeripheral', 'NSDateComponentsFormatter', 'SKSpriteNode', 'UIAccessibilityElement', 'AVAssetWriterInputGroup', 'HMZone', 'AVAssetReaderAudioMixOutput', 'NSEnumerator', 'UIDocument', 'MKLocalSearchResponse', 'UISimpleTextPrintFormatter', 'PHPhotoLibrary', 'CBService', 'UIDocumentMenuViewController', 'MCSession', 'QLPreviewController', 'CAMediaTimingFunction', 'UITextPosition', 'ASIdentifierManager', 'AVAssetResourceLoadingRequest', 'SLComposeServiceViewController', 'UIPinchGestureRecognizer', 'PHObject', 'NSExtensionItem', 'HKSampleQuery', 'MTLRenderPipelineColorAttachmentDescriptorArray', 'MKRouteStep', 'SCNCapsule', 'NSMetadataQuery', 'AVAssetResourceLoadingContentInformationRequest', 'UITraitCollection', 'CTCarrier', 'NSFileSecurity', 'UIAcceleration', 'UIMotionEffect', 'MTLRenderPipelineReflection', 'CLHeading', 'CLVisit', 'MKDirectionsResponse', 'HMAccessory', 'MTLStructType', 'UITextView', 'CMMagnetometerData', 'UICollisionBehavior', 'UIProgressView', 'CKServerChangeToken', 'UISearchBar', 'MKPlacemark', 'AVCaptureConnection', 'NSPropertyMapping', 'ALAssetsFilter', 'SK3DNode', 'AVPlayerItemErrorLogEvent', 'NSJSONSerialization', 'AVAssetReaderVideoCompositionOutput', 'ABPersonViewController', 'CIDetector', 'GKTurnBasedMatchmakerViewController', 'MPMediaItemCollection', 'SCNSphere', 'NSCondition', 'NSURLCredential', 'MIDINetworkConnection', 'NSFileProviderExtension', 'NSDecimalNumberHandler', 'NSAtomicStoreCacheNode', 'NSAtomicStore', 'EKAlarm', 'CKNotificationInfo', 'AVAudioUnitEQ', 'UIPercentDrivenInteractiveTransition', 'MKPolygon', 'AVAssetTrackSegment', 'MTLVertexAttribute', 'NSExpressionDescription', 'HKStatisticsCollectionQuery', 'NSURLAuthenticationChallenge', 'NSDirectoryEnumerator', 'MKDistanceFormatter', 'UIAlertAction', 'NSPropertyListSerialization', 'GKPeerPickerController', 'UIUserNotificationSettings', 'UITableViewController', 'GKNotificationBanner', 'MKPointAnnotation', 'MTLRenderPassColorAttachmentDescriptorArray', 'NSCache', 'SKPhysicsJoint', 'NSXMLParser', 'UIViewController', 'PKPaymentToken', 'MFMessageComposeViewController', 'AVAudioInputNode', 'NSDataDetector', 'CABTMIDICentralViewController', 'AVAudioUnitMIDIInstrument', 'AVCaptureVideoPreviewLayer', 'AVAssetWriterInputPassDescription', 'MPChangePlaybackRateCommand', 'NSURLComponents', 'CAMetalLayer', 'UISnapBehavior', 'AVMetadataMachineReadableCodeObject', 'CKDiscoverUserInfosOperation', 'NSTextAttachment', 'NSException', 'UIMenuItem', 'CMMotionActivityManager', 'SCNGeometryElement', 'NCWidgetController', 'CAEmitterLayer', 'MKUserLocation', 'UIImagePickerController', 'CIFeature', 'AVCaptureDeviceInput', 'ALAsset', 'NSURLSessionDownloadTask', 'SCNPhysicsHingeJoint', 'MPMoviePlayerViewController', 'NSMutableOrderedSet', 'SCNMaterialProperty', 'UIFont', 'AVCaptureVideoDataOutput', 'NSCachedURLResponse', 'ALAssetsLibrary', 'NSInvocation', 'UILongPressGestureRecognizer', 'NSTextStorage', 'WKWebViewConfiguration', 'CIFaceFeature', 'MKMapSnapshot', 'GLKEffectPropertyFog', 'AVComposition', 'CKDiscoverAllContactsOperation', 'AVAudioMixInputParameters', 'CAEmitterBehavior', 'PKPassLibrary', 'UIMutableUserNotificationCategory', 'NSLock', 'NEVPNProtocolIPSec', 'ADBannerView', 'UIDocumentPickerExtensionViewController', 'UIActivityIndicatorView', 'AVPlayerMediaSelectionCriteria', 'CALayer', 'UIAccessibilityCustomAction', 'UIBarButtonItem', 'AVAudioSessionRouteDescription', 'CLBeaconRegion', 'HKBloodTypeObject', 'MTLVertexBufferLayoutDescriptorArray', 'CABasicAnimation', 'AVVideoCompositionInstruction', 'AVMutableTimedMetadataGroup', 'EKRecurrenceEnd', 'NSTextContainer', 'TWTweetComposeViewController', 'PKPaymentAuthorizationViewController', 'UIScrollView', 'WKNavigationAction', 'AVPlayerItemMetadataOutput', 'EKRecurrenceDayOfWeek', 'NSNumberFormatter', 'MTLComputePipelineReflection', 'UIScreen', 'CLRegion', 'NSProcessInfo', 'GLKTextureInfo', 'SCNSkinner', 'AVCaptureMetadataOutput', 'SCNAnimationEvent', 'NSTextTab', 'JSManagedValue', 'NSDate', 'UITextChecker', 'WKBackForwardListItem', 'NSData', 'NSParagraphStyle', 'AVMutableMetadataItem', 'EKCalendar', 'HKWorkoutEvent', 'NSMutableURLRequest', 'UIVideoEditorController', 'HMTimerTrigger', 'AVAudioUnitVarispeed', 'UIDynamicAnimator', 'AVCompositionTrackSegment', 'GCGamepadSnapshot', 'MPMediaEntity', 'GLKSkyboxEffect', 'UISwitch', 'EKStructuredLocation', 'UIGestureRecognizer', 'NSProxy', 'GLKBaseEffect', 'UIPushBehavior', 'GKScoreChallenge', 'NSCoder', 'MPMediaPlaylist', 'NSDateComponents', 'WKUserScript', 'EKEvent', 'NSDateFormatter', 'NSAsynchronousFetchResult', 'AVAssetWriterInputPixelBufferAdaptor', 'UIVisualEffect', 'UICollectionViewCell', 'UITextField', 'CLPlacemark', 'MPPlayableContentManager', 'AVCaptureOutput', 'HMCharacteristicWriteAction', 'CKModifySubscriptionsOperation', 'NSPropertyDescription', 'GCGamepad', 'UIMarkupTextPrintFormatter', 'SCNTube', 'NSPersistentStoreCoordinator', 'AVAudioEnvironmentNode', 'GKMatchmaker', 'CIContext', 'NSThread', 'SLComposeSheetConfigurationItem', 'SKPhysicsJointSliding', 'NSPredicate', 'GKVoiceChat', 'SKCropNode', 'AVCaptureAudioPreviewOutput', 'NSStringDrawingContext', 'GKGameCenterViewController', 'UIPrintPaper', 'SCNPhysicsBallSocketJoint', 'UICollectionViewLayoutInvalidationContext', 'GLKEffectPropertyTransform', 'AVAudioIONode', 'UIDatePicker', 'MKDirections', 'ALAssetsGroup', 'CKRecordZoneNotification', 'SCNScene', 'MPMovieAccessLogEvent', 'CKFetchSubscriptionsOperation', 'CAEmitterCell', 'AVAudioUnitTimeEffect', 'HMCharacteristicMetadata', 'MKPinAnnotationView', 'UIPickerView', 'UIImageView', 'UIUserNotificationCategory', 'SCNPhysicsVehicleWheel', 'HKCategoryType', 'MPMediaQuerySection', 'GKFriendRequestComposeViewController', 'NSError', 'MTLRenderPipelineColorAttachmentDescriptor', 'SCNPhysicsShape', 'UISearchController', 'SCNPhysicsBody', 'CTSubscriberInfo', 'AVPlayerItemAccessLog', 'MPMediaPropertyPredicate', 'CMLogItem', 'NSAutoreleasePool', 'NSSocketPort', 'AVAssetReaderTrackOutput', 'SKNode', 'UIMutableUserNotificationAction', 'SCNProgram', 'AVSpeechSynthesisVoice', 'CMAltimeter', 'AVCaptureAudioChannel', 'GKTurnBasedExchangeReply', 'AVVideoCompositionLayerInstruction', 'AVSpeechSynthesizer', 'GKChallengeEventHandler', 'AVCaptureFileOutput', 'UIControl', 'SCNPhysicsField', 'CKReference', 'LAContext', 'CKRecordID', 'ADInterstitialAd', 'AVAudioSessionDataSourceDescription', 'AVAudioBuffer', 'CIColorKernel', 'GCControllerDirectionPad', 'NSFileManager', 'AVMutableAudioMixInputParameters', 'UIScreenEdgePanGestureRecognizer', 'CAKeyframeAnimation', 'CKQueryNotification', 'PHAdjustmentData', 'EASession', 'AVAssetResourceRenewalRequest', 'UIInputView', 'NSFileWrapper', 'UIResponder', 'NSPointerFunctions', 'UIKeyCommand', 'NSHTTPCookieStorage', 'AVMediaSelectionOption', 'NSRunLoop', 'NSFileAccessIntent', 'CAAnimationGroup', 'MKCircle', 'UIAlertController', 'NSMigrationManager', 'NSDateIntervalFormatter', 'UICollectionViewUpdateItem', 'CKDatabaseOperation', 'PHImageRequestOptions', 'SKReachConstraints', 'CKRecord', 'CAInterAppAudioSwitcherView', 'WKWindowFeatures', 'GKInvite', 'NSMutableData', 'PHAssetCollectionChangeRequest', 'NSMutableParagraphStyle', 'UIDynamicBehavior', 'GLKEffectProperty', 'CKFetchRecordChangesOperation', 'SKShapeNode', 'MPMovieErrorLogEvent', 'MKPolygonView', 'MPContentItem', 'HMAction', 'NSScanner', 'GKAchievementChallenge', 'AVAudioPlayer', 'CKContainer', 'AVVideoComposition', 'NKLibrary', 'NSPersistentStore', 'AVCaptureMovieFileOutput', 'HMRoom', 'GKChallenge', 'UITextRange', 'NSURLProtectionSpace', 'ACAccountStore', 'MPSkipIntervalCommand', 'NSComparisonPredicate', 'HMHome', 'PHVideoRequestOptions', 'NSOutputStream', 'MPSkipIntervalCommandEvent', 'PKAddPassesViewController', 'UITextSelectionRect', 'CTTelephonyNetworkInfo', 'AVTextStyleRule', 'NSFetchedPropertyDescription', 'UIPageViewController', 'CATransformLayer', 'UICollectionViewController', 'AVAudioNode', 'MCNearbyServiceAdvertiser', 'NSObject', 'PHAsset', 'GKLeaderboardViewController', 'CKQueryCursor', 'MPMusicPlayerController', 'MKOverlayPathRenderer', 'CMPedometerData', 'HMService', 'SKFieldNode', 'GKAchievement', 'WKUserContentController', 'AVAssetTrack', 'TWRequest', 'SKLabelNode', 'AVCaptureBracketedStillImageSettings', 'MIDINetworkHost', 'MPMediaPredicate', 'AVFrameRateRange', 'MTLTextureDescriptor', 'MTLVertexBufferLayoutDescriptor', 'MPFeedbackCommandEvent', 'UIUserNotificationAction', 'HKStatisticsQuery', 'SCNParticleSystem', 'NSIndexPath', 'AVVideoCompositionRenderContext', 'CADisplayLink', 'HKObserverQuery', 'UIPopoverPresentationController', 'CKQueryOperation', 'CAEAGLLayer', 'NSMutableString', 'NSMessagePort', 'NSURLQueryItem', 'MTLStructMember', 'AVAudioSessionChannelDescription', 'GLKView', 'UIActivityViewController', 'GKAchievementViewController', 'GKTurnBasedParticipant', 'NSURLProtocol', 'NSUserDefaults', 'NSCalendar', 'SKKeyframeSequence', 'AVMetadataItemFilter', 'CKModifyRecordZonesOperation', 'WKPreferences', 'NSMethodSignature', 'NSRegularExpression', 'EAGLSharegroup', 'AVPlayerItemVideoOutput', 'PHContentEditingInputRequestOptions', 'GKMatch', 'CIColor', 'UIDictationPhrase'}
+COCOA_PROTOCOLS = {'SKStoreProductViewControllerDelegate', 'AVVideoCompositionInstruction', 'AVAudioSessionDelegate', 'GKMatchDelegate', 'NSFileManagerDelegate', 'UILayoutSupport', 'NSCopying', 'UIPrintInteractionControllerDelegate', 'QLPreviewControllerDataSource', 'SKProductsRequestDelegate', 'NSTextStorageDelegate', 'MCBrowserViewControllerDelegate', 'MTLComputeCommandEncoder', 'SCNSceneExportDelegate', 'UISearchResultsUpdating', 'MFMailComposeViewControllerDelegate', 'MTLBlitCommandEncoder', 'NSDecimalNumberBehaviors', 'PHContentEditingController', 'NSMutableCopying', 'UIActionSheetDelegate', 'UIViewControllerTransitioningDelegate', 'UIAlertViewDelegate', 'AVAudioPlayerDelegate', 'MKReverseGeocoderDelegate', 'NSCoding', 'UITextInputTokenizer', 'GKFriendRequestComposeViewControllerDelegate', 'UIActivityItemSource', 'NSCacheDelegate', 'UIAdaptivePresentationControllerDelegate', 'GKAchievementViewControllerDelegate', 'UIViewControllerTransitionCoordinator', 'EKEventEditViewDelegate', 'NSURLConnectionDelegate', 'UITableViewDelegate', 'GKPeerPickerControllerDelegate', 'UIGuidedAccessRestrictionDelegate', 'AVSpeechSynthesizerDelegate', 'AVAudio3DMixing', 'AVPlayerItemLegibleOutputPushDelegate', 'ADInterstitialAdDelegate', 'HMAccessoryBrowserDelegate', 'AVAssetResourceLoaderDelegate', 'UITabBarControllerDelegate', 'CKRecordValue', 'SKPaymentTransactionObserver', 'AVCaptureAudioDataOutputSampleBufferDelegate', 'UIInputViewAudioFeedback', 'GKChallengeListener', 'SKSceneDelegate', 'UIPickerViewDelegate', 'UIWebViewDelegate', 'UIApplicationDelegate', 'GKInviteEventListener', 'MPMediaPlayback', 'MyClassJavaScriptMethods', 'AVAsynchronousKeyValueLoading', 'QLPreviewItem', 'SCNBoundingVolume', 'NSPortDelegate', 'UIContentContainer', 'SCNNodeRendererDelegate', 'SKRequestDelegate', 'SKPhysicsContactDelegate', 'HMAccessoryDelegate', 'UIPageViewControllerDataSource', 'SCNSceneRendererDelegate', 'SCNPhysicsContactDelegate', 'MKMapViewDelegate', 'AVPlayerItemOutputPushDelegate', 'UICollectionViewDelegate', 'UIImagePickerControllerDelegate', 'MTLRenderCommandEncoder', 'PKPaymentAuthorizationViewControllerDelegate', 'UIToolbarDelegate', 'WKUIDelegate', 'SCNActionable', 'NSURLConnectionDataDelegate', 'MKOverlay', 'CBCentralManagerDelegate', 'JSExport', 'NSTextLayoutOrientationProvider', 'UIPickerViewDataSource', 'PKPushRegistryDelegate', 'UIViewControllerTransitionCoordinatorContext', 'NSLayoutManagerDelegate', 'MTLLibrary', 'NSFetchedResultsControllerDelegate', 'ABPeoplePickerNavigationControllerDelegate', 'MTLResource', 'NSDiscardableContent', 'UITextFieldDelegate', 'MTLBuffer', 'MTLSamplerState', 'GKGameCenterControllerDelegate', 'MPMediaPickerControllerDelegate', 'UISplitViewControllerDelegate', 'UIAppearance', 'UIPickerViewAccessibilityDelegate', 'UITraitEnvironment', 'UIScrollViewAccessibilityDelegate', 'ADBannerViewDelegate', 'MPPlayableContentDataSource', 'MTLComputePipelineState', 'NSURLSessionDelegate', 'MTLCommandBuffer', 'NSXMLParserDelegate', 'UIViewControllerRestoration', 'UISearchBarDelegate', 'UIBarPositioning', 'CBPeripheralDelegate', 'UISearchDisplayDelegate', 'CAAction', 'PKAddPassesViewControllerDelegate', 'MCNearbyServiceAdvertiserDelegate', 'MTLDepthStencilState', 'GKTurnBasedMatchmakerViewControllerDelegate', 'MPPlayableContentDelegate', 'AVCaptureVideoDataOutputSampleBufferDelegate', 'UIAppearanceContainer', 'UIStateRestoring', 'UITextDocumentProxy', 'MTLDrawable', 'NSURLSessionTaskDelegate', 'NSFilePresenter', 'AVAudioStereoMixing', 'UIViewControllerContextTransitioning', 'UITextInput', 'CBPeripheralManagerDelegate', 'UITextInputDelegate', 'NSFastEnumeration', 'NSURLAuthenticationChallengeSender', 'SCNProgramDelegate', 'AVVideoCompositing', 'SCNAnimatable', 'NSSecureCoding', 'MCAdvertiserAssistantDelegate', 'GKLocalPlayerListener', 'GLKNamedEffect', 'UIPopoverControllerDelegate', 'AVCaptureMetadataOutputObjectsDelegate', 'NSExtensionRequestHandling', 'UITextSelecting', 'UIPrinterPickerControllerDelegate', 'NCWidgetProviding', 'MTLCommandEncoder', 'NSURLProtocolClient', 'MFMessageComposeViewControllerDelegate', 'UIVideoEditorControllerDelegate', 'WKNavigationDelegate', 'GKSavedGameListener', 'UITableViewDataSource', 'MTLFunction', 'EKCalendarChooserDelegate', 'NSUserActivityDelegate', 'UICollisionBehaviorDelegate', 'NSStreamDelegate', 'MCNearbyServiceBrowserDelegate', 'HMHomeDelegate', 'UINavigationControllerDelegate', 'MCSessionDelegate', 'UIDocumentPickerDelegate', 'UIViewControllerInteractiveTransitioning', 'GKTurnBasedEventListener', 'SCNSceneRenderer', 'MTLTexture', 'GLKViewDelegate', 'EAAccessoryDelegate', 'WKScriptMessageHandler', 'PHPhotoLibraryChangeObserver', 'NSKeyedUnarchiverDelegate', 'AVPlayerItemMetadataOutputPushDelegate', 'NSMachPortDelegate', 'SCNShadable', 'UIPopoverBackgroundViewMethods', 'UIDocumentMenuDelegate', 'UIBarPositioningDelegate', 'ABPersonViewControllerDelegate', 'NSNetServiceBrowserDelegate', 'EKEventViewDelegate', 'UIScrollViewDelegate', 'NSURLConnectionDownloadDelegate', 'UIGestureRecognizerDelegate', 'UINavigationBarDelegate', 'AVAudioMixing', 'NSFetchedResultsSectionInfo', 'UIDocumentInteractionControllerDelegate', 'MTLParallelRenderCommandEncoder', 'QLPreviewControllerDelegate', 'UIAccessibilityReadingContent', 'ABUnknownPersonViewControllerDelegate', 'GLKViewControllerDelegate', 'UICollectionViewDelegateFlowLayout', 'UIPopoverPresentationControllerDelegate', 'UIDynamicAnimatorDelegate', 'NSTextAttachmentContainer', 'MKAnnotation', 'UIAccessibilityIdentification', 'UICoordinateSpace', 'ABNewPersonViewControllerDelegate', 'MTLDevice', 'CAMediaTiming', 'AVCaptureFileOutputRecordingDelegate', 'HMHomeManagerDelegate', 'UITextViewDelegate', 'UITabBarDelegate', 'GKLeaderboardViewControllerDelegate', 'UISearchControllerDelegate', 'EAWiFiUnconfiguredAccessoryBrowserDelegate', 'UITextInputTraits', 'MTLRenderPipelineState', 'GKVoiceChatClient', 'UIKeyInput', 'UICollectionViewDataSource', 'SCNTechniqueSupport', 'NSLocking', 'AVCaptureFileOutputDelegate', 'GKChallengeEventHandlerDelegate', 'UIObjectRestoration', 'CIFilterConstructor', 'AVPlayerItemOutputPullDelegate', 'EAGLDrawable', 'AVVideoCompositionValidationHandling', 'UIViewControllerAnimatedTransitioning', 'NSURLSessionDownloadDelegate', 'UIAccelerometerDelegate', 'UIPageViewControllerDelegate', 'MTLCommandQueue', 'UIDataSourceModelAssociation', 'AVAudioRecorderDelegate', 'GKSessionDelegate', 'NSKeyedArchiverDelegate', 'CAMetalDrawable', 'UIDynamicItem', 'CLLocationManagerDelegate', 'NSMetadataQueryDelegate', 'NSNetServiceDelegate', 'GKMatchmakerViewControllerDelegate', 'NSURLSessionDataDelegate'}
+COCOA_PRIMITIVES = {'ROTAHeader', '__CFBundle', 'MortSubtable', 'AudioFilePacketTableInfo', 'CGPDFOperatorTable', 'KerxStateEntry', 'ExtendedTempoEvent', 'CTParagraphStyleSetting', 'OpaqueMIDIPort', '_GLKMatrix3', '_GLKMatrix2', '_GLKMatrix4', 'ExtendedControlEvent', 'CAFAudioDescription', 'OpaqueCMBlockBuffer', 'CGTextDrawingMode', 'EKErrorCode', 'gss_buffer_desc_struct', 'AudioUnitParameterInfo', '__SCPreferences', '__CTFrame', '__CTLine', 'AudioFile_SMPTE_Time', 'gss_krb5_lucid_context_v1', 'OpaqueJSValue', 'TrakTableEntry', 'AudioFramePacketTranslation', 'CGImageSource', 'OpaqueJSPropertyNameAccumulator', 'JustPCGlyphRepeatAddAction', '__CFBinaryHeap', 'OpaqueMIDIThruConnection', 'opaqueCMBufferQueue', 'OpaqueMusicSequence', 'MortRearrangementSubtable', 'MixerDistanceParams', 'MorxSubtable', 'MIDIObjectPropertyChangeNotification', 'SFNTLookupSegment', 'CGImageMetadataErrors', 'CGPath', 'OpaqueMIDIEndpoint', 'AudioComponentPlugInInterface', 'gss_ctx_id_t_desc_struct', 'sfntFontFeatureSetting', 'OpaqueJSContextGroup', '__SCNetworkConnection', 'AudioUnitParameterValueTranslation', 'CGImageMetadataType', 'CGPattern', 'AudioFileTypeAndFormatID', 'CGContext', 'AUNodeInteraction', 'SFNTLookupTable', 'JustPCDecompositionAction', 'KerxControlPointHeader', 'AudioStreamPacketDescription', 'KernSubtableHeader', '__SecCertificate', 'AUMIDIOutputCallbackStruct', 'MIDIMetaEvent', 'AudioQueueChannelAssignment', 'AnchorPoint', 'JustTable', '__CFNetService', 'CF_BRIDGED_TYPE', 'gss_krb5_lucid_key', 'CGPDFDictionary', 'KerxSubtableHeader', 'CAF_UUID_ChunkHeader', 'gss_krb5_cfx_keydata', 'OpaqueJSClass', 'CGGradient', 'OpaqueMIDISetup', 'JustPostcompTable', '__CTParagraphStyle', 'AudioUnitParameterHistoryInfo', 'OpaqueJSContext', 'CGShading', 'MIDIThruConnectionParams', 'BslnFormat0Part', 'SFNTLookupSingle', '__CFHost', '__SecRandom', '__CTFontDescriptor', '_NSRange', 'sfntDirectory', 'AudioQueueLevelMeterState', 'CAFPositionPeak', 'PropLookupSegment', '__CVOpenGLESTextureCache', 'sfntInstance', '_GLKQuaternion', 'AnkrTable', '__SCNetworkProtocol', 'CAFFileHeader', 'KerxOrderedListHeader', 'CGBlendMode', 'STXEntryOne', 'CAFRegion', 'SFNTLookupTrimmedArrayHeader', 'SCNMatrix4', 'KerxControlPointEntry', 'OpaqueMusicTrack', '_GLKVector4', 'gss_OID_set_desc_struct', 'OpaqueMusicPlayer', '_CFHTTPAuthentication', 'CGAffineTransform', 'CAFMarkerChunk', 'AUHostIdentifier', 'ROTAGlyphEntry', 'BslnTable', 'gss_krb5_lucid_context_version', '_GLKMatrixStack', 'CGImage', 'KernStateEntry', 'SFNTLookupSingleHeader', 'MortLigatureSubtable', 'CAFUMIDChunk', 'SMPTETime', 'CAFDataChunk', 'CGPDFStream', 'AudioFileRegionList', 'STEntryTwo', 'SFNTLookupBinarySearchHeader', 'OpbdTable', '__CTGlyphInfo', 'BslnFormat2Part', 'KerxIndexArrayHeader', 'TrakTable', 'KerxKerningPair', '__CFBitVector', 'KernVersion0SubtableHeader', 'OpaqueAudioComponentInstance', 'AudioChannelLayout', '__CFUUID', 'MIDISysexSendRequest', '__CFNumberFormatter', 'CGImageSourceStatus', 'AudioFileMarkerList', 'AUSamplerBankPresetData', 'CGDataProvider', 'AudioFormatInfo', '__SecIdentity', 'sfntCMapExtendedSubHeader', 'MIDIChannelMessage', 'KernOffsetTable', 'CGColorSpaceModel', 'MFMailComposeErrorCode', 'CGFunction', '__SecTrust', 'AVAudio3DAngularOrientation', 'CGFontPostScriptFormat', 'KernStateHeader', 'AudioUnitCocoaViewInfo', 'CGDataConsumer', 'OpaqueMIDIDevice', 'KernVersion0Header', 'AnchorPointTable', 'CGImageDestination', 'CAFInstrumentChunk', 'AudioUnitMeterClipping', 'MorxChain', '__CTFontCollection', 'STEntryOne', 'STXEntryTwo', 'ExtendedNoteOnEvent', 'CGColorRenderingIntent', 'KerxSimpleArrayHeader', 'MorxTable', '_GLKVector3', '_GLKVector2', 'MortTable', 'CGPDFBox', 'AudioUnitParameterValueFromString', '__CFSocket', 'ALCdevice_struct', 'MIDINoteMessage', 'sfntFeatureHeader', 'CGRect', '__SCNetworkInterface', '__CFTree', 'MusicEventUserData', 'TrakTableData', 'GCQuaternion', 'MortContextualSubtable', '__CTRun', 'AudioUnitFrequencyResponseBin', 'MortChain', 'MorxInsertionSubtable', 'CGImageMetadata', 'gss_auth_identity', 'AudioUnitMIDIControlMapping', 'CAFChunkHeader', 'CGImagePropertyOrientation', 'CGPDFScanner', 'OpaqueMusicEventIterator', 'sfntDescriptorHeader', 'AudioUnitNodeConnection', 'OpaqueMIDIDeviceList', 'ExtendedAudioFormatInfo', 'BslnFormat1Part', 'sfntFontDescriptor', 'KernSimpleArrayHeader', '__CFRunLoopObserver', 'CGPatternTiling', 'MIDINotification', 'MorxLigatureSubtable', 'MessageComposeResult', 'MIDIThruConnectionEndpoint', 'MusicDeviceStdNoteParams', 'opaqueCMSimpleQueue', 'ALCcontext_struct', 'OpaqueAudioQueue', 'PropLookupSingle', 'CGInterpolationQuality', 'CGColor', 'AudioOutputUnitStartAtTimeParams', 'gss_name_t_desc_struct', 'CGFunctionCallbacks', 'CAFPacketTableHeader', 'AudioChannelDescription', 'sfntFeatureName', 'MorxContextualSubtable', 'CVSMPTETime', 'AudioValueRange', 'CGTextEncoding', 'AudioStreamBasicDescription', 'AUNodeRenderCallback', 'AudioPanningInfo', 'KerxOrderedListEntry', '__CFAllocator', 'OpaqueJSPropertyNameArray', '__SCDynamicStore', 'OpaqueMIDIEntity', '__CTRubyAnnotation', 'SCNVector4', 'CFHostClientContext', 'CFNetServiceClientContext', 'AudioUnitPresetMAS_SettingData', 'opaqueCMBufferQueueTriggerToken', 'AudioUnitProperty', 'CAFRegionChunk', 'CGPDFString', '__GLsync', '__CFStringTokenizer', 'JustWidthDeltaEntry', 'sfntVariationAxis', '__CFNetDiagnostic', 'CAFOverviewSample', 'sfntCMapEncoding', 'CGVector', '__SCNetworkService', 'opaqueCMSampleBuffer', 'AUHostVersionIdentifier', 'AudioBalanceFade', 'sfntFontRunFeature', 'KerxCoordinateAction', 'sfntCMapSubHeader', 'CVPlanarPixelBufferInfo', 'AUNumVersion', 'AUSamplerInstrumentData', 'AUPreset', '__CTRunDelegate', 'OpaqueAudioQueueProcessingTap', 'KerxTableHeader', '_NSZone', 'OpaqueExtAudioFile', '__CFRunLoopSource', '__CVMetalTextureCache', 'KerxAnchorPointAction', 'OpaqueJSString', 'AudioQueueParameterEvent', '__CFHTTPMessage', 'OpaqueCMClock', 'ScheduledAudioFileRegion', 'STEntryZero', 'AVAudio3DPoint', 'gss_channel_bindings_struct', 'sfntVariationHeader', 'AUChannelInfo', 'UIOffset', 'GLKEffectPropertyPrv', 'KerxStateHeader', 'CGLineJoin', 'CGPDFDocument', '__CFBag', 'KernOrderedListHeader', '__SCNetworkSet', '__SecKey', 'MIDIObjectAddRemoveNotification', 'AudioUnitParameter', 'JustPCActionSubrecord', 'AudioComponentDescription', 'AudioUnitParameterValueName', 'AudioUnitParameterEvent', 'KerxControlPointAction', 'AudioTimeStamp', 'KernKerningPair', 'gss_buffer_set_desc_struct', 'MortFeatureEntry', 'FontVariation', 'CAFStringID', 'LcarCaretClassEntry', 'AudioUnitParameterStringFromValue', 'ACErrorCode', 'ALMXGlyphEntry', 'LtagTable', '__CTTypesetter', 'AuthorizationOpaqueRef', 'UIEdgeInsets', 'CGPathElement', 'CAFMarker', 'KernTableHeader', 'NoteParamsControlValue', 'SSLContext', 'gss_cred_id_t_desc_struct', 'AudioUnitParameterNameInfo', 'CGDataConsumerCallbacks', 'ALMXHeader', 'CGLineCap', 'MIDIControlTransform', 'CGPDFArray', '__SecPolicy', 'AudioConverterPrimeInfo', '__CTTextTab', '__CFNetServiceMonitor', 'AUInputSamplesInOutputCallbackStruct', '__CTFramesetter', 'CGPDFDataFormat', 'STHeader', 'CVPlanarPixelBufferInfo_YCbCrPlanar', 'MIDIValueMap', 'JustDirectionTable', '__SCBondStatus', 'SFNTLookupSegmentHeader', 'OpaqueCMMemoryPool', 'CGPathDrawingMode', 'CGFont', '__SCNetworkReachability', 'AudioClassDescription', 'CGPoint', 'AVAudio3DVectorOrientation', 'CAFStrings', '__CFNetServiceBrowser', 'opaqueMTAudioProcessingTap', 'sfntNameRecord', 'CGPDFPage', 'CGLayer', 'ComponentInstanceRecord', 'CAFInfoStrings', 'HostCallbackInfo', 'MusicDeviceNoteParams', 'OpaqueVTCompressionSession', 'KernIndexArrayHeader', 'CVPlanarPixelBufferInfo_YCbCrBiPlanar', 'MusicTrackLoopInfo', 'opaqueCMFormatDescription', 'STClassTable', 'sfntDirectoryEntry', 'OpaqueCMTimebase', 'CGDataProviderDirectCallbacks', 'MIDIPacketList', 'CAFOverviewChunk', 'MIDIPacket', 'ScheduledAudioSlice', 'CGDataProviderSequentialCallbacks', 'AudioBuffer', 'MorxRearrangementSubtable', 'CGPatternCallbacks', 'AUDistanceAttenuationData', 'MIDIIOErrorNotification', 'CGPDFContentStream', 'IUnknownVTbl', 'MIDITransform', 'MortInsertionSubtable', 'CABarBeatTime', 'AudioBufferList', '__CVBuffer', 'AURenderCallbackStruct', 'STXEntryZero', 'JustPCDuctilityAction', 'OpaqueAudioQueueTimeline', 'VTDecompressionOutputCallbackRecord', 'OpaqueMIDIClient', '__CFPlugInInstance', 'AudioQueueBuffer', '__CFFileDescriptor', 'AudioUnitConnection', '_GKTurnBasedExchangeStatus', 'LcarCaretTable', 'CVPlanarComponentInfo', 'JustWidthDeltaGroup', 'OpaqueAudioComponent', 'ParameterEvent', '__CVPixelBufferPool', '__CTFont', 'CGColorSpace', 'CGSize', 'AUDependentParameter', 'MIDIDriverInterface', 'gss_krb5_rfc1964_keydata', '__CFDateFormatter', 'LtagStringRange', 'OpaqueVTDecompressionSession', 'gss_iov_buffer_desc_struct', 'AUPresetEvent', 'PropTable', 'KernOrderedListEntry', 'CF_BRIDGED_MUTABLE_TYPE', 'gss_OID_desc_struct', 'AudioUnitPresetMAS_Settings', 'AudioFileMarker', 'JustPCConditionalAddAction', 'BslnFormat3Part', '__CFNotificationCenter', 'MortSwashSubtable', 'AUParameterMIDIMapping', 'SCNVector3', 'OpaqueAudioConverter', 'MIDIRawData', 'sfntNameHeader', '__CFRunLoop', 'MFMailComposeResult', 'CATransform3D', 'OpbdSideValues', 'CAF_SMPTE_Time', '__SecAccessControl', 'JustPCAction', 'OpaqueVTFrameSilo', 'OpaqueVTMultiPassStorage', 'CGPathElementType', 'AudioFormatListItem', 'AudioUnitExternalBuffer', 'AudioFileRegion', 'AudioValueTranslation', 'CGImageMetadataTag', 'CAFPeakChunk', 'AudioBytePacketTranslation', 'sfntCMapHeader', '__CFURLEnumerator', 'STXHeader', 'CGPDFObjectType', 'SFNTLookupArrayHeader'}
 
 if __name__ == '__main__':  # pragma: no cover
     import os
@@ -40,7 +38,8 @@
                 continue
 
             headerFilePath = frameworkHeadersDir + f
-            content = open(headerFilePath).read()
+            with open(headerFilePath) as f:
+                content = f.read()
             res = re.findall(r'(?<=@interface )\w+', content)
             for r in res:
                 all_interfaces.add(r)
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_csound_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_csound_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -3,52 +3,56 @@
     pygments.lexers._csound_builtins
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    :copyright: Copyright 2006-2018 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-# Opcodes in Csound 6.12.0 at commit 6ca322bd31f1ca907c008616b40a5f237ff449db using
-#   python -c "
-#   import re, subprocess
-#   output = subprocess.Popen(['csound', '--list-opcodes0'], stderr=subprocess.PIPE).communicate()[1]
-#   opcodes = output[re.search(r'^$', output, re.M).end():re.search(r'^\d+ opcodes$', output, re.M).start()].split()
-#   output = subprocess.Popen(['csound', '--list-opcodes2'], stderr=subprocess.PIPE).communicate()[1]
-#   all_opcodes = output[re.search(r'^$', output, re.M).end():re.search(r'^\d+ opcodes$', output, re.M).start()].split()
+# Opcodes in Csound 6.14.0 using:
+#   python3 -c "
+#   import re
+#   from subprocess import Popen, PIPE
+#   output = Popen(['csound', '--list-opcodes0'], stderr=PIPE, text=True).communicate()[1]
+#   opcodes = output[re.search(r'^\$', output, re.M).end() : re.search(r'^\d+ opcodes\$', output, re.M).start()].split()
+#   output = Popen(['csound', '--list-opcodes2'], stderr=PIPE, text=True).communicate()[1]
+#   all_opcodes = output[re.search(r'^\$', output, re.M).end() : re.search(r'^\d+ opcodes\$', output, re.M).start()].split()
 #   deprecated_opcodes = [opcode for opcode in all_opcodes if opcode not in opcodes]
-#   print '''OPCODES = set(\'''
-#   {}
+#   # Remove opcodes that csound.py treats as keywords.
+#   keyword_opcodes = [
+#       'cggoto',   # https://csound.com/docs/manual/cggoto.html
+#       'cigoto',   # https://csound.com/docs/manual/cigoto.html
+#       'cingoto',  # (undocumented)
+#       'ckgoto',   # https://csound.com/docs/manual/ckgoto.html
+#       'cngoto',   # https://csound.com/docs/manual/cngoto.html
+#       'cnkgoto',  # (undocumented)
+#       'endin',    # https://csound.com/docs/manual/endin.html
+#       'endop',    # https://csound.com/docs/manual/endop.html
+#       'goto',     # https://csound.com/docs/manual/goto.html
+#       'igoto',    # https://csound.com/docs/manual/igoto.html
+#       'instr',    # https://csound.com/docs/manual/instr.html
+#       'kgoto',    # https://csound.com/docs/manual/kgoto.html
+#       'loop_ge',  # https://csound.com/docs/manual/loop_ge.html
+#       'loop_gt',  # https://csound.com/docs/manual/loop_gt.html
+#       'loop_le',  # https://csound.com/docs/manual/loop_le.html
+#       'loop_lt',  # https://csound.com/docs/manual/loop_lt.html
+#       'opcode',   # https://csound.com/docs/manual/opcode.html
+#       'reinit',   # https://csound.com/docs/manual/reinit.html
+#       'return',   # https://csound.com/docs/manual/return.html
+#       'rireturn', # https://csound.com/docs/manual/rireturn.html
+#       'rigoto',   # https://csound.com/docs/manual/rigoto.html
+#       'tigoto',   # https://csound.com/docs/manual/tigoto.html
+#       'timout'    # https://csound.com/docs/manual/timout.html
+#   ]
+#   opcodes = [opcode for opcode in opcodes if opcode not in keyword_opcodes]
+#   newline = '\n'
+#   print(f'''OPCODES = set(\'''
+#   {newline.join(opcodes)}
 #   \'''.split())
 #
 #   DEPRECATED_OPCODES = set(\'''
-#   {}
+#   {newline.join(deprecated_opcodes)}
 #   \'''.split())
-#   '''.format('\n'.join(opcodes), '\n'.join(deprecated_opcodes))
+#   ''')
 #   "
-# except for
-#   cggoto   csound.com/docs/manual/cggoto.html
-#   cigoto   csound.com/docs/manual/cigoto.html
-#   cingoto  (undocumented)
-#   ckgoto   csound.com/docs/manual/ckgoto.html
-#   cngoto   csound.com/docs/manual/cngoto.html
-#   cnkgoto  (undocumented)
-#   endin    csound.com/docs/manual/endin.html
-#   endop    csound.com/docs/manual/endop.html
-#   goto     csound.com/docs/manual/goto.html
-#   igoto    csound.com/docs/manual/igoto.html
-#   instr    csound.com/docs/manual/instr.html
-#   kgoto    csound.com/docs/manual/kgoto.html
-#   loop_ge  csound.com/docs/manual/loop_ge.html
-#   loop_gt  csound.com/docs/manual/loop_gt.html
-#   loop_le  csound.com/docs/manual/loop_le.html
-#   loop_lt  csound.com/docs/manual/loop_lt.html
-#   opcode   csound.com/docs/manual/opcode.html
-#   reinit   csound.com/docs/manual/reinit.html
-#   return   csound.com/docs/manual/return.html
-#   rireturn csound.com/docs/manual/rireturn.html
-#   rigoto   csound.com/docs/manual/rigoto.html
-#   tigoto   csound.com/docs/manual/tigoto.html
-#   timout   csound.com/docs/manual/timout.html
-# which are treated as keywords in csound.py.
 
 OPCODES = set('''
 ATSadd
@@ -169,8 +173,8 @@
 STKBrass
 STKClarinet
 STKDrummer
+STKFMVoices
 STKFlute
-STKFMVoices
 STKHevyMetl
 STKMandolin
 STKModalBar
@@ -201,6 +205,7 @@
 ampdb
 ampdbfs
 ampmidi
+ampmidicurve
 ampmidid
 areson
 aresonk
@@ -249,7 +254,6 @@
 ceps
 cepsinv
 chanctrl
-changed
 changed2
 chani
 chano
@@ -261,11 +265,19 @@
 chnclear
 chnexport
 chnget
+chngeta
+chngeti
+chngetk
 chngetks
+chngets
 chnmix
 chnparams
 chnset
+chnseta
+chnseti
+chnsetk
 chnsetks
+chnsets
 chuap
 clear
 clfilt
@@ -418,6 +430,17 @@
 flooper
 flooper2
 floor
+fluidAllOut
+fluidCCi
+fluidCCk
+fluidControl
+fluidEngine
+fluidInfo
+fluidLoad
+fluidNote
+fluidOut
+fluidProgramSelect
+fluidSetInterpMethod
 fmanal
 fmax
 fmb3
@@ -452,6 +475,7 @@
 ftchnls
 ftconv
 ftcps
+ftexists
 ftfree
 ftgen
 ftgenonce
@@ -492,6 +516,7 @@
 grain2
 grain3
 granule
+gtf
 guiro
 harmon
 harmon2
@@ -599,6 +624,10 @@
 la_i_multiply_mr
 la_i_multiply_vc
 la_i_multiply_vr
+la_i_norm1_mc
+la_i_norm1_mr
+la_i_norm1_vc
+la_i_norm1_vr
 la_i_norm_euclid_mc
 la_i_norm_euclid_mr
 la_i_norm_euclid_vc
@@ -609,10 +638,6 @@
 la_i_norm_inf_vr
 la_i_norm_max_mc
 la_i_norm_max_mr
-la_i_norm1_mc
-la_i_norm1_mr
-la_i_norm1_vc
-la_i_norm1_vr
 la_i_print_mc
 la_i_print_mr
 la_i_print_vc
@@ -697,6 +722,10 @@
 la_k_multiply_mr
 la_k_multiply_vc
 la_k_multiply_vr
+la_k_norm1_mc
+la_k_norm1_mr
+la_k_norm1_vc
+la_k_norm1_vr
 la_k_norm_euclid_mc
 la_k_norm_euclid_mr
 la_k_norm_euclid_vc
@@ -707,10 +736,6 @@
 la_k_norm_inf_vr
 la_k_norm_max_mc
 la_k_norm_max_mr
-la_k_norm1_mc
-la_k_norm1_mr
-la_k_norm1_vc
-la_k_norm1_vr
 la_k_qr_eigen_mc
 la_k_qr_eigen_mr
 la_k_qr_factor_mc
@@ -732,6 +757,7 @@
 la_k_upper_solve_mr
 la_k_vc_set
 la_k_vr_set
+lastcycle
 lenarray
 lfo
 limit
@@ -822,6 +848,7 @@
 median
 mediank
 metro
+metro2
 mfb
 midglobal
 midiarp
@@ -900,6 +927,8 @@
 nsamp
 nstance
 nstrnum
+nstrstr
+ntof
 ntom
 ntrpol
 nxtpow2
@@ -1030,7 +1059,6 @@
 ptable
 ptable3
 ptablei
-ptableiw
 ptablew
 ptrack
 puts
@@ -1175,6 +1203,7 @@
 qnan
 r2c
 rand
+randc
 randh
 randi
 random
@@ -1235,6 +1264,7 @@
 schedkwhen
 schedkwhennamed
 schedule
+schedulek
 schedwhen
 scoreline
 scoreline_i
@@ -1337,6 +1367,7 @@
 strget
 strindex
 strindexk
+string2array
 strlen
 strlenk
 strlower
@@ -1344,6 +1375,7 @@
 strrindex
 strrindexk
 strset
+strstrip
 strsub
 strsubk
 strtod
@@ -1380,7 +1412,6 @@
 tableigpw
 tableikt
 tableimix
-tableiw
 tablekt
 tablemix
 tableng
@@ -1589,6 +1620,7 @@
 array
 bformdec
 bformenc
+changed
 copy2ftab
 copy2ttab
 hrtfer
@@ -1598,6 +1630,7 @@
 mintab
 pop
 pop_f
+ptableiw
 push
 push_f
 scalet
@@ -1616,6 +1649,7 @@
 stack
 sumtab
 tabgen
+tableiw
 tabmap
 tabmap_i
 tabslice
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_lasso_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_lasso_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Built-in Lasso types, traits, methods, and members.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_lua_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_lua_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -9,12 +9,10 @@
 
     Do not edit the MODULES dict by hand.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 MODULES = {'basic': ('_G',
            '_VERSION',
            'assert',
@@ -288,7 +286,7 @@
             print('>> %s' % full_function_name)
             m = get_function_module(full_function_name)
             modules.setdefault(m, []).append(full_function_name)
-        modules = dict((k, tuple(v)) for k, v in modules.iteritems())
+        modules = {k: tuple(v) for k, v in modules.items()}
 
         regenerate(__file__, modules)
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_mapping.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_mapping.py	Tue Apr 21 19:47:10 2020 +0200
@@ -13,8 +13,6 @@
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 LEXERS = {
     'ABAPLexer': ('pygments.lexers.business', 'ABAP', ('abap',), ('*.abap', '*.ABAP'), ('text/x-abap',)),
     'APLLexer': ('pygments.lexers.apl', 'APL', ('apl',), ('*.apl',), ()),
@@ -44,14 +42,16 @@
     'ArduinoLexer': ('pygments.lexers.c_like', 'Arduino', ('arduino',), ('*.ino',), ('text/x-arduino',)),
     'AspectJLexer': ('pygments.lexers.jvm', 'AspectJ', ('aspectj',), ('*.aj',), ('text/x-aspectj',)),
     'AsymptoteLexer': ('pygments.lexers.graphics', 'Asymptote', ('asy', 'asymptote'), ('*.asy',), ('text/x-asymptote',)),
+    'AugeasLexer': ('pygments.lexers.configs', 'Augeas', ('augeas',), ('*.aug',), ()),
     'AutoItLexer': ('pygments.lexers.automation', 'AutoIt', ('autoit',), ('*.au3',), ('text/x-autoit',)),
     'AutohotkeyLexer': ('pygments.lexers.automation', 'autohotkey', ('ahk', 'autohotkey'), ('*.ahk', '*.ahkl'), ('text/x-autohotkey',)),
     'AwkLexer': ('pygments.lexers.textedit', 'Awk', ('awk', 'gawk', 'mawk', 'nawk'), ('*.awk',), ('application/x-awk',)),
+    'BBCBasicLexer': ('pygments.lexers.basic', 'BBC Basic', ('bbcbasic',), ('*.bbc',), ()),
     'BBCodeLexer': ('pygments.lexers.markup', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)),
     'BCLexer': ('pygments.lexers.algebra', 'BC', ('bc',), ('*.bc',), ()),
     'BSTLexer': ('pygments.lexers.bibtex', 'BST', ('bst', 'bst-pybtex'), ('*.bst',), ()),
     'BaseMakefileLexer': ('pygments.lexers.make', 'Base Makefile', ('basemake',), (), ()),
-    'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'zsh', 'shell'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '*.exheres-0', '*.exlib', '*.zsh', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript')),
+    'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'zsh', 'shell'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '*.exheres-0', '*.exlib', '*.zsh', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript', 'text/x-shellscript')),
     'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console', 'shell-session'), ('*.sh-session', '*.shell-session'), ('application/x-shell-session', 'application/x-sh-session')),
     'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('bat', 'batch', 'dosbatch', 'winbatch'), ('*.bat', '*.cmd'), ('application/x-dos-batch',)),
     'BefungeLexer': ('pygments.lexers.esoteric', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)),
@@ -59,10 +59,10 @@
     'BlitzBasicLexer': ('pygments.lexers.basic', 'BlitzBasic', ('blitzbasic', 'b3d', 'bplus'), ('*.bb', '*.decls'), ('text/x-bb',)),
     'BlitzMaxLexer': ('pygments.lexers.basic', 'BlitzMax', ('blitzmax', 'bmax'), ('*.bmx',), ('text/x-bmx',)),
     'BnfLexer': ('pygments.lexers.grammar_notation', 'BNF', ('bnf',), ('*.bnf',), ('text/x-bnf',)),
+    'BoaLexer': ('pygments.lexers.boa', 'Boa', ('boa',), ('*.boa',), ()),
     'BooLexer': ('pygments.lexers.dotnet', 'Boo', ('boo',), ('*.boo',), ('text/x-boo',)),
     'BoogieLexer': ('pygments.lexers.verification', 'Boogie', ('boogie',), ('*.bpl',), ()),
     'BrainfuckLexer': ('pygments.lexers.esoteric', 'Brainfuck', ('brainfuck', 'bf'), ('*.bf', '*.b'), ('application/x-brainfuck',)),
-    'BroLexer': ('pygments.lexers.dsls', 'Bro', ('bro',), ('*.bro',), ()),
     'BugsLexer': ('pygments.lexers.modeling', 'BUGS', ('bugs', 'winbugs', 'openbugs'), ('*.bug',), ()),
     'CAmkESLexer': ('pygments.lexers.esoteric', 'CAmkES', ('camkes', 'idl4'), ('*.camkes', '*.idl4'), ()),
     'CLexer': ('pygments.lexers.c_cpp', 'C', ('c',), ('*.c', '*.h', '*.idc'), ('text/x-chdr', 'text/x-csrc')),
@@ -80,6 +80,7 @@
     'Cfengine3Lexer': ('pygments.lexers.configs', 'CFEngine3', ('cfengine3', 'cf3'), ('*.cf',), ()),
     'ChaiscriptLexer': ('pygments.lexers.scripting', 'ChaiScript', ('chai', 'chaiscript'), ('*.chai',), ('text/x-chaiscript', 'application/x-chaiscript')),
     'ChapelLexer': ('pygments.lexers.chapel', 'Chapel', ('chapel', 'chpl'), ('*.chpl',), ()),
+    'CharmciLexer': ('pygments.lexers.c_like', 'Charmci', ('charmci',), ('*.ci',), ()),
     'CheetahHtmlLexer': ('pygments.lexers.templates', 'HTML+Cheetah', ('html+cheetah', 'html+spitfire', 'htmlcheetah'), (), ('text/html+cheetah', 'text/html+spitfire')),
     'CheetahJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Cheetah', ('js+cheetah', 'javascript+cheetah', 'js+spitfire', 'javascript+spitfire'), (), ('application/x-javascript+cheetah', 'text/x-javascript+cheetah', 'text/javascript+cheetah', 'application/x-javascript+spitfire', 'text/x-javascript+spitfire', 'text/javascript+spitfire')),
     'CheetahLexer': ('pygments.lexers.templates', 'Cheetah', ('cheetah', 'spitfire'), ('*.tmpl', '*.spt'), ('application/x-cheetah', 'application/x-spitfire')),
@@ -105,7 +106,7 @@
     'CryptolLexer': ('pygments.lexers.haskell', 'Cryptol', ('cryptol', 'cry'), ('*.cry',), ('text/x-cryptol',)),
     'CrystalLexer': ('pygments.lexers.crystal', 'Crystal', ('cr', 'crystal'), ('*.cr',), ('text/x-crystal',)),
     'CsoundDocumentLexer': ('pygments.lexers.csound', 'Csound Document', ('csound-document', 'csound-csd'), ('*.csd',), ()),
-    'CsoundOrchestraLexer': ('pygments.lexers.csound', 'Csound Orchestra', ('csound', 'csound-orc'), ('*.orc',), ()),
+    'CsoundOrchestraLexer': ('pygments.lexers.csound', 'Csound Orchestra', ('csound', 'csound-orc'), ('*.orc', '*.udo'), ()),
     'CsoundScoreLexer': ('pygments.lexers.csound', 'Csound Score', ('csound-score', 'csound-sco'), ('*.sco',), ()),
     'CssDjangoLexer': ('pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), (), ('text/css+django', 'text/css+jinja')),
     'CssErbLexer': ('pygments.lexers.templates', 'CSS+Ruby', ('css+erb', 'css+ruby'), (), ('text/css+ruby',)),
@@ -120,6 +121,7 @@
     'DObjdumpLexer': ('pygments.lexers.asm', 'd-objdump', ('d-objdump',), ('*.d-objdump',), ('text/x-d-objdump',)),
     'DarcsPatchLexer': ('pygments.lexers.diff', 'Darcs Patch', ('dpatch',), ('*.dpatch', '*.darcspatch'), ()),
     'DartLexer': ('pygments.lexers.javascript', 'Dart', ('dart',), ('*.dart',), ('text/x-dart',)),
+    'Dasm16Lexer': ('pygments.lexers.asm', 'DASM16', ('dasm16',), ('*.dasm16', '*.dasm'), ('text/x-dasm16',)),
     'DebianControlLexer': ('pygments.lexers.installers', 'Debian Control file', ('control', 'debcontrol'), ('control',), ()),
     'DelphiLexer': ('pygments.lexers.pascal', 'Delphi', ('delphi', 'pas', 'pascal', 'objectpascal'), ('*.pas', '*.dpr'), ('text/x-pascal',)),
     'DgLexer': ('pygments.lexers.python', 'dg', ('dg',), ('*.dg',), ('text/x-dg',)),
@@ -138,9 +140,10 @@
     'EbnfLexer': ('pygments.lexers.parsers', 'EBNF', ('ebnf',), ('*.ebnf',), ('text/x-ebnf',)),
     'EiffelLexer': ('pygments.lexers.eiffel', 'Eiffel', ('eiffel',), ('*.e',), ('text/x-eiffel',)),
     'ElixirConsoleLexer': ('pygments.lexers.erlang', 'Elixir iex session', ('iex',), (), ('text/x-elixir-shellsession',)),
-    'ElixirLexer': ('pygments.lexers.erlang', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.exs'), ('text/x-elixir',)),
+    'ElixirLexer': ('pygments.lexers.erlang', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.eex', '*.exs'), ('text/x-elixir',)),
     'ElmLexer': ('pygments.lexers.elm', 'Elm', ('elm',), ('*.elm',), ('text/x-elm',)),
     'EmacsLispLexer': ('pygments.lexers.lisp', 'EmacsLisp', ('emacs', 'elisp', 'emacs-lisp'), ('*.el',), ('text/x-elisp', 'application/x-elisp')),
+    'EmailLexer': ('pygments.lexers.email', 'E-mail', ('email', 'eml'), ('*.eml',), ('message/rfc822',)),
     'ErbLexer': ('pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)),
     'ErlangLexer': ('pygments.lexers.erlang', 'Erlang', ('erlang',), ('*.erl', '*.hrl', '*.es', '*.escript'), ('text/x-erlang',)),
     'ErlangShellLexer': ('pygments.lexers.erlang', 'Erlang erl session', ('erl',), ('*.erl-sh',), ('text/x-erl-shellsession',)),
@@ -148,7 +151,7 @@
     'EvoqueLexer': ('pygments.lexers.templates', 'Evoque', ('evoque',), ('*.evoque',), ('application/x-evoque',)),
     'EvoqueXmlLexer': ('pygments.lexers.templates', 'XML+Evoque', ('xml+evoque',), ('*.xml',), ('application/xml+evoque',)),
     'EzhilLexer': ('pygments.lexers.ezhil', 'Ezhil', ('ezhil',), ('*.n',), ('text/x-ezhil',)),
-    'FSharpLexer': ('pygments.lexers.dotnet', 'FSharp', ('fsharp',), ('*.fs', '*.fsi'), ('text/x-fsharp',)),
+    'FSharpLexer': ('pygments.lexers.dotnet', 'F#', ('fsharp', 'f#'), ('*.fs', '*.fsi'), ('text/x-fsharp',)),
     'FactorLexer': ('pygments.lexers.factor', 'Factor', ('factor',), ('*.factor',), ('text/x-factor',)),
     'FancyLexer': ('pygments.lexers.ruby', 'Fancy', ('fancy', 'fy'), ('*.fy', '*.fancypack'), ('text/x-fancysrc',)),
     'FantomLexer': ('pygments.lexers.fantom', 'Fantom', ('fan',), ('*.fan',), ('application/x-fantom',)),
@@ -156,10 +159,12 @@
     'FennelLexer': ('pygments.lexers.lisp', 'Fennel', ('fennel', 'fnl'), ('*.fnl',), ()),
     'FishShellLexer': ('pygments.lexers.shell', 'Fish', ('fish', 'fishshell'), ('*.fish', '*.load'), ('application/x-fish',)),
     'FlatlineLexer': ('pygments.lexers.dsls', 'Flatline', ('flatline',), (), ('text/x-flatline',)),
+    'FloScriptLexer': ('pygments.lexers.floscript', 'FloScript', ('floscript', 'flo'), ('*.flo',), ()),
     'ForthLexer': ('pygments.lexers.forth', 'Forth', ('forth',), ('*.frt', '*.fs'), ('application/x-forth',)),
     'FortranFixedLexer': ('pygments.lexers.fortran', 'FortranFixed', ('fortranfixed',), ('*.f', '*.F'), ()),
     'FortranLexer': ('pygments.lexers.fortran', 'Fortran', ('fortran',), ('*.f03', '*.f90', '*.F03', '*.F90'), ('text/x-fortran',)),
     'FoxProLexer': ('pygments.lexers.foxpro', 'FoxPro', ('foxpro', 'vfp', 'clipper', 'xbase'), ('*.PRG', '*.prg'), ()),
+    'FreeFemLexer': ('pygments.lexers.freefem', 'Freefem', ('freefem',), ('*.edp',), ('text/x-freefem',)),
     'GAPLexer': ('pygments.lexers.algebra', 'GAP', ('gap',), ('*.g', '*.gd', '*.gi', '*.gap'), ()),
     'GLShaderLexer': ('pygments.lexers.graphics', 'GLSL', ('glsl',), ('*.vert', '*.frag', '*.geo'), ('text/x-glslsrc',)),
     'GasLexer': ('pygments.lexers.asm', 'GAS', ('gas', 'asm'), ('*.s', '*.S'), ('text/x-gas',)),
@@ -183,6 +188,7 @@
     'HaxeLexer': ('pygments.lexers.haxe', 'Haxe', ('hx', 'haxe', 'hxsl'), ('*.hx', '*.hxsl'), ('text/haxe', 'text/x-haxe', 'text/x-hx')),
     'HexdumpLexer': ('pygments.lexers.hexdump', 'Hexdump', ('hexdump',), (), ()),
     'HsailLexer': ('pygments.lexers.asm', 'HSAIL', ('hsail', 'hsa'), ('*.hsail',), ('text/x-hsail',)),
+    'HspecLexer': ('pygments.lexers.haskell', 'Hspec', ('hspec',), (), ()),
     'HtmlDjangoLexer': ('pygments.lexers.templates', 'HTML+Django/Jinja', ('html+django', 'html+jinja', 'htmldjango'), (), ('text/html+django', 'text/html+jinja')),
     'HtmlGenshiLexer': ('pygments.lexers.templates', 'HTML+Genshi', ('html+genshi', 'html+kid'), (), ('text/html+genshi',)),
     'HtmlLexer': ('pygments.lexers.html', 'HTML', ('html',), ('*.html', '*.htm', '*.xhtml', '*.xslt'), ('text/html', 'application/xhtml+xml')),
@@ -193,6 +199,7 @@
     'HyLexer': ('pygments.lexers.lisp', 'Hy', ('hylang',), ('*.hy',), ('text/x-hy', 'application/x-hy')),
     'HybrisLexer': ('pygments.lexers.scripting', 'Hybris', ('hybris', 'hy'), ('*.hy', '*.hyb'), ('text/x-hybris', 'application/x-hybris')),
     'IDLLexer': ('pygments.lexers.idl', 'IDL', ('idl',), ('*.pro',), ('text/idl',)),
+    'IconLexer': ('pygments.lexers.unicon', 'Icon', ('icon',), ('*.icon', '*.ICON'), ()),
     'IdrisLexer': ('pygments.lexers.haskell', 'Idris', ('idris', 'idr'), ('*.idr',), ('text/x-idris',)),
     'IgorLexer': ('pygments.lexers.igor', 'Igor', ('igor', 'igorpro'), ('*.ipf',), ('text/ipf',)),
     'Inform6Lexer': ('pygments.lexers.int_fiction', 'Inform 6', ('inform6', 'i6'), ('*.inf',), ()),
@@ -210,20 +217,21 @@
     'JavascriptDjangoLexer': ('pygments.lexers.templates', 'JavaScript+Django/Jinja', ('js+django', 'javascript+django', 'js+jinja', 'javascript+jinja'), (), ('application/x-javascript+django', 'application/x-javascript+jinja', 'text/x-javascript+django', 'text/x-javascript+jinja', 'text/javascript+django', 'text/javascript+jinja')),
     'JavascriptErbLexer': ('pygments.lexers.templates', 'JavaScript+Ruby', ('js+erb', 'javascript+erb', 'js+ruby', 'javascript+ruby'), (), ('application/x-javascript+ruby', 'text/x-javascript+ruby', 'text/javascript+ruby')),
     'JavascriptGenshiLexer': ('pygments.lexers.templates', 'JavaScript+Genshi Text', ('js+genshitext', 'js+genshi', 'javascript+genshitext', 'javascript+genshi'), (), ('application/x-javascript+genshi', 'text/x-javascript+genshi', 'text/javascript+genshi')),
-    'JavascriptLexer': ('pygments.lexers.javascript', 'JavaScript', ('js', 'javascript'), ('*.js', '*.jsm'), ('application/javascript', 'application/x-javascript', 'text/x-javascript', 'text/javascript')),
+    'JavascriptLexer': ('pygments.lexers.javascript', 'JavaScript', ('js', 'javascript'), ('*.js', '*.jsm', '*.mjs'), ('application/javascript', 'application/x-javascript', 'text/x-javascript', 'text/javascript')),
     'JavascriptPhpLexer': ('pygments.lexers.templates', 'JavaScript+PHP', ('js+php', 'javascript+php'), (), ('application/x-javascript+php', 'text/x-javascript+php', 'text/javascript+php')),
     'JavascriptSmartyLexer': ('pygments.lexers.templates', 'JavaScript+Smarty', ('js+smarty', 'javascript+smarty'), (), ('application/x-javascript+smarty', 'text/x-javascript+smarty', 'text/javascript+smarty')),
     'JclLexer': ('pygments.lexers.scripting', 'JCL', ('jcl',), ('*.jcl',), ('text/x-jcl',)),
     'JsgfLexer': ('pygments.lexers.grammar_notation', 'JSGF', ('jsgf',), ('*.jsgf',), ('application/jsgf', 'application/x-jsgf', 'text/jsgf')),
     'JsonBareObjectLexer': ('pygments.lexers.data', 'JSONBareObject', ('json-object',), (), ('application/json-object',)),
     'JsonLdLexer': ('pygments.lexers.data', 'JSON-LD', ('jsonld', 'json-ld'), ('*.jsonld',), ('application/ld+json',)),
-    'JsonLexer': ('pygments.lexers.data', 'JSON', ('json',), ('*.json',), ('application/json',)),
+    'JsonLexer': ('pygments.lexers.data', 'JSON', ('json',), ('*.json', 'Pipfile.lock'), ('application/json',)),
     'JspLexer': ('pygments.lexers.templates', 'Java Server Page', ('jsp',), ('*.jsp',), ('application/x-jsp',)),
     'JuliaConsoleLexer': ('pygments.lexers.julia', 'Julia console', ('jlcon',), (), ()),
     'JuliaLexer': ('pygments.lexers.julia', 'Julia', ('julia', 'jl'), ('*.jl',), ('text/x-julia', 'application/x-julia')),
     'JuttleLexer': ('pygments.lexers.javascript', 'Juttle', ('juttle', 'juttle'), ('*.juttle',), ('application/juttle', 'application/x-juttle', 'text/x-juttle', 'text/juttle')),
     'KalLexer': ('pygments.lexers.javascript', 'Kal', ('kal',), ('*.kal',), ('text/kal', 'application/kal')),
     'KconfigLexer': ('pygments.lexers.configs', 'Kconfig', ('kconfig', 'menuconfig', 'linux-config', 'kernel-config'), ('Kconfig', '*Config.in*', 'external.in*', 'standard-modules.in'), ('text/x-kconfig',)),
+    'KernelLogLexer': ('pygments.lexers.textfmts', 'Kernel log', ('kmsg', 'dmesg'), ('*.kmsg', '*.dmesg'), ()),
     'KokaLexer': ('pygments.lexers.haskell', 'Koka', ('koka',), ('*.kk', '*.kki'), ('text/x-koka',)),
     'KotlinLexer': ('pygments.lexers.jvm', 'Kotlin', ('kotlin',), ('*.kt',), ('text/x-kotlin',)),
     'LSLLexer': ('pygments.lexers.scripting', 'LSL', ('lsl',), ('*.lsl',), ('text/x-lsl',)),
@@ -243,9 +251,12 @@
     'LiterateIdrisLexer': ('pygments.lexers.haskell', 'Literate Idris', ('lidr', 'literate-idris', 'lidris'), ('*.lidr',), ('text/x-literate-idris',)),
     'LiveScriptLexer': ('pygments.lexers.javascript', 'LiveScript', ('live-script', 'livescript'), ('*.ls',), ('text/livescript',)),
     'LlvmLexer': ('pygments.lexers.asm', 'LLVM', ('llvm',), ('*.ll',), ('text/x-llvm',)),
+    'LlvmMirBodyLexer': ('pygments.lexers.asm', 'LLVM-MIR Body', ('llvm-mir-body',), (), ()),
+    'LlvmMirLexer': ('pygments.lexers.asm', 'LLVM-MIR', ('llvm-mir',), ('*.mir',), ()),
     'LogosLexer': ('pygments.lexers.objective', 'Logos', ('logos',), ('*.x', '*.xi', '*.xm', '*.xmi'), ('text/x-logos',)),
     'LogtalkLexer': ('pygments.lexers.prolog', 'Logtalk', ('logtalk',), ('*.lgt', '*.logtalk'), ('text/x-logtalk',)),
     'LuaLexer': ('pygments.lexers.scripting', 'Lua', ('lua',), ('*.lua', '*.wlua'), ('text/x-lua', 'application/x-lua')),
+    'MIMELexer': ('pygments.lexers.mime', 'MIME', ('mime',), (), ('multipart/mixed', 'multipart/related', 'multipart/alternative')),
     'MOOCodeLexer': ('pygments.lexers.scripting', 'MOOCode', ('moocode', 'moo'), ('*.moo',), ('text/x-moocode',)),
     'MSDOSSessionLexer': ('pygments.lexers.shell', 'MSDOS Session', ('doscon',), (), ()),
     'MakefileLexer': ('pygments.lexers.make', 'Makefile', ('make', 'makefile', 'mf', 'bsdmake'), ('*.mak', '*.mk', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile'), ('text/x-makefile',)),
@@ -262,12 +273,14 @@
     'MatlabLexer': ('pygments.lexers.matlab', 'Matlab', ('matlab',), ('*.m',), ('text/matlab',)),
     'MatlabSessionLexer': ('pygments.lexers.matlab', 'Matlab session', ('matlabsession',), (), ()),
     'MiniDLexer': ('pygments.lexers.d', 'MiniD', ('minid',), (), ('text/x-minidsrc',)),
+    'MiniScriptLexer': ('pygments.lexers.scripting', 'MiniScript', ('ms', 'miniscript'), ('*.ms',), ('text/x-minicript', 'application/x-miniscript')),
     'ModelicaLexer': ('pygments.lexers.modeling', 'Modelica', ('modelica',), ('*.mo',), ('text/x-modelica',)),
     'Modula2Lexer': ('pygments.lexers.modula2', 'Modula-2', ('modula2', 'm2'), ('*.def', '*.mod'), ('text/x-modula2',)),
     'MoinWikiLexer': ('pygments.lexers.markup', 'MoinMoin/Trac Wiki markup', ('trac-wiki', 'moin'), (), ('text/x-trac-wiki',)),
     'MonkeyLexer': ('pygments.lexers.basic', 'Monkey', ('monkey',), ('*.monkey',), ('text/x-monkey',)),
     'MonteLexer': ('pygments.lexers.monte', 'Monte', ('monte',), ('*.mt',), ()),
     'MoonScriptLexer': ('pygments.lexers.scripting', 'MoonScript', ('moon', 'moonscript'), ('*.moon',), ('text/x-moonscript', 'application/x-moonscript')),
+    'MoselLexer': ('pygments.lexers.mosel', 'Mosel', ('mosel',), ('*.mos',), ()),
     'MozPreprocCssLexer': ('pygments.lexers.markup', 'CSS+mozpreproc', ('css+mozpreproc',), ('*.css.in',), ()),
     'MozPreprocHashLexer': ('pygments.lexers.markup', 'mozhashpreproc', ('mozhashpreproc',), (), ()),
     'MozPreprocJavascriptLexer': ('pygments.lexers.markup', 'Javascript+mozpreproc', ('javascript+mozpreproc',), ('*.js.in',), ()),
@@ -295,6 +308,7 @@
     'NimrodLexer': ('pygments.lexers.nimrod', 'Nimrod', ('nim', 'nimrod'), ('*.nim', '*.nimrod'), ('text/x-nim',)),
     'NitLexer': ('pygments.lexers.nit', 'Nit', ('nit',), ('*.nit',), ()),
     'NixLexer': ('pygments.lexers.nix', 'Nix', ('nixos', 'nix'), ('*.nix',), ('text/x-nix',)),
+    'NotmuchLexer': ('pygments.lexers.textfmts', 'Notmuch', ('notmuch',), (), ()),
     'NuSMVLexer': ('pygments.lexers.smv', 'NuSMV', ('nusmv',), ('*.smv',), ()),
     'NumPyLexer': ('pygments.lexers.python', 'NumPy', ('numpy',), (), ()),
     'ObjdumpLexer': ('pygments.lexers.asm', 'objdump', ('objdump',), ('*.objdump',), ('text/x-objdump',)),
@@ -311,13 +325,15 @@
     'PanLexer': ('pygments.lexers.dsls', 'Pan', ('pan',), ('*.pan',), ()),
     'ParaSailLexer': ('pygments.lexers.parasail', 'ParaSail', ('parasail',), ('*.psi', '*.psl'), ('text/x-parasail',)),
     'PawnLexer': ('pygments.lexers.pawn', 'Pawn', ('pawn',), ('*.p', '*.pwn', '*.inc'), ('text/x-pawn',)),
-    'Perl6Lexer': ('pygments.lexers.perl', 'Perl6', ('perl6', 'pl6'), ('*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6', '*.6pm', '*.p6m', '*.pm6', '*.t'), ('text/x-perl6', 'application/x-perl6')),
+    'PegLexer': ('pygments.lexers.grammar_notation', 'PEG', ('peg',), ('*.peg',), ('text/x-peg',)),
+    'Perl6Lexer': ('pygments.lexers.perl', 'Perl6', ('perl6', 'pl6', 'raku'), ('*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6', '*.6pm', '*.p6m', '*.pm6', '*.t', '*.raku', '*.rakumod', '*.rakutest', '*.rakudoc'), ('text/x-perl6', 'application/x-perl6')),
     'PerlLexer': ('pygments.lexers.perl', 'Perl', ('perl', 'pl'), ('*.pl', '*.pm', '*.t'), ('text/x-perl', 'application/x-perl')),
     'PhpLexer': ('pygments.lexers.php', 'PHP', ('php', 'php3', 'php4', 'php5'), ('*.php', '*.php[345]', '*.inc'), ('text/x-php',)),
     'PigLexer': ('pygments.lexers.jvm', 'Pig', ('pig',), ('*.pig',), ('text/x-pig',)),
     'PikeLexer': ('pygments.lexers.c_like', 'Pike', ('pike',), ('*.pike', '*.pmod'), ('text/x-pike',)),
     'PkgConfigLexer': ('pygments.lexers.configs', 'PkgConfig', ('pkgconfig',), ('*.pc',), ()),
     'PlPgsqlLexer': ('pygments.lexers.sql', 'PL/pgSQL', ('plpgsql',), (), ('text/x-plpgsql',)),
+    'PonyLexer': ('pygments.lexers.pony', 'Pony', ('pony',), ('*.pony',), ()),
     'PostScriptLexer': ('pygments.lexers.graphics', 'PostScript', ('postscript', 'postscr'), ('*.ps', '*.eps'), ('application/postscript',)),
     'PostgresConsoleLexer': ('pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)),
     'PostgresLexer': ('pygments.lexers.sql', 'PostgreSQL SQL dialect', ('postgresql', 'postgres'), (), ('text/x-postgresql',)),
@@ -331,11 +347,11 @@
     'PugLexer': ('pygments.lexers.html', 'Pug', ('pug', 'jade'), ('*.pug', '*.jade'), ('text/x-pug', 'text/x-jade')),
     'PuppetLexer': ('pygments.lexers.dsls', 'Puppet', ('puppet',), ('*.pp',), ()),
     'PyPyLogLexer': ('pygments.lexers.console', 'PyPy Log', ('pypylog', 'pypy'), ('*.pypylog',), ('application/x-pypylog',)),
-    'Python3Lexer': ('pygments.lexers.python', 'Python 3', ('python3', 'py3'), (), ('text/x-python3', 'application/x-python3')),
-    'Python3TracebackLexer': ('pygments.lexers.python', 'Python 3.0 Traceback', ('py3tb',), ('*.py3tb',), ('text/x-python3-traceback',)),
+    'Python2Lexer': ('pygments.lexers.python', 'Python 2.x', ('python2', 'py2'), (), ('text/x-python2', 'application/x-python2')),
+    'Python2TracebackLexer': ('pygments.lexers.python', 'Python 2.x Traceback', ('py2tb',), ('*.py2tb',), ('text/x-python2-traceback',)),
     'PythonConsoleLexer': ('pygments.lexers.python', 'Python console session', ('pycon',), (), ('text/x-python-doctest',)),
-    'PythonLexer': ('pygments.lexers.python', 'Python', ('python', 'py', 'sage'), ('*.py', '*.pyw', '*.sc', 'SConstruct', 'SConscript', '*.tac', '*.sage'), ('text/x-python', 'application/x-python')),
-    'PythonTracebackLexer': ('pygments.lexers.python', 'Python Traceback', ('pytb',), ('*.pytb',), ('text/x-python-traceback',)),
+    'PythonLexer': ('pygments.lexers.python', 'Python', ('python', 'py', 'sage', 'python3', 'py3'), ('*.py', '*.pyw', '*.jy', '*.sage', '*.sc', 'SConstruct', 'SConscript', '*.bzl', 'BUCK', 'BUILD', 'BUILD.bazel', 'WORKSPACE', '*.tac'), ('text/x-python', 'application/x-python', 'text/x-python3', 'application/x-python3')),
+    'PythonTracebackLexer': ('pygments.lexers.python', 'Python Traceback', ('pytb', 'py3tb'), ('*.pytb', '*.py3tb'), ('text/x-python-traceback', 'text/x-python3-traceback')),
     'QBasicLexer': ('pygments.lexers.basic', 'QBasic', ('qbasic', 'basic'), ('*.BAS', '*.bas'), ('text/basic',)),
     'QVToLexer': ('pygments.lexers.qvt', 'QVTO', ('qvto', 'qvt'), ('*.qvto',), ()),
     'QmlLexer': ('pygments.lexers.webmisc', 'QML', ('qml', 'qbs'), ('*.qml', '*.qbs'), ('application/x-qml', 'application/x-qt.qbs+qml')),
@@ -353,40 +369,50 @@
     'RagelRubyLexer': ('pygments.lexers.parsers', 'Ragel in Ruby Host', ('ragel-ruby', 'ragel-rb'), ('*.rl',), ()),
     'RawTokenLexer': ('pygments.lexers.special', 'Raw token data', ('raw',), (), ('application/x-pygments-tokens',)),
     'RdLexer': ('pygments.lexers.r', 'Rd', ('rd',), ('*.Rd',), ('text/x-r-doc',)),
+    'ReasonLexer': ('pygments.lexers.ml', 'ReasonML', ('reason', 'reasonml'), ('*.re', '*.rei'), ('text/x-reasonml',)),
     'RebolLexer': ('pygments.lexers.rebol', 'REBOL', ('rebol',), ('*.r', '*.r3', '*.reb'), ('text/x-rebol',)),
     'RedLexer': ('pygments.lexers.rebol', 'Red', ('red', 'red/system'), ('*.red', '*.reds'), ('text/x-red', 'text/x-red-system')),
     'RedcodeLexer': ('pygments.lexers.esoteric', 'Redcode', ('redcode',), ('*.cw',), ()),
     'RegeditLexer': ('pygments.lexers.configs', 'reg', ('registry',), ('*.reg',), ('text/x-windows-registry',)),
-    'ResourceLexer': ('pygments.lexers.resource', 'ResourceBundle', ('resource', 'resourcebundle'), ('*.txt',), ()),
+    'ResourceLexer': ('pygments.lexers.resource', 'ResourceBundle', ('resource', 'resourcebundle'), (), ()),
     'RexxLexer': ('pygments.lexers.scripting', 'Rexx', ('rexx', 'arexx'), ('*.rexx', '*.rex', '*.rx', '*.arexx'), ('text/x-rexx',)),
     'RhtmlLexer': ('pygments.lexers.templates', 'RHTML', ('rhtml', 'html+erb', 'html+ruby'), ('*.rhtml',), ('text/html+ruby',)),
+    'RideLexer': ('pygments.lexers.ride', 'Ride', ('ride',), ('*.ride',), ('text/x-ride',)),
     'RoboconfGraphLexer': ('pygments.lexers.roboconf', 'Roboconf Graph', ('roboconf-graph',), ('*.graph',), ()),
     'RoboconfInstancesLexer': ('pygments.lexers.roboconf', 'Roboconf Instances', ('roboconf-instances',), ('*.instances',), ()),
-    'RobotFrameworkLexer': ('pygments.lexers.robotframework', 'RobotFramework', ('robotframework',), ('*.txt', '*.robot'), ('text/x-robotframework',)),
+    'RobotFrameworkLexer': ('pygments.lexers.robotframework', 'RobotFramework', ('robotframework',), ('*.robot',), ('text/x-robotframework',)),
     'RqlLexer': ('pygments.lexers.sql', 'RQL', ('rql',), ('*.rql',), ('text/x-rql',)),
     'RslLexer': ('pygments.lexers.dsls', 'RSL', ('rsl',), ('*.rsl',), ('text/rsl',)),
     'RstLexer': ('pygments.lexers.markup', 'reStructuredText', ('rst', 'rest', 'restructuredtext'), ('*.rst', '*.rest'), ('text/x-rst', 'text/prs.fallenstein.rst')),
     'RtsLexer': ('pygments.lexers.trafficscript', 'TrafficScript', ('rts', 'trafficscript'), ('*.rts',), ()),
     'RubyConsoleLexer': ('pygments.lexers.ruby', 'Ruby irb session', ('rbcon', 'irb'), (), ('text/x-ruby-shellsession',)),
     'RubyLexer': ('pygments.lexers.ruby', 'Ruby', ('rb', 'ruby', 'duby'), ('*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec', '*.rbx', '*.duby', 'Gemfile'), ('text/x-ruby', 'application/x-ruby')),
-    'RustLexer': ('pygments.lexers.rust', 'Rust', ('rust', 'rs'), ('*.rs', '*.rs.in'), ('text/rust',)),
+    'RustLexer': ('pygments.lexers.rust', 'Rust', ('rust', 'rs'), ('*.rs', '*.rs.in'), ('text/rust', 'text/x-rust')),
     'SASLexer': ('pygments.lexers.sas', 'SAS', ('sas',), ('*.SAS', '*.sas'), ('text/x-sas', 'text/sas', 'application/x-sas')),
     'SLexer': ('pygments.lexers.r', 'S', ('splus', 's', 'r'), ('*.S', '*.R', '.Rhistory', '.Rprofile', '.Renviron'), ('text/S-plus', 'text/S', 'text/x-r-source', 'text/x-r', 'text/x-R', 'text/x-r-history', 'text/x-r-profile')),
     'SMLLexer': ('pygments.lexers.ml', 'Standard ML', ('sml',), ('*.sml', '*.sig', '*.fun'), ('text/x-standardml', 'application/x-standardml')),
+    'SarlLexer': ('pygments.lexers.jvm', 'SARL', ('sarl',), ('*.sarl',), ('text/x-sarl',)),
     'SassLexer': ('pygments.lexers.css', 'Sass', ('sass',), ('*.sass',), ('text/x-sass',)),
     'ScalaLexer': ('pygments.lexers.jvm', 'Scala', ('scala',), ('*.scala',), ('text/x-scala',)),
     'ScamlLexer': ('pygments.lexers.html', 'Scaml', ('scaml',), ('*.scaml',), ('text/x-scaml',)),
+    'ScdocLexer': ('pygments.lexers.scdoc', 'scdoc', ('scdoc', 'scd'), ('*.scd', '*.scdoc'), ()),
     'SchemeLexer': ('pygments.lexers.lisp', 'Scheme', ('scheme', 'scm'), ('*.scm', '*.ss'), ('text/x-scheme', 'application/x-scheme')),
     'ScilabLexer': ('pygments.lexers.matlab', 'Scilab', ('scilab',), ('*.sci', '*.sce', '*.tst'), ('text/scilab',)),
     'ScssLexer': ('pygments.lexers.css', 'SCSS', ('scss',), ('*.scss',), ('text/x-scss',)),
+    'ShExCLexer': ('pygments.lexers.rdf', 'ShExC', ('shexc', 'shex'), ('*.shex',), ('text/shex',)),
     'ShenLexer': ('pygments.lexers.lisp', 'Shen', ('shen',), ('*.shen',), ('text/x-shen', 'application/x-shen')),
+    'SieveLexer': ('pygments.lexers.sieve', 'Sieve', ('sieve',), ('*.siv', '*.sieve'), ()),
     'SilverLexer': ('pygments.lexers.verification', 'Silver', ('silver',), ('*.sil', '*.vpr'), ()),
+    'SlashLexer': ('pygments.lexers.slash', 'Slash', ('slash',), ('*.sl',), ()),
     'SlimLexer': ('pygments.lexers.webmisc', 'Slim', ('slim',), ('*.slim',), ('text/x-slim',)),
+    'SlurmBashLexer': ('pygments.lexers.shell', 'Slurm', ('slurm', 'sbatch'), ('*.sl',), ()),
     'SmaliLexer': ('pygments.lexers.dalvik', 'Smali', ('smali',), ('*.smali',), ('text/smali',)),
     'SmalltalkLexer': ('pygments.lexers.smalltalk', 'Smalltalk', ('smalltalk', 'squeak', 'st'), ('*.st',), ('text/x-smalltalk',)),
+    'SmartGameFormatLexer': ('pygments.lexers.sgf', 'SmartGameFormat', ('sgf',), ('*.sgf',), ()),
     'SmartyLexer': ('pygments.lexers.templates', 'Smarty', ('smarty',), ('*.tpl',), ('application/x-smarty',)),
     'SnobolLexer': ('pygments.lexers.snobol', 'Snobol', ('snobol',), ('*.snobol',), ('text/x-snobol',)),
     'SnowballLexer': ('pygments.lexers.dsls', 'Snowball', ('snowball',), ('*.sbl',), ()),
+    'SolidityLexer': ('pygments.lexers.solidity', 'Solidity', ('solidity',), ('*.sol',), ()),
     'SourcePawnLexer': ('pygments.lexers.pawn', 'SourcePawn', ('sp',), ('*.sp',), ('text/x-sourcepawn',)),
     'SourcesListLexer': ('pygments.lexers.installers', 'Debian Sourcelist', ('sourceslist', 'sources.list', 'debsources'), ('sources.list',), ()),
     'SparqlLexer': ('pygments.lexers.rdf', 'SPARQL', ('sparql',), ('*.rq', '*.sparql'), ('application/sparql-query',)),
@@ -401,12 +427,14 @@
     'SwigLexer': ('pygments.lexers.c_like', 'SWIG', ('swig',), ('*.swg', '*.i'), ('text/swig',)),
     'SystemVerilogLexer': ('pygments.lexers.hdl', 'systemverilog', ('systemverilog', 'sv'), ('*.sv', '*.svh'), ('text/x-systemverilog',)),
     'TAPLexer': ('pygments.lexers.testing', 'TAP', ('tap',), ('*.tap',), ()),
+    'TOMLLexer': ('pygments.lexers.configs', 'TOML', ('toml',), ('*.toml', 'Pipfile', 'poetry.lock'), ()),
     'Tads3Lexer': ('pygments.lexers.int_fiction', 'TADS 3', ('tads3',), ('*.t',), ()),
     'TasmLexer': ('pygments.lexers.asm', 'TASM', ('tasm',), ('*.asm', '*.ASM', '*.tasm'), ('text/x-tasm',)),
     'TclLexer': ('pygments.lexers.tcl', 'Tcl', ('tcl',), ('*.tcl', '*.rvt'), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')),
     'TcshLexer': ('pygments.lexers.shell', 'Tcsh', ('tcsh', 'csh'), ('*.tcsh', '*.csh'), ('application/x-csh',)),
     'TcshSessionLexer': ('pygments.lexers.shell', 'Tcsh Session', ('tcshcon',), (), ()),
     'TeaTemplateLexer': ('pygments.lexers.templates', 'Tea', ('tea',), ('*.tea',), ('text/x-tea',)),
+    'TeraTermLexer': ('pygments.lexers.teraterm', 'Tera Term macro', ('ttl', 'teraterm', 'teratermmacro'), ('*.ttl',), ('text/x-teratermmacro',)),
     'TermcapLexer': ('pygments.lexers.configs', 'Termcap', ('termcap',), ('termcap', 'termcap.src'), ()),
     'TerminfoLexer': ('pygments.lexers.configs', 'Terminfo', ('terminfo',), ('terminfo', 'terminfo.src'), ()),
     'TerraformLexer': ('pygments.lexers.configs', 'Terraform', ('terraform', 'tf'), ('*.tf',), ('application/x-tf', 'application/x-terraform')),
@@ -422,8 +450,12 @@
     'TypeScriptLexer': ('pygments.lexers.javascript', 'TypeScript', ('ts', 'typescript'), ('*.ts', '*.tsx'), ('text/x-typescript',)),
     'TypoScriptCssDataLexer': ('pygments.lexers.typoscript', 'TypoScriptCssData', ('typoscriptcssdata',), (), ()),
     'TypoScriptHtmlDataLexer': ('pygments.lexers.typoscript', 'TypoScriptHtmlData', ('typoscripthtmldata',), (), ()),
-    'TypoScriptLexer': ('pygments.lexers.typoscript', 'TypoScript', ('typoscript',), ('*.ts', '*.txt'), ('text/x-typoscript',)),
+    'TypoScriptLexer': ('pygments.lexers.typoscript', 'TypoScript', ('typoscript',), ('*.typoscript',), ('text/x-typoscript',)),
+    'UcodeLexer': ('pygments.lexers.unicon', 'ucode', ('ucode',), ('*.u', '*.u1', '*.u2'), ()),
+    'UniconLexer': ('pygments.lexers.unicon', 'Unicon', ('unicon',), ('*.icn',), ('text/unicon',)),
     'UrbiscriptLexer': ('pygments.lexers.urbi', 'UrbiScript', ('urbiscript',), ('*.u',), ('application/x-urbiscript',)),
+    'UsdLexer': ('pygments.lexers.usd', 'USD', ('usd', 'usda'), ('*.usd', '*.usda'), ()),
+    'VBScriptLexer': ('pygments.lexers.basic', 'VBScript', ('vbscript',), ('*.vbs', '*.VBS'), ()),
     'VCLLexer': ('pygments.lexers.varnish', 'VCL', ('vcl',), ('*.vcl',), ('text/x-vclsrc',)),
     'VCLSnippetLexer': ('pygments.lexers.varnish', 'VCLSnippets', ('vclsnippets', 'vclsnippet'), (), ('text/x-vclsnippet',)),
     'VCTreeStatusLexer': ('pygments.lexers.console', 'VCTreeStatus', ('vctreestatus',), (), ()),
@@ -438,6 +470,7 @@
     'VhdlLexer': ('pygments.lexers.hdl', 'vhdl', ('vhdl',), ('*.vhdl', '*.vhd'), ('text/x-vhdl',)),
     'VimLexer': ('pygments.lexers.textedit', 'VimL', ('vim',), ('*.vim', '.vimrc', '.exrc', '.gvimrc', '_vimrc', '_exrc', '_gvimrc', 'vimrc', 'gvimrc'), ('text/x-vim',)),
     'WDiffLexer': ('pygments.lexers.diff', 'WDiff', ('wdiff',), ('*.wdiff',), ()),
+    'WebIDLLexer': ('pygments.lexers.webidl', 'Web IDL', ('webidl',), ('*.webidl',), ()),
     'WhileyLexer': ('pygments.lexers.whiley', 'Whiley', ('whiley',), ('*.whiley',), ('text/x-whiley',)),
     'X10Lexer': ('pygments.lexers.x10', 'X10', ('x10', 'xten'), ('*.x10',), ('text/x-x10',)),
     'XQueryLexer': ('pygments.lexers.webmisc', 'XQuery', ('xquery', 'xqy', 'xq', 'xql', 'xqm'), ('*.xqy', '*.xquery', '*.xq', '*.xql', '*.xqm'), ('text/xquery', 'application/xquery')),
@@ -452,7 +485,9 @@
     'XtlangLexer': ('pygments.lexers.lisp', 'xtlang', ('extempore',), ('*.xtm',), ()),
     'YamlJinjaLexer': ('pygments.lexers.templates', 'YAML+Jinja', ('yaml+jinja', 'salt', 'sls'), ('*.sls',), ('text/x-yaml+jinja', 'text/x-sls')),
     'YamlLexer': ('pygments.lexers.data', 'YAML', ('yaml',), ('*.yaml', '*.yml'), ('text/x-yaml',)),
+    'ZeekLexer': ('pygments.lexers.dsls', 'Zeek', ('zeek', 'bro'), ('*.zeek', '*.bro'), ()),
     'ZephirLexer': ('pygments.lexers.php', 'Zephir', ('zephir',), ('*.zep',), ()),
+    'ZigLexer': ('pygments.lexers.zig', 'Zig', ('zig',), ('*.zig',), ('text/zig',)),
 }
 
 if __name__ == '__main__':  # pragma: no cover
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_mql_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_mql_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Builtins for the MqlLexer.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 types = (
@@ -884,7 +884,7 @@
     'PERIOD_W1',
     'POINTER_AUTOMATIC',
     'POINTER_DYNAMIC',
-    'POINTER_INVALID'
+    'POINTER_INVALID',
     'PRICE_CLOSE',
     'PRICE_HIGH',
     'PRICE_LOW',
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_openedge_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_openedge_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Builtin list for the OpenEdgeLexer.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_php_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_php_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -12,12 +12,10 @@
              internet connection. don't run that at home, use
              a server ;-)
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 MODULES = {'.NET': ('dotnet_load',),
  'APC': ('apc_add',
          'apc_bin_dump',
@@ -4698,18 +4696,19 @@
 
         for file in get_php_references():
             module = ''
-            for line in open(file):
-                if not module:
-                    search = module_re.search(line)
-                    if search:
-                        module = search.group(1)
-                        modules[module] = []
+            with open(file) as f:
+                for line in f:
+                    if not module:
+                        search = module_re.search(line)
+                        if search:
+                            module = search.group(1)
+                            modules[module] = []
 
-                elif 'href="function.' in line:
-                    for match in function_re.finditer(line):
-                        fn = match.group(1)
-                        if '-&gt;' not in fn and '::' not in fn and fn not in modules[module]:
-                            modules[module].append(fn)
+                    elif 'href="function.' in line:
+                        for match in function_re.finditer(line):
+                            fn = match.group(1)
+                            if '-&gt;' not in fn and '::' not in fn and fn not in modules[module]:
+                                modules[module].append(fn)
 
             if module:
                 # These are dummy manual pages, not actual functions
@@ -4726,9 +4725,8 @@
 
     def get_php_references():
         download = urlretrieve(PHP_MANUAL_URL)
-        tar = tarfile.open(download[0])
-        tar.extractall()
-        tar.close()
+        with tarfile.open(download[0]) as tar:
+            tar.extractall()
         for file in glob.glob("%s%s" % (PHP_MANUAL_DIR, PHP_REFERENCE_GLOB)):
             yield file
         os.remove(download[0])
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_postgres_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_postgres_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Self-updating data files for PostgreSQL lexer.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_scilab_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_scilab_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Builtin list for the ScilabLexer.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -3089,6 +3089,6 @@
     with open(__file__, 'w') as f:
         f.write(header)
         f.write('# Autogenerated\n\n')
-        for k, v in sorted(new_data.iteritems()):
+        for k, v in sorted(new_data.items()):
             f.write(format_lines(k + '_kw', v) + '\n\n')
         f.write(footer)
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_sourcemod_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_sourcemod_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -8,12 +8,10 @@
 
     Do not edit the FUNCTIONS list by hand.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 FUNCTIONS = (
     'OnEntityCreated',
     'OnEntityDestroyed',
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_stan_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_stan_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -4,24 +4,23 @@
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     This file contains the names of functions for Stan used by
-    ``pygments.lexers.math.StanLexer. This is for Stan language version 2.8.0.
+    ``pygments.lexers.math.StanLexer. This is for Stan language version 2.17.0.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 KEYWORDS = (
+    'break',
+    'continue',
     'else',
     'for',
     'if',
     'in',
-    'increment_log_prob',
-    'integrate_ode',
-    'lp__',
     'print',
     'reject',
     'return',
-    'while'
+    'while',
 )
 
 TYPES = (
@@ -35,18 +34,18 @@
     'positive_ordered',
     'real',
     'row_vector',
-    'row_vectormatrix',
     'simplex',
     'unit_vector',
     'vector',
-    'void')
+    'void',
+)
 
 FUNCTIONS = (
-    'Phi',
-    'Phi_approx',
     'abs',
     'acos',
     'acosh',
+    'algebra_solver',
+    'append_array',
     'append_col',
     'append_row',
     'asin',
@@ -54,55 +53,59 @@
     'atan',
     'atan2',
     'atanh',
-    'bernoulli_ccdf_log',
     'bernoulli_cdf',
-    'bernoulli_cdf_log',
-    'bernoulli_log',
-    'bernoulli_logit_log',
+    'bernoulli_lccdf',
+    'bernoulli_lcdf',
+    'bernoulli_logit_lpmf',
+    'bernoulli_logit_rng',
+    'bernoulli_lpmf',
     'bernoulli_rng',
     'bessel_first_kind',
     'bessel_second_kind',
-    'beta_binomial_ccdf_log',
     'beta_binomial_cdf',
-    'beta_binomial_cdf_log',
-    'beta_binomial_log',
+    'beta_binomial_lccdf',
+    'beta_binomial_lcdf',
+    'beta_binomial_lpmf',
     'beta_binomial_rng',
-    'beta_ccdf_log',
     'beta_cdf',
-    'beta_cdf_log',
-    'beta_log',
+    'beta_lccdf',
+    'beta_lcdf',
+    'beta_lpdf',
     'beta_rng',
     'binary_log_loss',
-    'binomial_ccdf_log',
     'binomial_cdf',
-    'binomial_cdf_log',
     'binomial_coefficient_log',
-    'binomial_log',
-    'binomial_logit_log',
+    'binomial_lccdf',
+    'binomial_lcdf',
+    'binomial_logit_lpmf',
+    'binomial_lpmf',
     'binomial_rng',
     'block',
-    'categorical_log',
-    'categorical_logit_log',
+    'categorical_logit_lpmf',
+    'categorical_logit_rng',
+    'categorical_lpmf',
     'categorical_rng',
-    'cauchy_ccdf_log',
     'cauchy_cdf',
-    'cauchy_cdf_log',
-    'cauchy_log',
+    'cauchy_lccdf',
+    'cauchy_lcdf',
+    'cauchy_lpdf',
     'cauchy_rng',
     'cbrt',
     'ceil',
-    'chi_square_ccdf_log',
     'chi_square_cdf',
-    'chi_square_cdf_log',
-    'chi_square_log',
+    'chi_square_lccdf',
+    'chi_square_lcdf',
+    'chi_square_lpdf',
     'chi_square_rng',
     'cholesky_decompose',
+    'choose',
     'col',
     'cols',
     'columns_dot_product',
     'columns_dot_self',
     'cos',
     'cosh',
+    'cov_exp_quad',
     'crossprod',
     'csr_extract_u',
     'csr_extract_v',
@@ -117,15 +120,15 @@
     'diagonal',
     'digamma',
     'dims',
-    'dirichlet_log',
+    'dirichlet_lpdf',
     'dirichlet_rng',
     'distance',
     'dot_product',
     'dot_self',
-    'double_exponential_ccdf_log',
     'double_exponential_cdf',
-    'double_exponential_cdf_log',
-    'double_exponential_log',
+    'double_exponential_lccdf',
+    'double_exponential_lcdf',
+    'double_exponential_lpdf',
     'double_exponential_rng',
     'e',
     'eigenvalues_sym',
@@ -134,16 +137,16 @@
     'erfc',
     'exp',
     'exp2',
-    'exp_mod_normal_ccdf_log',
     'exp_mod_normal_cdf',
-    'exp_mod_normal_cdf_log',
-    'exp_mod_normal_log',
+    'exp_mod_normal_lccdf',
+    'exp_mod_normal_lcdf',
+    'exp_mod_normal_lpdf',
     'exp_mod_normal_rng',
     'expm1',
-    'exponential_ccdf_log',
     'exponential_cdf',
-    'exponential_cdf_log',
-    'exponential_log',
+    'exponential_lccdf',
+    'exponential_lcdf',
+    'exponential_lpdf',
     'exponential_rng',
     'fabs',
     'falling_factorial',
@@ -153,60 +156,65 @@
     'fmax',
     'fmin',
     'fmod',
-    'frechet_ccdf_log',
     'frechet_cdf',
-    'frechet_cdf_log',
-    'frechet_log',
+    'frechet_lccdf',
+    'frechet_lcdf',
+    'frechet_lpdf',
     'frechet_rng',
-    'gamma_ccdf_log',
     'gamma_cdf',
-    'gamma_cdf_log',
-    'gamma_log',
+    'gamma_lccdf',
+    'gamma_lcdf',
+    'gamma_lpdf',
     'gamma_p',
     'gamma_q',
     'gamma_rng',
-    'gaussian_dlm_obs_log',
+    'gaussian_dlm_obs_lpdf',
     'get_lp',
-    'gumbel_ccdf_log',
     'gumbel_cdf',
-    'gumbel_cdf_log',
-    'gumbel_log',
+    'gumbel_lccdf',
+    'gumbel_lcdf',
+    'gumbel_lpdf',
     'gumbel_rng',
     'head',
-    'hypergeometric_log',
+    'hypergeometric_lpmf',
     'hypergeometric_rng',
     'hypot',
-    'if_else',
+    'inc_beta',
     'int_step',
+    'integrate_ode',
+    'integrate_ode_bdf',
+    'integrate_ode_rk45',
     'inv',
-    'inv_chi_square_ccdf_log',
     'inv_chi_square_cdf',
-    'inv_chi_square_cdf_log',
-    'inv_chi_square_log',
+    'inv_chi_square_lccdf',
+    'inv_chi_square_lcdf',
+    'inv_chi_square_lpdf',
     'inv_chi_square_rng',
     'inv_cloglog',
-    'inv_gamma_ccdf_log',
     'inv_gamma_cdf',
-    'inv_gamma_cdf_log',
-    'inv_gamma_log',
+    'inv_gamma_lccdf',
+    'inv_gamma_lcdf',
+    'inv_gamma_lpdf',
     'inv_gamma_rng',
     'inv_logit',
-    'inv_phi',
+    'inv_Phi',
     'inv_sqrt',
     'inv_square',
-    'inv_wishart_log',
+    'inv_wishart_lpdf',
     'inv_wishart_rng',
     'inverse',
     'inverse_spd',
     'is_inf',
     'is_nan',
     'lbeta',
+    'lchoose',
     'lgamma',
-    'lkj_corr_cholesky_log',
+    'lkj_corr_cholesky_lpdf',
     'lkj_corr_cholesky_rng',
-    'lkj_corr_log',
+    'lkj_corr_lpdf',
     'lkj_corr_rng',
     'lmgamma',
+    'lmultiply',
     'log',
     'log10',
     'log1m',
@@ -223,81 +231,87 @@
     'log_rising_factorial',
     'log_softmax',
     'log_sum_exp',
-    'logistic_ccdf_log',
     'logistic_cdf',
-    'logistic_cdf_log',
-    'logistic_log',
+    'logistic_lccdf',
+    'logistic_lcdf',
+    'logistic_lpdf',
     'logistic_rng',
     'logit',
-    'lognormal_ccdf_log',
     'lognormal_cdf',
-    'lognormal_cdf_log',
-    'lognormal_log',
+    'lognormal_lccdf',
+    'lognormal_lcdf',
+    'lognormal_lpdf',
     'lognormal_rng',
     'machine_precision',
+    'matrix_exp',
     'max',
+    'mdivide_left_spd',
     'mdivide_left_tri_low',
+    'mdivide_right_spd',
     'mdivide_right_tri_low',
     'mean',
     'min',
     'modified_bessel_first_kind',
     'modified_bessel_second_kind',
-    'multi_gp_cholesky_log',
-    'multi_gp_log',
-    'multi_normal_cholesky_log',
+    'multi_gp_cholesky_lpdf',
+    'multi_gp_lpdf',
+    'multi_normal_cholesky_lpdf',
     'multi_normal_cholesky_rng',
-    'multi_normal_log',
-    'multi_normal_prec_log',
+    'multi_normal_lpdf',
+    'multi_normal_prec_lpdf',
     'multi_normal_rng',
-    'multi_student_t_log',
+    'multi_student_t_lpdf',
     'multi_student_t_rng',
-    'multinomial_log',
+    'multinomial_lpmf',
     'multinomial_rng',
     'multiply_log',
     'multiply_lower_tri_self_transpose',
-    'neg_binomial_2_ccdf_log',
     'neg_binomial_2_cdf',
-    'neg_binomial_2_cdf_log',
-    'neg_binomial_2_log',
-    'neg_binomial_2_log_log',
+    'neg_binomial_2_lccdf',
+    'neg_binomial_2_lcdf',
+    'neg_binomial_2_log_lpmf',
     'neg_binomial_2_log_rng',
+    'neg_binomial_2_lpmf',
     'neg_binomial_2_rng',
-    'neg_binomial_ccdf_log',
     'neg_binomial_cdf',
-    'neg_binomial_cdf_log',
-    'neg_binomial_log',
+    'neg_binomial_lccdf',
+    'neg_binomial_lcdf',
+    'neg_binomial_lpmf',
     'neg_binomial_rng',
     'negative_infinity',
-    'normal_ccdf_log',
     'normal_cdf',
-    'normal_cdf_log',
-    'normal_log',
+    'normal_lccdf',
+    'normal_lcdf',
+    'normal_lpdf',
     'normal_rng',
     'not_a_number',
     'num_elements',
-    'ordered_logistic_log',
+    'ordered_logistic_lpmf',
     'ordered_logistic_rng',
     'owens_t',
-    'pareto_ccdf_log',
     'pareto_cdf',
-    'pareto_cdf_log',
-    'pareto_log',
+    'pareto_lccdf',
+    'pareto_lcdf',
+    'pareto_lpdf',
     'pareto_rng',
-    'pareto_type_2_ccdf_log',
     'pareto_type_2_cdf',
-    'pareto_type_2_cdf_log',
-    'pareto_type_2_log',
+    'pareto_type_2_lccdf',
+    'pareto_type_2_lcdf',
+    'pareto_type_2_lpdf',
     'pareto_type_2_rng',
+    'Phi',
+    'Phi_approx',
     'pi',
-    'poisson_ccdf_log',
     'poisson_cdf',
-    'poisson_cdf_log',
-    'poisson_log',
-    'poisson_log_log',
+    'poisson_lccdf',
+    'poisson_lcdf',
+    'poisson_log_lpmf',
     'poisson_log_rng',
+    'poisson_lpmf',
     'poisson_rng',
     'positive_infinity',
     'pow',
+    'print',
     'prod',
     'qr_Q',
     'qr_R',
@@ -305,11 +319,12 @@
     'quad_form_diag',
     'quad_form_sym',
     'rank',
-    'rayleigh_ccdf_log',
     'rayleigh_cdf',
-    'rayleigh_cdf_log',
-    'rayleigh_log',
+    'rayleigh_lccdf',
+    'rayleigh_lcdf',
+    'rayleigh_lpdf',
     'rayleigh_rng',
+    'reject',
     'rep_array',
     'rep_matrix',
     'rep_row_vector',
@@ -320,10 +335,10 @@
     'rows',
     'rows_dot_product',
     'rows_dot_self',
-    'scaled_inv_chi_square_ccdf_log',
     'scaled_inv_chi_square_cdf',
-    'scaled_inv_chi_square_cdf_log',
-    'scaled_inv_chi_square_log',
+    'scaled_inv_chi_square_lccdf',
+    'scaled_inv_chi_square_lcdf',
+    'scaled_inv_chi_square_lpdf',
     'scaled_inv_chi_square_rng',
     'sd',
     'segment',
@@ -331,10 +346,10 @@
     'singular_values',
     'sinh',
     'size',
-    'skew_normal_ccdf_log',
     'skew_normal_cdf',
-    'skew_normal_cdf_log',
-    'skew_normal_log',
+    'skew_normal_lccdf',
+    'skew_normal_lcdf',
+    'skew_normal_lpdf',
     'skew_normal_rng',
     'softmax',
     'sort_asc',
@@ -346,10 +361,10 @@
     'square',
     'squared_distance',
     'step',
-    'student_t_ccdf_log',
     'student_t_cdf',
-    'student_t_cdf_log',
-    'student_t_log',
+    'student_t_lccdf',
+    'student_t_lcdf',
+    'student_t_lpdf',
     'student_t_rng',
     'sub_col',
     'sub_row',
@@ -357,6 +372,7 @@
     'tail',
     'tan',
     'tanh',
+    'target',
     'tcrossprod',
     'tgamma',
     'to_array_1d',
@@ -369,22 +385,22 @@
     'trace_quad_form',
     'trigamma',
     'trunc',
-    'uniform_ccdf_log',
     'uniform_cdf',
-    'uniform_cdf_log',
-    'uniform_log',
+    'uniform_lccdf',
+    'uniform_lcdf',
+    'uniform_lpdf',
     'uniform_rng',
     'variance',
-    'von_mises_log',
+    'von_mises_lpdf',
     'von_mises_rng',
-    'weibull_ccdf_log',
     'weibull_cdf',
-    'weibull_cdf_log',
-    'weibull_log',
+    'weibull_lccdf',
+    'weibull_lcdf',
+    'weibull_lpdf',
     'weibull_rng',
-    'wiener_log',
-    'wishart_log',
-    'wishart_rng'
+    'wiener_lpdf',
+    'wishart_lpdf',
+    'wishart_rng',
 )
 
 DISTRIBUTIONS = (
@@ -438,7 +454,7 @@
     'von_mises',
     'weibull',
     'wiener',
-    'wishart'
+    'wishart',
 )
 
 RESERVED = (
@@ -469,19 +485,23 @@
     'do',
     'double',
     'dynamic_cast',
+    'else',
     'enum',
     'explicit',
     'export',
     'extern',
     'false',
-    'false',
     'float',
+    'for',
     'friend',
     'fvar',
     'goto',
+    'if',
+    'in',
     'inline',
     'int',
     'long',
+    'lp__',
     'mutable',
     'namespace',
     'new',
@@ -498,9 +518,16 @@
     'register',
     'reinterpret_cast',
     'repeat',
+    'return',
     'short',
     'signed',
     'sizeof',
+    'STAN_MAJOR',
+    'STAN_MATH_MAJOR',
+    'STAN_MATH_MINOR',
+    'STAN_MATH_PATCH',
+    'STAN_MINOR',
+    'STAN_PATCH',
     'static',
     'static_assert',
     'static_cast',
@@ -512,7 +539,6 @@
     'thread_local',
     'throw',
     'true',
-    'true',
     'try',
     'typedef',
     'typeid',
@@ -526,7 +552,7 @@
     'void',
     'volatile',
     'wchar_t',
+    'while',
     'xor',
-    'xor_eq'
+    'xor_eq',
 )
-
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_stata_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_stata_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,11 +5,15 @@
 
     Builtins for Stata
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 
+builtins_special = (
+    "if", "in", "using", "replace", "by", "gen", "generate"
+)
+
 builtins_base = (
     "if", "else", "in", "foreach", "for", "forv", "forva",
     "forval", "forvalu", "forvalue", "forvalues", "by", "bys",
@@ -66,7 +70,7 @@
     "doedit", "dotplot", "dotplot_7", "dprobit", "drawnorm",
     "drop", "ds", "ds_util", "dstdize", "duplicates", "durbina",
     "dwstat", "dydx", "e", "ed", "edi", "edit", "egen",
-    "eivreg", "emdef", "en", "enc", "enco", "encod", "encode",
+    "eivreg", "emdef", "end", "en", "enc", "enco", "encod", "encode",
     "eq", "erase", "ereg", "ereg_lf", "ereg_p", "ereg_sw",
     "ereghet", "ereghet_glf", "ereghet_glf_sh", "ereghet_gp",
     "ereghet_ilf", "ereghet_ilf_sh", "ereghet_ip", "eret",
@@ -415,5 +419,3 @@
     "weekly", "wofd", "word", "wordcount", "year", "yearly",
     "yh", "ym", "yofd", "yq", "yw"
 )
-
-
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_tsql_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_tsql_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     These are manually translated lists from https://msdn.microsoft.com.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_usd_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,107 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""A collection of known USD-related keywords, attributes, and types."""
+
+COMMON_ATTRIBUTES = [
+    "extent",
+    "xformOpOrder",
+]
+
+KEYWORDS = [
+    "class",
+    "clips",
+    "custom",
+    "customData",
+    "def",
+    "dictionary",
+    "inherits",
+    "over",
+    "payload",
+    "references",
+    "rel",
+    "subLayers",
+    "timeSamples",
+    "uniform",
+    "variantSet",
+    "variantSets",
+    "variants",
+]
+
+OPERATORS = [
+    "add",
+    "append",
+    "delete",
+    "prepend",
+    "reorder",
+]
+
+SPECIAL_NAMES = [
+    "active",
+    "apiSchemas",
+    "defaultPrim",
+    "elementSize",
+    "endTimeCode",
+    "hidden",
+    "instanceable",
+    "interpolation",
+    "kind",
+    "startTimeCode",
+    "upAxis",
+]
+
+TYPES = [
+    "asset",
+    "bool",
+    "color3d",
+    "color3f",
+    "color3h",
+    "color4d",
+    "color4f",
+    "color4h",
+    "double",
+    "double2",
+    "double3",
+    "double4",
+    "float",
+    "float2",
+    "float3",
+    "float4",
+    "frame4d",
+    "half",
+    "half2",
+    "half3",
+    "half4",
+    "int",
+    "int2",
+    "int3",
+    "int4",
+    "keyword",
+    "matrix2d",
+    "matrix3d",
+    "matrix4d",
+    "normal3d",
+    "normal3f",
+    "normal3h",
+    "point3d",
+    "point3f",
+    "point3h",
+    "quatd",
+    "quatf",
+    "quath",
+    "string",
+    "syn",
+    "token",
+    "uchar",
+    "uchar2",
+    "uchar3",
+    "uchar4",
+    "uint",
+    "uint2",
+    "uint3",
+    "uint4",
+    "usdaType",
+    "vector3d",
+    "vector3f",
+    "vector3h",
+]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_vbscript_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,280 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers._vbscript_builtins
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    These are manually translated lists from
+    http://www.indusoft.com/pdf/VBScript%20Reference.pdf.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+KEYWORDS = [
+    'ByRef',
+    'ByVal',
+    # dim: special rule
+    'call',
+    'case',
+    'class',
+    # const: special rule
+    'do',
+    'each',
+    'else',
+    'elseif',
+    'end',
+    'erase',
+    'execute',
+    'function',
+    'exit',
+    'for',
+    'function',
+    'GetRef',
+    'global',
+    'if',
+    'let',
+    'loop',
+    'next',
+    'new',
+    # option: special rule
+    'private',
+    'public',
+    'redim',
+    'select',
+    'set',
+    'sub',
+    'then',
+    'wend',
+    'while',
+    'with',
+]
+
+BUILTIN_FUNCTIONS = [
+    'Abs',
+    'Array',
+    'Asc',
+    'Atn',
+    'CBool',
+    'CByte',
+    'CCur',
+    'CDate',
+    'CDbl',
+    'Chr',
+    'CInt',
+    'CLng',
+    'Cos',
+    'CreateObject',
+    'CSng',
+    'CStr',
+    'Date',
+    'DateAdd',
+    'DateDiff',
+    'DatePart',
+    'DateSerial',
+    'DateValue',
+    'Day',
+    'Eval',
+    'Exp',
+    'Filter',
+    'Fix',
+    'FormatCurrency',
+    'FormatDateTime',
+    'FormatNumber',
+    'FormatPercent',
+    'GetObject',
+    'GetLocale',
+    'Hex',
+    'Hour',
+    'InStr',
+    'inStrRev',
+    'Int',
+    'IsArray',
+    'IsDate',
+    'IsEmpty',
+    'IsNull',
+    'IsNumeric',
+    'IsObject',
+    'Join',
+    'LBound',
+    'LCase',
+    'Left',
+    'Len',
+    'LoadPicture',
+    'Log',
+    'LTrim',
+    'Mid',
+    'Minute',
+    'Month',
+    'MonthName',
+    'MsgBox',
+    'Now',
+    'Oct',
+    'Randomize',
+    'RegExp',
+    'Replace',
+    'RGB',
+    'Right',
+    'Rnd',
+    'Round',
+    'RTrim',
+    'ScriptEngine',
+    'ScriptEngineBuildVersion',
+    'ScriptEngineMajorVersion',
+    'ScriptEngineMinorVersion',
+    'Second',
+    'SetLocale',
+    'Sgn',
+    'Space',
+    'Split',
+    'Sqr',
+    'StrComp',
+    'String',
+    'StrReverse',
+    'Tan',
+    'Time',
+    'Timer',
+    'TimeSerial',
+    'TimeValue',
+    'Trim',
+    'TypeName',
+    'UBound',
+    'UCase',
+    'VarType',
+    'Weekday',
+    'WeekdayName',
+    'Year',
+]
+
+BUILTIN_VARIABLES = [
+    'Debug',
+    'Dictionary',
+    'Drive',
+    'Drives',
+    'Err',
+    'File',
+    'Files',
+    'FileSystemObject',
+    'Folder',
+    'Folders',
+    'Match',
+    'Matches',
+    'RegExp',
+    'Submatches',
+    'TextStream',
+]
+
+OPERATORS = [
+    '+',
+    '-',
+    '*',
+    '/',
+    '\\',
+    '^',
+    '|',
+    '<',
+    '<=',
+    '>',
+    '>=',
+    '=',
+    '<>',
+    '&',
+    '$',
+]
+
+OPERATOR_WORDS = [
+    'mod',
+    'and',
+    'or',
+    'xor',
+    'eqv',
+    'imp',
+    'is',
+    'not',
+]
+
+BUILTIN_CONSTANTS = [
+    'False',
+    'True',
+    'vbAbort',
+    'vbAbortRetryIgnore',
+    'vbApplicationModal',
+    'vbArray',
+    'vbBinaryCompare',
+    'vbBlack',
+    'vbBlue',
+    'vbBoole',
+    'vbByte',
+    'vbCancel',
+    'vbCr',
+    'vbCritical',
+    'vbCrLf',
+    'vbCurrency',
+    'vbCyan',
+    'vbDataObject',
+    'vbDate',
+    'vbDefaultButton1',
+    'vbDefaultButton2',
+    'vbDefaultButton3',
+    'vbDefaultButton4',
+    'vbDouble',
+    'vbEmpty',
+    'vbError',
+    'vbExclamation',
+    'vbFalse',
+    'vbFirstFullWeek',
+    'vbFirstJan1',
+    'vbFormFeed',
+    'vbFriday',
+    'vbGeneralDate',
+    'vbGreen',
+    'vbIgnore',
+    'vbInformation',
+    'vbInteger',
+    'vbLf',
+    'vbLong',
+    'vbLongDate',
+    'vbLongTime',
+    'vbMagenta',
+    'vbMonday',
+    'vbMsgBoxHelpButton',
+    'vbMsgBoxRight',
+    'vbMsgBoxRtlReading',
+    'vbMsgBoxSetForeground',
+    'vbNewLine',
+    'vbNo',
+    'vbNull',
+    'vbNullChar',
+    'vbNullString',
+    'vbObject',
+    'vbObjectError',
+    'vbOK',
+    'vbOKCancel',
+    'vbOKOnly',
+    'vbQuestion',
+    'vbRed',
+    'vbRetry',
+    'vbRetryCancel',
+    'vbSaturday',
+    'vbShortDate',
+    'vbShortTime',
+    'vbSingle',
+    'vbString',
+    'vbSunday',
+    'vbSystemModal',
+    'vbTab',
+    'vbTextCompare',
+    'vbThursday',
+    'vbTrue',
+    'vbTuesday',
+    'vbUseDefault',
+    'vbUseSystem',
+    'vbUseSystem',
+    'vbVariant',
+    'vbVerticalTab',
+    'vbWednesday',
+    'vbWhite',
+    'vbYellow',
+    'vbYes',
+    'vbYesNo',
+    'vbYesNoCancel',
+]
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_vim_builtins.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/_vim_builtins.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     This file is autogenerated by scripts/get_vimkw.py
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/actionscript.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/actionscript.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for ActionScript and MXML.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/agile.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/agile.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Just export lexer classes previously contained in this module.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/algebra.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/algebra.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for computer algebra systems.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ambient.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ambient.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for AmbientTalk language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ampl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ampl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the AMPL language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/apl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/apl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for APL.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/archetype.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/archetype.py	Tue Apr 21 19:47:10 2020 +0200
@@ -14,7 +14,7 @@
     Contributed by Thomas Beale <https://github.com/wolandscat>,
     <https://bitbucket.org/thomas_beale>.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/asm.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/asm.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,22 +5,23 @@
 
     Lexers for assembly languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include, bygroups, using, words, \
-    DelegatingLexer
+    DelegatingLexer, default
 from pygments.lexers.c_cpp import CppLexer, CLexer
 from pygments.lexers.d import DLexer
 from pygments.token import Text, Name, Number, String, Comment, Punctuation, \
-    Other, Keyword, Operator
+    Other, Keyword, Operator, Literal
 
 __all__ = ['GasLexer', 'ObjdumpLexer', 'DObjdumpLexer', 'CppObjdumpLexer',
-           'CObjdumpLexer', 'HsailLexer', 'LlvmLexer', 'NasmLexer',
-           'NasmObjdumpLexer', 'TasmLexer', 'Ca65Lexer']
+           'CObjdumpLexer', 'HsailLexer', 'LlvmLexer', 'LlvmMirBodyLexer',
+           'LlvmMirLexer', 'NasmLexer', 'NasmObjdumpLexer', 'TasmLexer',
+           'Ca65Lexer', 'Dasm16Lexer']
 
 
 class GasLexer(RegexLexer):
@@ -37,6 +38,7 @@
     char = r'[\w$.@-]'
     identifier = r'(?:[a-zA-Z$_]' + char + r'*|\.' + char + '+)'
     number = r'(?:0[xX][a-zA-Z0-9]+|\d+)'
+    register = '%' + identifier
 
     tokens = {
         'root': [
@@ -52,8 +54,11 @@
             (string, String),
             ('@' + identifier, Name.Attribute),
             (number, Number.Integer),
+            (register, Name.Variable),
             (r'[\r\n]+', Text, '#pop'),
-            (r'[;#].*?\n', Comment, '#pop'),
+            (r'([;#]|//).*?\n', Comment.Single, '#pop'),
+            (r'/[*].*?[*]/', Comment.Multiline),
+            (r'/[*].*?\n[\w\W]*?[*]/', Comment.Multiline, '#pop'),
 
             include('punctuation'),
             include('whitespace')
@@ -72,12 +77,14 @@
             (identifier, Name.Constant),
             (number, Number.Integer),
             # Registers
-            ('%' + identifier, Name.Variable),
+            (register, Name.Variable),
             # Numeric constants
             ('$'+number, Number.Integer),
             (r"$'(.|\\')'", String.Char),
             (r'[\r\n]+', Text, '#pop'),
-            (r'[;#].*?\n', Comment, '#pop'),
+            (r'([;#]|//).*?\n', Comment.Single, '#pop'),
+            (r'/[*].*?[*]/', Comment.Multiline),
+            (r'/[*].*?\n[\w\W]*?[*]/', Comment.Multiline, '#pop'),
 
             include('punctuation'),
             include('whitespace')
@@ -85,7 +92,8 @@
         'whitespace': [
             (r'\n', Text),
             (r'\s+', Text),
-            (r'[;#].*?\n', Comment)
+            (r'([;#]|//).*?\n', Comment.Single),
+            (r'/[*][\w\W]*?[*]/', Comment.Multiline)
         ],
         'punctuation': [
             (r'[-*,.()\[\]!:]+', Punctuation)
@@ -93,9 +101,9 @@
     }
 
     def analyse_text(text):
-        if re.match(r'^\.(text|data|section)', text, re.M):
+        if re.search(r'^\.(text|data|section)', text, re.M):
             return True
-        elif re.match(r'^\.\w+', text, re.M):
+        elif re.search(r'^\.\w+', text, re.M):
             return 0.1
 
 
@@ -377,54 +385,63 @@
         'keyword': [
             # Regular keywords
             (words((
-                'begin', 'end', 'true', 'false', 'declare', 'define', 'global',
-                'constant', 'private', 'linker_private', 'internal',
-                'available_externally', 'linkonce', 'linkonce_odr', 'weak',
-                'weak_odr', 'appending', 'dllimport', 'dllexport', 'common',
-                'default', 'hidden', 'protected', 'extern_weak', 'external',
-                'thread_local', 'zeroinitializer', 'undef', 'null', 'to', 'tail',
-                'target', 'triple', 'datalayout', 'volatile', 'nuw', 'nsw', 'nnan',
-                'ninf', 'nsz', 'arcp', 'fast', 'exact', 'inbounds', 'align',
-                'addrspace', 'section', 'alias', 'module', 'asm', 'sideeffect',
-                'gc', 'dbg', 'linker_private_weak', 'attributes', 'blockaddress',
-                'initialexec', 'localdynamic', 'localexec', 'prefix', 'unnamed_addr',
-                'ccc', 'fastcc', 'coldcc', 'x86_stdcallcc', 'x86_fastcallcc',
-                'arm_apcscc', 'arm_aapcscc', 'arm_aapcs_vfpcc', 'ptx_device',
-                'ptx_kernel', 'intel_ocl_bicc', 'msp430_intrcc', 'spir_func',
-                'spir_kernel', 'x86_64_sysvcc', 'x86_64_win64cc', 'x86_thiscallcc',
-                'cc', 'c', 'signext', 'zeroext', 'inreg', 'sret', 'nounwind',
-                'noreturn', 'noalias', 'nocapture', 'byval', 'nest', 'readnone',
-                'readonly', 'inlinehint', 'noinline', 'alwaysinline', 'optsize', 'ssp',
-                'sspreq', 'noredzone', 'noimplicitfloat', 'naked', 'builtin', 'cold',
-                'nobuiltin', 'noduplicate', 'nonlazybind', 'optnone', 'returns_twice',
-                'sanitize_address', 'sanitize_memory', 'sanitize_thread', 'sspstrong',
-                'uwtable', 'returned', 'type', 'opaque', 'eq', 'ne', 'slt', 'sgt',
-                'sle', 'sge', 'ult', 'ugt', 'ule', 'uge', 'oeq', 'one', 'olt', 'ogt',
-                'ole', 'oge', 'ord', 'uno', 'ueq', 'une', 'x', 'acq_rel', 'acquire',
-                'alignstack', 'atomic', 'catch', 'cleanup', 'filter', 'inteldialect',
-                'max', 'min', 'monotonic', 'nand', 'personality', 'release', 'seq_cst',
-                'singlethread', 'umax', 'umin', 'unordered', 'xchg', 'add', 'fadd',
-                'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'srem',
-                'frem', 'shl', 'lshr', 'ashr', 'and', 'or', 'xor', 'icmp', 'fcmp',
-                'phi', 'call', 'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'uitofp',
-                'sitofp', 'fptoui', 'fptosi', 'inttoptr', 'ptrtoint', 'bitcast',
-                'addrspacecast', 'select', 'va_arg', 'ret', 'br', 'switch', 'invoke',
-                'unwind', 'unreachable', 'indirectbr', 'landingpad', 'resume',
-                'malloc', 'alloca', 'free', 'load', 'store', 'getelementptr',
-                'extractelement', 'insertelement', 'shufflevector', 'getresult',
-                'extractvalue', 'insertvalue', 'atomicrmw', 'cmpxchg', 'fence',
-                'allocsize', 'amdgpu_cs', 'amdgpu_gs', 'amdgpu_kernel', 'amdgpu_ps',
-                'amdgpu_vs', 'any', 'anyregcc', 'argmemonly', 'avr_intrcc',
-                'avr_signalcc', 'caller', 'catchpad', 'catchret', 'catchswitch',
-                'cleanuppad', 'cleanupret', 'comdat', 'convergent', 'cxx_fast_tlscc',
-                'deplibs', 'dereferenceable', 'dereferenceable_or_null', 'distinct',
-                'exactmatch', 'externally_initialized', 'from', 'ghccc', 'hhvm_ccc',
-                'hhvmcc', 'ifunc', 'inaccessiblemem_or_argmemonly', 'inaccessiblememonly',
-                'inalloca', 'jumptable', 'largest', 'local_unnamed_addr', 'minsize',
-                'musttail', 'noduplicates', 'none', 'nonnull', 'norecurse', 'notail',
-                'preserve_allcc', 'preserve_mostcc', 'prologue', 'safestack', 'samesize',
-                'source_filename', 'swiftcc', 'swifterror', 'swiftself', 'webkit_jscc',
-                'within', 'writeonly', 'x86_intrcc', 'x86_vectorcallcc'),
+                'acq_rel', 'acquire', 'add', 'addrspace', 'addrspacecast', 'afn', 'alias',
+                'aliasee', 'align', 'alignLog2', 'alignstack', 'alloca', 'allocsize', 'allOnes',
+                'alwaysinline', 'amdgpu_cs', 'amdgpu_es', 'amdgpu_gs', 'amdgpu_hs',
+                'amdgpu_kernel', 'amdgpu_ls', 'amdgpu_ps', 'amdgpu_vs', 'and', 'any',
+                'anyregcc', 'appending', 'arcp', 'argmemonly', 'args', 'arm_aapcs_vfpcc',
+                'arm_aapcscc', 'arm_apcscc', 'ashr', 'asm', 'atomic', 'atomicrmw', 'attributes',
+                'available_externally', 'avr_intrcc', 'avr_signalcc', 'bit', 'bitcast',
+                'bitMask', 'blockaddress', 'br', 'branchFunnel', 'builtin', 'byArg', 'byte',
+                'byteArray', 'byval', 'c', 'call', 'callee', 'caller', 'calls', 'catch',
+                'catchpad', 'catchret', 'catchswitch', 'cc', 'ccc', 'cleanup', 'cleanuppad',
+                'cleanupret', 'cmpxchg', 'cold', 'coldcc', 'comdat', 'common', 'constant',
+                'contract', 'convergent', 'critical', 'cxx_fast_tlscc', 'datalayout', 'declare',
+                'default', 'define', 'deplibs', 'dereferenceable', 'dereferenceable_or_null',
+                'distinct', 'dllexport', 'dllimport', 'double', 'dso_local', 'dso_preemptable',
+                'dsoLocal', 'eq', 'exact', 'exactmatch', 'extern_weak', 'external',
+                'externally_initialized', 'extractelement', 'extractvalue', 'fadd', 'false',
+                'fast', 'fastcc', 'fcmp', 'fdiv', 'fence', 'filter', 'flags', 'float', 'fmul',
+                'fp128', 'fpext', 'fptosi', 'fptoui', 'fptrunc', 'frem', 'from', 'fsub',
+                'funcFlags', 'function', 'gc', 'getelementptr', 'ghccc', 'global', 'guid', 'gv',
+                'half', 'hash', 'hhvm_ccc', 'hhvmcc', 'hidden', 'hot', 'hotness', 'icmp',
+                'ifunc', 'inaccessiblemem_or_argmemonly', 'inaccessiblememonly', 'inalloca',
+                'inbounds', 'indir', 'indirectbr', 'info', 'initialexec', 'inline',
+                'inlineBits', 'inlinehint', 'inrange', 'inreg', 'insertelement', 'insertvalue',
+                'insts', 'intel_ocl_bicc', 'inteldialect', 'internal', 'inttoptr', 'invoke',
+                'jumptable', 'kind', 'label', 'landingpad', 'largest', 'linkage', 'linkonce',
+                'linkonce_odr', 'live', 'load', 'local_unnamed_addr', 'localdynamic',
+                'localexec', 'lshr', 'max', 'metadata', 'min', 'minsize', 'module', 'monotonic',
+                'msp430_intrcc', 'mul', 'musttail', 'naked', 'name', 'nand', 'ne', 'nest',
+                'ninf', 'nnan', 'noalias', 'nobuiltin', 'nocapture', 'nocf_check',
+                'noduplicate', 'noduplicates', 'noimplicitfloat', 'noinline', 'none',
+                'nonlazybind', 'nonnull', 'norecurse', 'noRecurse', 'noredzone', 'noreturn',
+                'notail', 'notEligibleToImport', 'nounwind', 'nsw', 'nsz', 'null', 'nuw', 'oeq',
+                'offset', 'oge', 'ogt', 'ole', 'olt', 'one', 'opaque', 'optforfuzzing',
+                'optnone', 'optsize', 'or', 'ord', 'path', 'personality', 'phi', 'ppc_fp128',
+                'prefix', 'preserve_allcc', 'preserve_mostcc', 'private', 'prologue',
+                'protected', 'ptrtoint', 'ptx_device', 'ptx_kernel', 'readnone', 'readNone',
+                'readonly', 'readOnly', 'reassoc', 'refs', 'relbf', 'release', 'resByArg',
+                'resume', 'ret', 'returnDoesNotAlias', 'returned', 'returns_twice', 'safestack',
+                'samesize', 'sanitize_address', 'sanitize_hwaddress', 'sanitize_memory',
+                'sanitize_thread', 'sdiv', 'section', 'select', 'seq_cst', 'sext', 'sge', 'sgt',
+                'shadowcallstack', 'shl', 'shufflevector', 'sideeffect', 'signext', 'single',
+                'singleImpl', 'singleImplName', 'sitofp', 'sizeM1', 'sizeM1BitWidth', 'sle',
+                'slt', 'source_filename', 'speculatable', 'spir_func', 'spir_kernel', 'srem',
+                'sret', 'ssp', 'sspreq', 'sspstrong', 'store', 'strictfp', 'sub', 'summaries',
+                'summary', 'swiftcc', 'swifterror', 'swiftself', 'switch', 'syncscope', 'tail',
+                'target', 'thread_local', 'to', 'token', 'triple', 'true', 'trunc', 'type',
+                'typeCheckedLoadConstVCalls', 'typeCheckedLoadVCalls', 'typeid', 'typeIdInfo',
+                'typeTestAssumeConstVCalls', 'typeTestAssumeVCalls', 'typeTestRes', 'typeTests',
+                'udiv', 'ueq', 'uge', 'ugt', 'uitofp', 'ule', 'ult', 'umax', 'umin', 'undef',
+                'une', 'uniformRetVal', 'uniqueRetVal', 'unknown', 'unnamed_addr', 'uno',
+                'unordered', 'unreachable', 'unsat', 'unwind', 'urem', 'uselistorder',
+                'uselistorder_bb', 'uwtable', 'va_arg', 'variable', 'vFuncId',
+                'virtualConstProp', 'void', 'volatile', 'weak', 'weak_odr', 'webkit_jscc',
+                'win64cc', 'within', 'wpdRes', 'wpdResolutions', 'writeonly', 'x',
+                'x86_64_sysvcc', 'x86_fastcallcc', 'x86_fp80', 'x86_intrcc', 'x86_mmx',
+                'x86_regcallcc', 'x86_stdcallcc', 'x86_thiscallcc', 'x86_vectorcallcc', 'xchg',
+                'xor', 'zeroext', 'zeroinitializer', 'zext', 'immarg', 'willreturn'),
                 suffix=r'\b'), Keyword),
 
             # Types
@@ -436,6 +453,217 @@
         ]
     }
 
+class LlvmMirBodyLexer(RegexLexer):
+    """
+    For LLVM MIR examples without the YAML wrapper
+
+    For more information on LLVM MIR see https://llvm.org/docs/MIRLangRef.html.
+
+    .. versionadded:: 2.6
+    """
+    name = 'LLVM-MIR Body'
+    aliases = ['llvm-mir-body']
+    filenames = []
+    mimetypes = []
+
+    tokens = {
+        'root': [
+            # Attributes on basic blocks
+            (words(('liveins', 'successors'), suffix=':'), Keyword),
+            # Basic Block Labels
+            (r'bb\.[0-9]+(\.[0-9a-zA-Z_.-]+)?( \(address-taken\))?:', Name.Label),
+            (r'bb\.[0-9]+ \(%[0-9a-zA-Z_.-]+\)( \(address-taken\))?:', Name.Label),
+            (r'%bb\.[0-9]+(\.\w+)?', Name.Label),
+            # Stack references
+            (r'%stack\.[0-9]+(\.\w+\.addr)?', Name),
+            # Subreg indices
+            (r'%subreg\.\w+', Name),
+            # Virtual registers
+            (r'%[0-9a-zA-Z_]+ *', Name.Variable, 'vreg'),
+            # Reference to LLVM-IR global
+            include('global'),
+            # Reference to Intrinsic
+            (r'intrinsic\(\@[0-9a-zA-Z_.]+\)', Name.Variable.Global),
+            # Comparison predicates
+            (words(('eq', 'ne', 'sgt', 'sge', 'slt', 'sle', 'ugt', 'uge', 'ult',
+                    'ule'), prefix=r'intpred\(', suffix=r'\)'), Name.Builtin),
+            (words(('oeq', 'one', 'ogt', 'oge', 'olt', 'ole', 'ugt', 'uge',
+                    'ult', 'ule'), prefix=r'floatpred\(', suffix=r'\)'),
+             Name.Builtin),
+            # Physical registers
+            (r'\$\w+', String.Single),
+            # Assignment operator
+            (r'[=]', Operator),
+            # gMIR Opcodes
+            (r'(G_ANYEXT|G_[SZ]EXT|G_SEXT_INREG|G_TRUNC|G_IMPLICIT_DEF|G_PHI|'
+             r'G_FRAME_INDEX|G_GLOBAL_VALUE|G_INTTOPTR|G_PTRTOINT|G_BITCAST|'
+             r'G_CONSTANT|G_FCONSTANT|G_VASTART|G_VAARG|G_CTLZ|G_CTLZ_ZERO_UNDEF|'
+             r'G_CTTZ|G_CTTZ_ZERO_UNDEF|G_CTPOP|G_BSWAP|G_BITREVERSE|'
+             r'G_ADDRSPACE_CAST|G_BLOCK_ADDR|G_JUMP_TABLE|G_DYN_STACKALLOC|'
+             r'G_ADD|G_SUB|G_MUL|G_[SU]DIV|G_[SU]REM|G_AND|G_OR|G_XOR|G_SHL|'
+             r'G_[LA]SHR|G_[IF]CMP|G_SELECT|G_GEP|G_PTR_MASK|G_SMIN|G_SMAX|'
+             r'G_UMIN|G_UMAX|G_[US]ADDO|G_[US]ADDE|G_[US]SUBO|G_[US]SUBE|'
+             r'G_[US]MULO|G_[US]MULH|G_FNEG|G_FPEXT|G_FPTRUNC|G_FPTO[US]I|'
+             r'G_[US]ITOFP|G_FABS|G_FCOPYSIGN|G_FCANONICALIZE|G_FMINNUM|'
+             r'G_FMAXNUM|G_FMINNUM_IEEE|G_FMAXNUM_IEEE|G_FMINIMUM|G_FMAXIMUM|'
+             r'G_FADD|G_FSUB|G_FMUL|G_FMA|G_FMAD|G_FDIV|G_FREM|G_FPOW|G_FEXP|'
+             r'G_FEXP2|G_FLOG|G_FLOG2|G_FLOG10|G_FCEIL|G_FCOS|G_FSIN|G_FSQRT|'
+             r'G_FFLOOR|G_FRINT|G_FNEARBYINT|G_INTRINSIC_TRUNC|'
+             r'G_INTRINSIC_ROUND|G_LOAD|G_[ZS]EXTLOAD|G_INDEXED_LOAD|'
+             r'G_INDEXED_[ZS]EXTLOAD|G_STORE|G_INDEXED_STORE|'
+             r'G_ATOMIC_CMPXCHG_WITH_SUCCESS|G_ATOMIC_CMPXCHG|'
+             r'G_ATOMICRMW_(XCHG|ADD|SUB|AND|NAND|OR|XOR|MAX|MIN|UMAX|UMIN|FADD|'
+                           r'FSUB)'
+             r'|G_FENCE|G_EXTRACT|G_UNMERGE_VALUES|G_INSERT|G_MERGE_VALUES|'
+             r'G_BUILD_VECTOR|G_BUILD_VECTOR_TRUNC|G_CONCAT_VECTORS|'
+             r'G_INTRINSIC|G_INTRINSIC_W_SIDE_EFFECTS|G_BR|G_BRCOND|'
+             r'G_BRINDIRECT|G_BRJT|G_INSERT_VECTOR_ELT|G_EXTRACT_VECTOR_ELT|'
+             r'G_SHUFFLE_VECTOR)\b',
+             Name.Builtin),
+            # Target independent opcodes
+            (r'(COPY|PHI|INSERT_SUBREG|EXTRACT_SUBREG|REG_SEQUENCE)\b',
+             Name.Builtin),
+            # Flags
+            (words(('killed', 'implicit')), Keyword),
+            # ConstantInt values
+            (r'[i][0-9]+ +', Keyword.Type, 'constantint'),
+            # ConstantFloat values
+            (r'(half|float|double) +', Keyword.Type, 'constantfloat'),
+            # Bare immediates
+            include('integer'),
+            # MMO's
+            (r':: *', Operator, 'mmo'),
+            # MIR Comments
+            (r';.*', Comment),
+            # If we get here, assume it's a target instruction
+            (r'[0-9a-zA-Z_]+', Name),
+            # Everything else that isn't highlighted
+            (r'[(), \n]+', Text),
+        ],
+        # The integer constant from a ConstantInt value
+        'constantint': [
+            include('integer'),
+            (r'(?=.)', Text, '#pop'),
+        ],
+        # The floating point constant from a ConstantFloat value
+        'constantfloat': [
+            include('float'),
+            (r'(?=.)', Text, '#pop'),
+        ],
+        'vreg': [
+            # The bank or class if there is one
+            (r' *:(?!:)', Keyword, ('#pop', 'vreg_bank_or_class')),
+            # The LLT if there is one
+            (r' *\(', Text, 'vreg_type'),
+            (r'(?=.)', Text, '#pop'),
+        ],
+        'vreg_bank_or_class': [
+            # The unassigned bank/class
+            (r' *_', Name.Variable.Magic),
+            (r' *[0-9a-zA-Z_]+', Name.Variable),
+            # The LLT if there is one
+            (r' *\(', Text, 'vreg_type'),
+            (r'(?=.)', Text, '#pop'),
+        ],
+        'vreg_type': [
+            # Scalar and pointer types
+            (r' *[sp][0-9]+', Keyword.Type),
+            (r' *<[0-9]+ *x *[sp][0-9]+>', Keyword.Type),
+            (r'\)', Text, '#pop'),
+            (r'(?=.)', Text, '#pop'),
+        ],
+        'mmo': [
+            (r'\(', Text),
+            (r' +', Text),
+            (words(('load', 'store', 'on', 'into', 'from', 'align', 'monotonic',
+                    'acquire', 'release', 'acq_rel', 'seq_cst')),
+             Keyword),
+            # IR references
+            (r'%ir\.[0-9a-zA-Z_.-]+', Name),
+            (r'%ir-block\.[0-9a-zA-Z_.-]+', Name),
+            (r'[-+]', Operator),
+            include('integer'),
+            include('global'),
+            (r',', Punctuation),
+            (r'\), \(', Text),
+            (r'\)', Text, '#pop'),
+        ],
+        'integer': [(r'-?[0-9]+', Number.Integer),],
+        'float': [(r'-?[0-9]+\.[0-9]+(e[+-][0-9]+)?', Number.Float)],
+        'global': [(r'\@[0-9a-zA-Z_.]+', Name.Variable.Global)],
+    }
+
+class LlvmMirLexer(RegexLexer):
+    """
+    Lexer for the overall LLVM MIR document format
+
+    MIR is a human readable serialization format that's used to represent LLVM's
+    machine specific intermediate representation. It allows LLVM's developers to
+    see the state of the compilation process at various points, as well as test
+    individual pieces of the compiler.
+
+    For more information on LLVM MIR see https://llvm.org/docs/MIRLangRef.html.
+
+    .. versionadded:: 2.6
+    """
+    name = 'LLVM-MIR'
+    aliases = ['llvm-mir']
+    filenames = ['*.mir']
+
+    tokens = {
+        'root': [
+            # Comments are hashes at the YAML level
+            (r'#.*', Comment),
+            # Documents starting with | are LLVM-IR
+            (r'--- \|$', Keyword, 'llvm_ir'),
+            # Other documents are MIR
+            (r'---', Keyword, 'llvm_mir'),
+            # Consume everything else in one token for efficiency
+            (r'[^-#]+|.', Text),
+        ],
+        'llvm_ir': [
+            # Documents end with '...' or '---'
+            (r'(\.\.\.|(?=---))', Keyword, '#pop'),
+            # Delegate to the LlvmLexer
+            (r'((?:.|\n)+?)(?=(\.\.\.|---))', bygroups(using(LlvmLexer))),
+        ],
+        'llvm_mir': [
+            # Comments are hashes at the YAML level
+            (r'#.*', Comment),
+            # Documents end with '...' or '---'
+            (r'(\.\.\.|(?=---))', Keyword, '#pop'),
+            # Handle the simple attributes
+            (r'name:', Keyword, 'name'),
+            (words(('alignment', ),
+                   suffix=':'), Keyword, 'number'),
+            (words(('legalized', 'regBankSelected', 'tracksRegLiveness',
+                    'selected', 'exposesReturnsTwice'),
+                   suffix=':'), Keyword, 'boolean'),
+            # Handle the attributes don't highlight inside
+            (words(('registers', 'stack', 'fixedStack', 'liveins', 'frameInfo',
+                    'machineFunctionInfo'),
+                   suffix=':'), Keyword),
+            # Delegate the body block to the LlvmMirBodyLexer
+            (r'body: *\|', Keyword, 'llvm_mir_body'),
+            # Consume everything else
+            (r'.+', Text),
+            (r'\n', Text),
+        ],
+        'name': [ (r'[^\n]+', Name), default('#pop') ],
+        'boolean': [ (r' *(true|false)', Name.Builtin), default('#pop') ],
+        'number': [ (r' *[0-9]+', Number), default('#pop') ],
+        'llvm_mir_body': [
+            # Documents end with '...' or '---'.
+            # We have to pop llvm_mir_body and llvm_mir
+            (r'(\.\.\.|(?=---))', Keyword, '#pop:2'),
+            # Delegate the body block to the LlvmMirBodyLexer
+            (r'((?:.|\n)+?)(?=\.\.\.|---)', bygroups(using(LlvmMirBodyLexer))),
+            # The '...' is optional. If we didn't already find it then it isn't
+            # there. There might be a '---' instead though.
+            (r'(?!\.\.\.|---)((.|\n)+)', bygroups(using(LlvmMirBodyLexer), Keyword)),
+        ],
+    }
+
 
 class NasmLexer(RegexLexer):
     """
@@ -446,6 +674,10 @@
     filenames = ['*.asm', '*.ASM']
     mimetypes = ['text/x-nasm']
 
+    # Tasm uses the same file endings, but TASM is not as common as NASM, so
+    # we prioritize NASM higher by default
+    priority = 1.0
+
     identifier = r'[a-z$._?][\w$.?#@~]*'
     hexn = r'(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)'
     octn = r'[0-7]+q'
@@ -459,9 +691,11 @@
                 r'mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]')
     wordop = r'seg|wrt|strict'
     type = r'byte|[dq]?word'
-    directives = (r'BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|'
+    # Directives must be followed by whitespace, otherwise CPU will match
+    # cpuid for instance.
+    directives = (r'(?:BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|'
                   r'ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|'
-                  r'EXPORT|LIBRARY|MODULE')
+                  r'EXPORT|LIBRARY|MODULE)\s+')
 
     flags = re.IGNORECASE | re.MULTILINE
     tokens = {
@@ -509,6 +743,11 @@
         ],
     }
 
+    def analyse_text(text):
+        # Probably TASM
+        if re.match(r'PROC', text, re.IGNORECASE):
+            return False
+
 
 class NasmObjdumpLexer(ObjdumpLexer):
     """
@@ -603,6 +842,11 @@
         ],
     }
 
+    def analyse_text(text):
+        # See above
+        if re.match(r'PROC', text, re.I):
+            return True
+
 
 class Ca65Lexer(RegexLexer):
     """
@@ -639,5 +883,111 @@
 
     def analyse_text(self, text):
         # comments in GAS start with "#"
-        if re.match(r'^\s*;', text, re.MULTILINE):
+        if re.search(r'^\s*;', text, re.MULTILINE):
             return 0.9
+
+
+class Dasm16Lexer(RegexLexer):
+    """
+    Simple lexer for DCPU-16 Assembly
+
+    Check http://0x10c.com/doc/dcpu-16.txt
+
+    .. versionadded:: 2.4
+    """
+    name = 'DASM16'
+    aliases = ['dasm16']
+    filenames = ['*.dasm16', '*.dasm']
+    mimetypes = ['text/x-dasm16']
+
+    INSTRUCTIONS = [
+        'SET',
+        'ADD', 'SUB',
+        'MUL', 'MLI',
+        'DIV', 'DVI',
+        'MOD', 'MDI',
+        'AND', 'BOR', 'XOR',
+        'SHR', 'ASR', 'SHL',
+        'IFB', 'IFC', 'IFE', 'IFN', 'IFG', 'IFA', 'IFL', 'IFU',
+        'ADX', 'SBX',
+        'STI', 'STD',
+        'JSR',
+        'INT', 'IAG', 'IAS', 'RFI', 'IAQ', 'HWN', 'HWQ', 'HWI',
+    ]
+
+    REGISTERS = [
+        'A', 'B', 'C',
+        'X', 'Y', 'Z',
+        'I', 'J',
+        'SP', 'PC', 'EX',
+        'POP', 'PEEK', 'PUSH'
+    ]
+
+    # Regexes yo
+    char = r'[a-zA-Z$._0-9@]'
+    identifier = r'(?:[a-zA-Z$_]' + char + r'*|\.' + char + '+)'
+    number = r'[+-]?(?:0[xX][a-zA-Z0-9]+|\d+)'
+    binary_number = r'0b[01_]+'
+    instruction = r'(?i)(' + '|'.join(INSTRUCTIONS) + ')'
+    single_char = r"'\\?" + char + "'"
+    string = r'"(\\"|[^"])*"'
+
+    def guess_identifier(lexer, match):
+        ident = match.group(0)
+        klass = Name.Variable if ident.upper() in lexer.REGISTERS else Name.Label
+        yield match.start(), klass, ident
+
+    tokens = {
+        'root': [
+            include('whitespace'),
+            (':' + identifier, Name.Label),
+            (identifier + ':', Name.Label),
+            (instruction, Name.Function, 'instruction-args'),
+            (r'\.' + identifier, Name.Function, 'data-args'),
+            (r'[\r\n]+', Text)
+        ],
+
+        'numeric' : [
+            (binary_number, Number.Integer),
+            (number, Number.Integer),
+            (single_char, String),
+        ],
+
+        'arg' : [
+            (identifier, guess_identifier),
+            include('numeric')
+        ],
+
+        'deref' : [
+            (r'\+', Punctuation),
+            (r'\]', Punctuation, '#pop'),
+            include('arg'),
+            include('whitespace')
+        ],
+
+        'instruction-line' : [
+            (r'[\r\n]+', Text, '#pop'),
+            (r';.*?$', Comment, '#pop'),
+            include('whitespace')
+        ],
+
+        'instruction-args': [
+            (r',', Punctuation),
+            (r'\[', Punctuation, 'deref'),
+            include('arg'),
+            include('instruction-line')
+        ],
+
+        'data-args' : [
+            (r',', Punctuation),
+            include('numeric'),
+            (string, String),
+            include('instruction-line')
+        ],
+
+        'whitespace': [
+            (r'\n', Text),
+            (r'\s+', Text),
+            (r';.*?\n', Comment)
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/automation.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/automation.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for automation scripting languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/basic.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/basic.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,18 +5,21 @@
 
     Lexers for BASIC like languages (other than VB.net).
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, bygroups, default, words, include
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import Comment, Error, Keyword, Name, Number, \
+    Punctuation, Operator, String, Text, Whitespace
+from pygments.lexers import _vbscript_builtins
+
 
 __all__ = ['BlitzBasicLexer', 'BlitzMaxLexer', 'MonkeyLexer', 'CbmBasicV2Lexer',
-           'QBasicLexer']
+           'QBasicLexer', 'VBScriptLexer', 'BBCBasicLexer']
+
 
 
 class BlitzMaxLexer(RegexLexer):
@@ -498,3 +501,159 @@
     def analyse_text(text):
         if '$DYNAMIC' in text or '$STATIC' in text:
             return 0.9
+
+
+class VBScriptLexer(RegexLexer):
+    """
+    VBScript is scripting language that is modeled on Visual Basic.
+
+    .. versionadded:: 2.4
+    """
+    name = 'VBScript'
+    aliases = ['vbscript']
+    filenames = ['*.vbs', '*.VBS']
+    flags = re.IGNORECASE
+
+    tokens = {
+        'root': [
+            (r"'[^\n]*", Comment.Single),
+            (r'\s+', Whitespace),
+            ('"', String.Double, 'string'),
+            ('&h[0-9a-f]+', Number.Hex),
+            # Float variant 1, for example: 1., 1.e2, 1.2e3
+            (r'[0-9]+\.[0-9]*(e[+-]?[0-9]+)?', Number.Float),
+            (r'\.[0-9]+(e[+-]?[0-9]+)?', Number.Float),  # Float variant 2, for example: .1, .1e2
+            (r'[0-9]+e[+-]?[0-9]+', Number.Float),  # Float variant 3, for example: 123e45
+            (r'\d+', Number.Integer),
+            ('#.+#', String),  # date or time value
+            (r'(dim)(\s+)([a-z_][a-z0-9_]*)',
+             bygroups(Keyword.Declaration, Whitespace, Name.Variable), 'dim_more'),
+            (r'(function|sub)(\s+)([a-z_][a-z0-9_]*)',
+             bygroups(Keyword.Declaration, Whitespace, Name.Function)),
+            (r'(class)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Name.Class)),
+            (r'(const)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Name.Constant)),
+            (r'(end)(\s+)(class|function|if|property|sub|with)', bygroups(Keyword, Whitespace, Keyword)),
+            (r'(on)(\s+)(error)(\s+)(goto)(\s+)(0)',
+             bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword, Whitespace, Number.Integer)),
+            (r'(on)(\s+)(error)(\s+)(resume)(\s+)(next)',
+             bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword, Whitespace, Keyword)),
+            (r'(option)(\s+)(explicit)', bygroups(Keyword, Whitespace, Keyword)),
+            (r'(property)(\s+)(get|let|set)(\s+)([a-z_][a-z0-9_]*)',
+             bygroups(Keyword.Declaration, Whitespace, Keyword.Declaration, Whitespace, Name.Property)),
+            (r'rem\s.*[^\n]*', Comment.Single),
+            (words(_vbscript_builtins.KEYWORDS, suffix=r'\b'), Keyword),
+            (words(_vbscript_builtins.OPERATORS), Operator),
+            (words(_vbscript_builtins.OPERATOR_WORDS, suffix=r'\b'), Operator.Word),
+            (words(_vbscript_builtins.BUILTIN_CONSTANTS, suffix=r'\b'), Name.Constant),
+            (words(_vbscript_builtins.BUILTIN_FUNCTIONS, suffix=r'\b'), Name.Builtin),
+            (words(_vbscript_builtins.BUILTIN_VARIABLES, suffix=r'\b'), Name.Builtin),
+            (r'[a-z_][a-z0-9_]*', Name),
+            (r'\b_\n', Operator),
+            (words(r'(),.:'), Punctuation),
+            (r'.+(\n)?', Error)
+        ],
+        'dim_more': [
+            (r'(\s*)(,)(\s*)([a-z_][a-z0-9]*)', bygroups(Whitespace, Punctuation, Whitespace, Name.Variable)),
+            default('#pop'),
+        ],
+        'string': [
+            (r'[^"\n]+', String.Double),
+            (r'\"\"', String.Double),
+            (r'"', String.Double, '#pop'),
+            (r'\n', Error, '#pop'),  # Unterminated string
+        ],
+    }
+
+
+class BBCBasicLexer(RegexLexer):
+    """
+    BBC Basic was supplied on the BBC Micro, and later Acorn RISC OS.
+    It is also used by BBC Basic For Windows.
+
+    .. versionadded:: 2.4
+    """
+    base_keywords = ['OTHERWISE', 'AND', 'DIV', 'EOR', 'MOD', 'OR', 'ERROR',
+                     'LINE', 'OFF', 'STEP', 'SPC', 'TAB', 'ELSE', 'THEN',
+                     'OPENIN', 'PTR', 'PAGE', 'TIME', 'LOMEM', 'HIMEM', 'ABS',
+                     'ACS', 'ADVAL', 'ASC', 'ASN', 'ATN', 'BGET', 'COS', 'COUNT',
+                     'DEG', 'ERL', 'ERR', 'EVAL', 'EXP', 'EXT', 'FALSE', 'FN',
+                     'GET', 'INKEY', 'INSTR', 'INT', 'LEN', 'LN', 'LOG', 'NOT',
+                     'OPENUP', 'OPENOUT', 'PI', 'POINT', 'POS', 'RAD', 'RND',
+                     'SGN', 'SIN', 'SQR', 'TAN', 'TO', 'TRUE', 'USR', 'VAL',
+                     'VPOS', 'CHR$', 'GET$', 'INKEY$', 'LEFT$', 'MID$',
+                     'RIGHT$', 'STR$', 'STRING$', 'EOF', 'PTR', 'PAGE', 'TIME',
+                     'LOMEM', 'HIMEM', 'SOUND', 'BPUT', 'CALL', 'CHAIN', 'CLEAR',
+                     'CLOSE', 'CLG', 'CLS', 'DATA', 'DEF', 'DIM', 'DRAW', 'END',
+                     'ENDPROC', 'ENVELOPE', 'FOR', 'GOSUB', 'GOTO', 'GCOL', 'IF',
+                     'INPUT', 'LET', 'LOCAL', 'MODE', 'MOVE', 'NEXT', 'ON',
+                     'VDU', 'PLOT', 'PRINT', 'PROC', 'READ', 'REM', 'REPEAT',
+                     'REPORT', 'RESTORE', 'RETURN', 'RUN', 'STOP', 'COLOUR',
+                     'TRACE', 'UNTIL', 'WIDTH', 'OSCLI']
+
+    basic5_keywords = ['WHEN', 'OF', 'ENDCASE', 'ENDIF', 'ENDWHILE', 'CASE',
+                       'CIRCLE', 'FILL', 'ORIGIN', 'POINT', 'RECTANGLE', 'SWAP',
+                       'WHILE', 'WAIT', 'MOUSE', 'QUIT', 'SYS', 'INSTALL',
+                       'LIBRARY', 'TINT', 'ELLIPSE', 'BEATS', 'TEMPO', 'VOICES',
+                       'VOICE', 'STEREO', 'OVERLAY', 'APPEND', 'AUTO', 'CRUNCH',
+                       'DELETE', 'EDIT', 'HELP', 'LIST', 'LOAD', 'LVAR', 'NEW',
+                       'OLD', 'RENUMBER', 'SAVE', 'TEXTLOAD', 'TEXTSAVE',
+                       'TWIN', 'TWINO', 'INSTALL', 'SUM', 'BEAT']
+
+
+    name = 'BBC Basic'
+    aliases = ['bbcbasic']
+    filenames = ['*.bbc']
+
+    tokens = {
+        'root': [
+            (r"[0-9]+", Name.Label),
+            (r"(\*)([^\n]*)",
+             bygroups(Keyword.Pseudo, Comment.Special)),
+            (r"", Whitespace, 'code'),
+        ],
+
+        'code': [
+            (r"(REM)([^\n]*)",
+             bygroups(Keyword.Declaration, Comment.Single)),
+            (r'\n', Whitespace, 'root'),
+            (r'\s+', Whitespace),
+            (r':', Comment.Preproc),
+
+            # Some special cases to make functions come out nicer
+            (r'(DEF)(\s*)(FN|PROC)([A-Za-z_@][\w@]*)',
+             bygroups(Keyword.Declaration, Whitespace, Keyword.Declaration, Name.Function)),
+            (r'(FN|PROC)([A-Za-z_@][\w@]*)',
+             bygroups(Keyword, Name.Function)),
+
+            (r'(GOTO|GOSUB|THEN|RESTORE)(\s*)(\d+)',
+             bygroups(Keyword, Whitespace, Name.Label)),
+
+            (r'(TRUE|FALSE)', Keyword.Constant),
+            (r'(PAGE|LOMEM|HIMEM|TIME|WIDTH|ERL|ERR|REPORT\$|POS|VPOS|VOICES)', Keyword.Pseudo),
+
+            (words(base_keywords), Keyword),
+            (words(basic5_keywords), Keyword),
+
+            ('"', String.Double, 'string'),
+
+            ('%[01]{1,32}', Number.Bin),
+            ('&[0-9a-f]{1,8}', Number.Hex),
+
+            (r'[+-]?[0-9]+\.[0-9]*(E[+-]?[0-9]+)?', Number.Float),
+            (r'[+-]?\.[0-9]+(E[+-]?[0-9]+)?', Number.Float),
+            (r'[+-]?[0-9]+E[+-]?[0-9]+', Number.Float),
+            (r'[+-]?\d+', Number.Integer),
+
+            (r'([A-Za-z_@][\w@]*[%$]?)', Name.Variable),
+            (r'([+\-]=|[$!|?+\-*/%^=><();]|>=|<=|<>|<<|>>|>>>|,)', Operator),
+        ],
+        'string': [
+            (r'[^"\n]+', String.Double),
+            (r'"', String.Double, '#pop'),
+            (r'\n', Error, 'root'),  # Unterminated string
+        ],
+    }
+
+    def analyse_text(text):
+        if text.startswith('10REM >') or text.startswith('REM >'):
+            return 0.9
--- a/eric6/ThirdParty/Pygments/pygments/lexers/bibtex.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/bibtex.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for BibTeX bibliography data and styles
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -33,7 +33,7 @@
     flags = re.IGNORECASE
 
     ALLOWED_CHARS = r'@!$&*+\-./:;<>?\[\\\]^`|~'
-    IDENTIFIER = '[{0}][{1}]*'.format('a-z_' + ALLOWED_CHARS, r'\w' + ALLOWED_CHARS)
+    IDENTIFIER = '[{}][{}]*'.format('a-z_' + ALLOWED_CHARS, r'\w' + ALLOWED_CHARS)
 
     def open_brace_callback(self, match, ctx):
         opening_brace = match.group()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/boa.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.boa
+    ~~~~~~~~~~~~~~~~~~~
+
+    Lexers for the Boa language.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, words
+from pygments.token import String, Comment, Keyword, Name, Number, Text, \
+    Operator, Punctuation
+
+__all__ = ['BoaLexer']
+
+line_re = re.compile('.*?\n')
+
+
+class BoaLexer(RegexLexer):
+    """
+    Lexer for the `Boa <http://boa.cs.iastate.edu/docs/>`_ language.
+
+    .. versionadded:: 2.4
+    """
+    name = 'Boa'
+    aliases = ['boa']
+    filenames = ['*.boa']
+
+    reserved = words(
+        ('input', 'output', 'of', 'weight', 'before', 'after', 'stop',
+         'ifall', 'foreach', 'exists', 'function', 'break', 'switch', 'case',
+         'visitor', 'default', 'return', 'visit', 'while', 'if', 'else'),
+        suffix=r'\b', prefix=r'\b')
+    keywords = words(
+        ('bottom', 'collection', 'maximum', 'mean', 'minimum', 'set', 'sum',
+         'top', 'string', 'int', 'bool', 'float', 'time', 'false', 'true',
+         'array', 'map', 'stack', 'enum', 'type'), suffix=r'\b', prefix=r'\b')
+    classes = words(
+        ('Project', 'ForgeKind', 'CodeRepository', 'Revision', 'RepositoryKind',
+         'ChangedFile', 'FileKind', 'ASTRoot', 'Namespace', 'Declaration', 'Type',
+         'Method', 'Variable', 'Statement', 'Expression', 'Modifier',
+         'StatementKind', 'ExpressionKind', 'ModifierKind', 'Visibility',
+         'TypeKind', 'Person', 'ChangeKind'),
+        suffix=r'\b', prefix=r'\b')
+    operators = ('->', ':=', ':', '=', '<<', '!', '++', '||',
+                 '&&', '+', '-', '*', ">", "<")
+    string_sep = ('`', '\"')
+    built_in_functions = words(
+        (
+            # Array functions
+            'new', 'sort',
+            # Date & Time functions
+            'yearof', 'dayofyear', 'hourof', 'minuteof', 'secondof', 'now',
+            'addday', 'addmonth', 'addweek', 'addyear', 'dayofmonth', 'dayofweek',
+            'dayofyear', 'formattime', 'trunctoday', 'trunctohour', 'trunctominute',
+            'trunctomonth', 'trunctosecond', 'trunctoyear',
+            # Map functions
+            'clear', 'haskey', 'keys', 'lookup', 'remove', 'values',
+            # Math functions
+            'abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh',
+            'ceil', 'cos', 'cosh', 'exp', 'floor', 'highbit', 'isfinite', 'isinf',
+            'isnan', 'isnormal', 'log', 'log10', 'max', 'min', 'nrand', 'pow',
+            'rand', 'round', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc',
+            # Other functions
+            'def', 'hash', 'len',
+            # Set functions
+            'add', 'contains', 'remove',
+            # String functions
+            'format', 'lowercase', 'match', 'matchposns', 'matchstrs', 'regex',
+            'split', 'splitall', 'splitn', 'strfind', 'strreplace', 'strrfind',
+            'substring', 'trim', 'uppercase',
+            # Type Conversion functions
+            'bool', 'float', 'int', 'string', 'time',
+            # Domain-Specific functions
+            'getast', 'getsnapshot', 'hasfiletype', 'isfixingrevision', 'iskind',
+            'isliteral',
+        ),
+        prefix=r'\b',
+        suffix=r'\(')
+
+    tokens = {
+        'root': [
+            (r'#.*?$', Comment.Single),
+            (r'/\*.*?\*/', Comment.Multiline),
+            (reserved, Keyword.Reserved),
+            (built_in_functions, Name.Function),
+            (keywords, Keyword.Type),
+            (classes, Name.Classes),
+            (words(operators), Operator),
+            (r'[][(),;{}\\.]', Punctuation),
+            (r'"(\\\\|\\"|[^"])*"', String),
+            (r'`(\\\\|\\`|[^`])*`', String),
+            (words(string_sep), String.Delimeter),
+            (r'[a-zA-Z_]+', Name.Variable),
+            (r'[0-9]+', Number.Integer),
+            (r'\s+?', Text),  # Whitespace
+        ]
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/business.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/business.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for "business-oriented" languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -504,7 +504,7 @@
 class GoodDataCLLexer(RegexLexer):
     """
     Lexer for `GoodData-CL
-    <http://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/\
+    <https://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/\
 com/gooddata/processor/COMMANDS.txt>`_
     script files.
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/c_cpp.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/c_cpp.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for C/C++ languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -144,21 +144,21 @@
         ]
     }
 
-    stdlib_types = set((
+    stdlib_types = {
         'size_t', 'ssize_t', 'off_t', 'wchar_t', 'ptrdiff_t', 'sig_atomic_t', 'fpos_t',
         'clock_t', 'time_t', 'va_list', 'jmp_buf', 'FILE', 'DIR', 'div_t', 'ldiv_t',
-        'mbstate_t', 'wctrans_t', 'wint_t', 'wctype_t'))
-    c99_types = set((
+        'mbstate_t', 'wctrans_t', 'wint_t', 'wctype_t'}
+    c99_types = {
         '_Bool', '_Complex', 'int8_t', 'int16_t', 'int32_t', 'int64_t', 'uint8_t',
         'uint16_t', 'uint32_t', 'uint64_t', 'int_least8_t', 'int_least16_t',
         'int_least32_t', 'int_least64_t', 'uint_least8_t', 'uint_least16_t',
         'uint_least32_t', 'uint_least64_t', 'int_fast8_t', 'int_fast16_t', 'int_fast32_t',
         'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
-        'intptr_t', 'uintptr_t', 'intmax_t', 'uintmax_t'))
-    linux_types = set((
+        'intptr_t', 'uintptr_t', 'intmax_t', 'uintmax_t'}
+    linux_types = {
         'clockid_t', 'cpu_set_t', 'cpumask_t', 'dev_t', 'gid_t', 'id_t', 'ino_t', 'key_t',
         'mode_t', 'nfds_t', 'pid_t', 'rlim_t', 'sig_t', 'sighandler_t', 'siginfo_t',
-        'sigset_t', 'sigval_t', 'socklen_t', 'timer_t', 'uid_t'))
+        'sigset_t', 'sigval_t', 'socklen_t', 'timer_t', 'uid_t'}
 
     def __init__(self, **options):
         self.stdlibhighlighting = get_bool_opt(options, 'stdlibhighlighting', True)
@@ -218,8 +218,9 @@
                 'try', 'typeid', 'typename', 'using', 'virtual',
                 'constexpr', 'nullptr', 'decltype', 'thread_local',
                 'alignas', 'alignof', 'static_assert', 'noexcept', 'override',
-                'final'), suffix=r'\b'), Keyword),
-            (r'char(16_t|32_t)\b', Keyword.Type),
+                'final', 'constinit', 'consteval', 'concept', 'co_await',
+                'co_return', 'co_yield', 'requires', 'import', 'module'), suffix=r'\b'), Keyword),
+            (r'char(16_t|32_t|8_t)\b', Keyword.Type),
             (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
             # C++11 raw strings
             (r'(R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")',
--- a/eric6/ThirdParty/Pygments/pygments/lexers/c_like.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/c_like.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for other C-like languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -20,7 +20,7 @@
 from pygments.lexers import _mql_builtins
 
 __all__ = ['PikeLexer', 'NesCLexer', 'ClayLexer', 'ECLexer', 'ValaLexer',
-           'CudaLexer', 'SwigLexer', 'MqlLexer', 'ArduinoLexer']
+           'CudaLexer', 'SwigLexer', 'MqlLexer', 'ArduinoLexer', 'CharmciLexer']
 
 
 class PikeLexer(CppLexer):
@@ -291,23 +291,23 @@
     aliases = ['cuda', 'cu']
     mimetypes = ['text/x-cuda']
 
-    function_qualifiers = set(('__device__', '__global__', '__host__',
-                               '__noinline__', '__forceinline__'))
-    variable_qualifiers = set(('__device__', '__constant__', '__shared__',
-                               '__restrict__'))
-    vector_types = set(('char1', 'uchar1', 'char2', 'uchar2', 'char3', 'uchar3',
-                        'char4', 'uchar4', 'short1', 'ushort1', 'short2', 'ushort2',
-                        'short3', 'ushort3', 'short4', 'ushort4', 'int1', 'uint1',
-                        'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'long1',
-                        'ulong1', 'long2', 'ulong2', 'long3', 'ulong3', 'long4',
-                        'ulong4', 'longlong1', 'ulonglong1', 'longlong2',
-                        'ulonglong2', 'float1', 'float2', 'float3', 'float4',
-                        'double1', 'double2', 'dim3'))
-    variables = set(('gridDim', 'blockIdx', 'blockDim', 'threadIdx', 'warpSize'))
-    functions = set(('__threadfence_block', '__threadfence', '__threadfence_system',
-                     '__syncthreads', '__syncthreads_count', '__syncthreads_and',
-                     '__syncthreads_or'))
-    execution_confs = set(('<<<', '>>>'))
+    function_qualifiers = {'__device__', '__global__', '__host__',
+                           '__noinline__', '__forceinline__'}
+    variable_qualifiers = {'__device__', '__constant__', '__shared__',
+                           '__restrict__'}
+    vector_types = {'char1', 'uchar1', 'char2', 'uchar2', 'char3', 'uchar3',
+                    'char4', 'uchar4', 'short1', 'ushort1', 'short2', 'ushort2',
+                    'short3', 'ushort3', 'short4', 'ushort4', 'int1', 'uint1',
+                    'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'long1',
+                    'ulong1', 'long2', 'ulong2', 'long3', 'ulong3', 'long4',
+                    'ulong4', 'longlong1', 'ulonglong1', 'longlong2',
+                    'ulonglong2', 'float1', 'float2', 'float3', 'float4',
+                    'double1', 'double2', 'dim3'}
+    variables = {'gridDim', 'blockIdx', 'blockDim', 'threadIdx', 'warpSize'}
+    functions = {'__threadfence_block', '__threadfence', '__threadfence_system',
+                 '__syncthreads', '__syncthreads_count', '__syncthreads_and',
+                 '__syncthreads_or'}
+    execution_confs = {'<<<', '>>>'}
 
     def get_tokens_unprocessed(self, text):
         for index, token, value in CLexer.get_tokens_unprocessed(self, text):
@@ -352,7 +352,7 @@
     }
 
     # This is a far from complete set of SWIG directives
-    swig_directives = set((
+    swig_directives = {
         # Most common directives
         '%apply', '%define', '%director', '%enddef', '%exception', '%extend',
         '%feature', '%fragment', '%ignore', '%immutable', '%import', '%include',
@@ -371,7 +371,7 @@
         '%pythoncallback', '%pythoncode', '%pythondynamic', '%pythonmaybecall',
         '%pythonnondynamic', '%pythonprepend', '%refobject', '%shadow', '%sizeof',
         '%trackobjects', '%types', '%unrefobject', '%varargs', '%warn',
-        '%warnfilter'))
+        '%warnfilter'}
 
     def analyse_text(text):
         rv = 0
@@ -412,6 +412,7 @@
         ],
     }
 
+
 class ArduinoLexer(CppLexer):
     """
     For `Arduino(tm) <https://arduino.cc/>`_ source.
@@ -428,13 +429,13 @@
     mimetypes = ['text/x-arduino']
 
     # Language sketch main structure functions
-    structure = set(('setup', 'loop'))
+    structure = {'setup', 'loop'}
 
     # Language operators
-    operators = set(('not', 'or', 'and', 'xor'))
+    operators = {'not', 'or', 'and', 'xor'}
 
     # Language 'variables'
-    variables = set((
+    variables = {
         'DIGITAL_MESSAGE', 'FIRMATA_STRING', 'ANALOG_MESSAGE', 'REPORT_DIGITAL',
         'REPORT_ANALOG', 'INPUT_PULLUP', 'SET_PIN_MODE', 'INTERNAL2V56', 'SYSTEM_RESET',
         'LED_BUILTIN', 'INTERNAL1V1', 'SYSEX_START', 'INTERNAL', 'EXTERNAL', 'HIGH',
@@ -451,10 +452,10 @@
         'signed', 'inline', 'delete', '_Bool', 'complex', '_Complex', '_Imaginary',
         'atomic_bool', 'atomic_char', 'atomic_schar', 'atomic_uchar', 'atomic_short',
         'atomic_ushort', 'atomic_int', 'atomic_uint', 'atomic_long', 'atomic_ulong',
-        'atomic_llong', 'atomic_ullong', 'PROGMEM'))
+        'atomic_llong', 'atomic_ullong', 'PROGMEM'}
 
     # Language shipped functions and class ( )
-    functions = set((
+    functions = {
         'KeyboardController', 'MouseController', 'SoftwareSerial', 'EthernetServer',
         'EthernetClient', 'LiquidCrystal', 'RobotControl', 'GSMVoiceCall',
         'EthernetUDP', 'EsploraTFT', 'HttpClient', 'RobotMotor', 'WiFiClient',
@@ -514,16 +515,15 @@
         'peek', 'beep', 'rect', 'line', 'open', 'seek', 'fill', 'size', 'turn', 'stop',
         'home', 'find', 'step', 'tone', 'sqrt', 'RSSI', 'SSID', 'end', 'bit', 'tan',
         'cos', 'sin', 'pow', 'map', 'abs', 'max', 'min', 'get', 'run', 'put',
-        'isAlphaNumeric', 'isAlpha', 'isAscii', 'isWhitespace', 'isControl', 'isDigit', 
-        'isGraph', 'isLowerCase', 'isPrintable', 'isPunct', 'isSpace', 'isUpperCase', 
-        'isHexadecimalDigit'))    
+        'isAlphaNumeric', 'isAlpha', 'isAscii', 'isWhitespace', 'isControl', 'isDigit',
+        'isGraph', 'isLowerCase', 'isPrintable', 'isPunct', 'isSpace', 'isUpperCase',
+        'isHexadecimalDigit'}
 
     # do not highlight
-    suppress_highlight = set((
-        'namespace', 'template', 'mutable', 'using', 'asm', 'typeid', 
-        'typename', 'this', 'alignof', 'constexpr', 'decltype', 'noexcept', 
-        'static_assert', 'thread_local', 'restrict'))
-
+    suppress_highlight = {
+        'namespace', 'template', 'mutable', 'using', 'asm', 'typeid',
+        'typename', 'this', 'alignof', 'constexpr', 'decltype', 'noexcept',
+        'static_assert', 'thread_local', 'restrict'}
 
     def get_tokens_unprocessed(self, text):
         for index, token, value in CppLexer.get_tokens_unprocessed(self, text):
@@ -539,3 +539,33 @@
                 yield index, Name.Function, value
             else:
                 yield index, token, value
+
+
+class CharmciLexer(CppLexer):
+    """
+    For `Charm++ <https://charm.cs.illinois.edu>`_ interface files (.ci).
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'Charmci'
+    aliases = ['charmci']
+    filenames = ['*.ci']
+
+    mimetypes = []
+
+    tokens = {
+        'statements': [
+            (r'(module)(\s+)', bygroups(Keyword, Text), 'classname'),
+            (words(('mainmodule', 'mainchare', 'chare', 'array', 'group',
+                    'nodegroup', 'message', 'conditional')), Keyword),
+            (words(('entry', 'aggregate', 'threaded', 'sync', 'exclusive',
+                    'nokeep', 'notrace', 'immediate', 'expedited', 'inline',
+                    'local', 'python', 'accel', 'readwrite', 'writeonly',
+                    'accelblock', 'memcritical', 'packed', 'varsize',
+                    'initproc', 'initnode', 'initcall', 'stacksize',
+                    'createhere', 'createhome', 'reductiontarget', 'iget',
+                    'nocopy', 'mutable', 'migratable', 'readonly')), Keyword),
+            inherit,
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/capnproto.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/capnproto.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Cap'n Proto schema language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/chapel.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/chapel.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Chapel language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -38,24 +38,24 @@
 
             (r'(config|const|in|inout|out|param|ref|type|var)\b',
              Keyword.Declaration),
-            (r'(false|nil|true)\b', Keyword.Constant),
-            (r'(bool|complex|imag|int|opaque|range|real|string|uint)\b',
+            (r'(false|nil|none|true)\b', Keyword.Constant),
+            (r'(bool|bytes|complex|imag|int|nothing|opaque|range|real|string|uint|void)\b',
              Keyword.Type),
             (words((
                 'align', 'as', 'atomic',
                 'begin', 'borrowed', 'break', 'by',
                 'catch', 'cobegin', 'coforall', 'continue',
-                'delete', 'dmapped', 'do', 'domain',
+                'defer', 'delete', 'dmapped', 'do', 'domain',
                 'else', 'enum', 'except', 'export', 'extern',
-                'for', 'forall',
-                'if', 'index', 'inline',
-                'label', 'lambda', 'let', 'local',
+                'for', 'forall', 'forwarding',
+                'if', 'index', 'init', 'inline',
+                'label', 'lambda', 'let', 'lifetime', 'local', 'locale'
                 'new', 'noinit',
                 'on', 'only', 'otherwise', 'override', 'owned',
                 'pragma', 'private', 'prototype', 'public',
                 'reduce', 'require', 'return',
                 'scan', 'select', 'serial', 'shared', 'single', 'sparse', 'subdomain', 'sync',
-                'then', 'throw', 'throws', 'try',
+                'then', 'this', 'throw', 'throws', 'try',
                 'unmanaged', 'use',
                 'when', 'where', 'while', 'with',
                 'yield',
--- a/eric6/ThirdParty/Pygments/pygments/lexers/clean.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/clean.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Clean language.
 
-    :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/compiled.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/compiled.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Just export lexer classes previously contained in this module.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/configs.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/configs.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for configuration file formats.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -21,7 +21,7 @@
            'Cfengine3Lexer', 'ApacheConfLexer', 'SquidConfLexer',
            'NginxConfLexer', 'LighttpdConfLexer', 'DockerLexer',
            'TerraformLexer', 'TermcapLexer', 'TerminfoLexer',
-           'PkgConfigLexer', 'PacmanConfLexer']
+           'PkgConfigLexer', 'PacmanConfLexer', 'AugeasLexer', 'TOMLLexer']
 
 
 class IniLexer(RegexLexer):
@@ -300,11 +300,10 @@
     tokens = {
         'root': [
             (r'\s+', Text),
-            (r'(#.*?)$', Comment),
-            (r'(<[^\s>]+)(?:(\s+)(.*?))?(>)',
+            (r'#(.*\\\n)+.*$|(#.*?)$', Comment),
+            (r'(<[^\s>]+)(?:(\s+)(.*))?(>)',
              bygroups(Name.Tag, Text, String, Name.Tag)),
-            (r'([a-z]\w*)(\s+)',
-             bygroups(Name.Builtin, Text), 'value'),
+            (r'[a-z]\w*', Name.Builtin, 'value'),
             (r'\.+', Text),
         ],
         'value': [
@@ -314,12 +313,12 @@
             (r'[^\S\n]+', Text),
             (r'\d+\.\d+\.\d+\.\d+(?:/\d+)?', Number),
             (r'\d+', Number),
-            (r'/([a-z0-9][\w./-]+)', String.Other),
+            (r'/([*a-z0-9][*\w./-]+)', String.Other),
             (r'(on|off|none|any|all|double|email|dns|min|minimal|'
              r'os|productonly|full|emerg|alert|crit|error|warn|'
              r'notice|info|debug|registry|script|inetd|standalone|'
              r'user|group)\b', Keyword),
-            (r'"([^"\\]*(?:\\.[^"\\]*)*)"', String.Double),
+            (r'"([^"\\]*(?:\\(.|[\n])[^"\\]*)*)"', String.Double),
             (r'[^\s"\\]+', Text)
         ],
     }
@@ -540,14 +539,16 @@
     filenames = ['Dockerfile', '*.docker']
     mimetypes = ['text/x-dockerfile-config']
 
-    _keywords = (r'(?:FROM|MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)')
+    _keywords = (r'(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)')
     _bash_keywords = (r'(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)')
-    _lb = r'(?:\s*\\?\s*)' # dockerfile line break regex
+    _lb = r'(?:\s*\\?\s*)'  # dockerfile line break regex
     flags = re.IGNORECASE | re.MULTILINE
 
     tokens = {
         'root': [
             (r'#.*', Comment),
+            (r'(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?',
+             bygroups(Keyword, Text, String, Text, Keyword, Text, String)),
             (r'(ONBUILD)(%s)' % (_lb,), bygroups(Keyword, using(BashLexer))),
             (r'(HEALTHCHECK)((%s--\w+=\w+%s)*)' % (_lb, _lb),
                 bygroups(Keyword, using(BashLexer))),
@@ -574,30 +575,35 @@
     filenames = ['*.tf']
     mimetypes = ['application/x-tf', 'application/x-terraform']
 
+    embedded_keywords = ('ingress', 'egress', 'listener', 'default',
+                         'connection', 'alias', 'terraform', 'tags', 'vars',
+                         'config', 'lifecycle', 'timeouts')
+
     tokens = {
         'root': [
-             include('string'),
-             include('punctuation'),
-             include('curly'),
-             include('basic'),
-             include('whitespace'),
-             (r'[0-9]+', Number),
+            include('string'),
+            include('punctuation'),
+            include('curly'),
+            include('basic'),
+            include('whitespace'),
+            (r'[0-9]+', Number),
         ],
         'basic': [
-             (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
-             (r'\s*/\*', Comment.Multiline, 'comment'),
-             (r'\s*#.*\n', Comment.Single),
-             (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
-             (words(('variable', 'resource', 'provider', 'provisioner', 'module'),
-                    prefix=r'\b', suffix=r'\b'), Keyword.Reserved, 'function'),
-             (words(('ingress', 'egress', 'listener', 'default', 'connection', 'alias'),
-                    prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
-             (r'\$\{', String.Interpol, 'var_builtin'),
+            (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
+            (r'\s*/\*', Comment.Multiline, 'comment'),
+            (r'\s*#.*\n', Comment.Single),
+            (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
+            (words(('variable', 'resource', 'provider', 'provisioner', 'module',
+                    'backend', 'data', 'output'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Reserved, 'function'),
+            (words(embedded_keywords, prefix=r'\b', suffix=r'\b'),
+             Keyword.Declaration),
+            (r'\$\{', String.Interpol, 'var_builtin'),
         ],
         'function': [
-             (r'(\s+)(".*")(\s+)', bygroups(Text, String, Text)),
-             include('punctuation'),
-             include('curly'),
+            (r'(\s+)(".*")(\s+)', bygroups(Text, String, Text)),
+            include('punctuation'),
+            include('curly'),
         ],
         'var_builtin': [
             (r'\$\{', String.Interpol, '#push'),
@@ -837,3 +843,97 @@
             (r'.', Text),
         ],
     }
+
+
+class AugeasLexer(RegexLexer):
+    """
+    Lexer for `Augeas <http://augeas.net>`_.
+
+    .. versionadded:: 2.4
+    """
+    name = 'Augeas'
+    aliases = ['augeas']
+    filenames = ['*.aug']
+
+    tokens = {
+        'root': [
+            (r'(module)(\s*)([^\s=]+)', bygroups(Keyword.Namespace, Text, Name.Namespace)),
+            (r'(let)(\s*)([^\s=]+)', bygroups(Keyword.Declaration, Text, Name.Variable)),
+            (r'(del|store|value|counter|seq|key|label|autoload|incl|excl|transform|test|get|put)(\s+)', bygroups(Name.Builtin, Text)),
+            (r'(\()([^:]+)(\:)(unit|string|regexp|lens|tree|filter)(\))', bygroups(Punctuation, Name.Variable, Punctuation, Keyword.Type, Punctuation)),
+            (r'\(\*', Comment.Multiline, 'comment'),
+            (r'[*+\-.;=?|]', Operator),
+            (r'[()\[\]{}]', Operator),
+            (r'"', String.Double, 'string'),
+            (r'\/', String.Regex, 'regex'),
+            (r'([A-Z]\w*)(\.)(\w+)', bygroups(Name.Namespace, Punctuation, Name.Variable)),
+            (r'.', Name.Variable),
+            (r'\s', Text),
+        ],
+        'string': [
+            (r'\\.', String.Escape),
+            (r'[^"]', String.Double),
+            (r'"', String.Double, '#pop'),
+        ],
+        'regex': [
+            (r'\\.', String.Escape),
+            (r'[^/]', String.Regex),
+            (r'\/', String.Regex, '#pop'),
+        ],
+        'comment': [
+            (r'[^*)]', Comment.Multiline),
+            (r'\(\*', Comment.Multiline, '#push'),
+            (r'\*\)', Comment.Multiline, '#pop'),
+            (r'[)*]', Comment.Multiline)
+        ],
+    }
+
+
+class TOMLLexer(RegexLexer):
+    """
+    Lexer for `TOML <https://github.com/toml-lang/toml>`_, a simple language
+    for config files.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'TOML'
+    aliases = ['toml']
+    filenames = ['*.toml', 'Pipfile', 'poetry.lock']
+
+    tokens = {
+        'root': [
+
+            # Basics, comments, strings
+            (r'\s+', Text),
+            (r'#.*?$', Comment.Single),
+            # Basic string
+            (r'"(\\\\|\\"|[^"])*"', String),
+            # Literal string
+            (r'\'\'\'(.*)\'\'\'', String),
+            (r'\'[^\']*\'', String),
+            (r'(true|false)$', Keyword.Constant),
+            (r'[a-zA-Z_][\w\-]*', Name),
+
+            (r'\[.*?\]$', Keyword),
+            # Datetime
+            # TODO this needs to be expanded, as TOML is rather flexible:
+            # https://github.com/toml-lang/toml#offset-date-time
+            (r'\d{4}-\d{2}-\d{2}(?:T| )\d{2}:\d{2}:\d{2}(?:Z|[-+]\d{2}:\d{2})', Number.Integer),
+
+            # Numbers
+            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
+            (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
+            # Handle +-inf, +-infinity, +-nan
+            (r'[+-]?(?:(inf(?:inity)?)|nan)', Number.Float),
+            (r'[+-]?\d+', Number.Integer),
+
+            # Punctuation
+            (r'[]{}:(),;[]', Punctuation),
+            (r'\.', Punctuation),
+
+            # Operators
+            (r'=', Operator)
+
+        ]
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/console.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/console.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for misc console output.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/crystal.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/crystal.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for Crystal.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/csound.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/csound.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Csound languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -35,6 +35,7 @@
 
         'preprocessor directives': [
             (r'#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+', Comment.Preproc),
+            (r'#includestr', Comment.Preproc, 'includestr directive'),
             (r'#include', Comment.Preproc, 'include directive'),
             (r'#[ \t]*define', Comment.Preproc, 'define directive'),
             (r'#(?:ifn?def|undef)\b', Comment.Preproc, 'macro directive')
@@ -44,6 +45,10 @@
             include('whitespace'),
             (r'([^ \t]).*?\1', String, '#pop')
         ],
+        'includestr directive': [
+            include('whitespace'),
+            (r'"', String, ('#pop', 'quoted string'))
+        ],
 
         'define directive': [
             (r'\n', Text),
@@ -114,6 +119,13 @@
             (r'\d+', Number.Integer)
         ],
 
+        'quoted string': [
+            (r'"', String, '#pop'),
+            (r'[^"$]+', String),
+            include('macro uses'),
+            (r'[$]', String)
+        ],
+
         'braced string': [
             # Do nothing. This must be defined in subclasses.
         ]
@@ -122,7 +134,7 @@
 
 class CsoundScoreLexer(CsoundLexer):
     """
-    For `Csound <https://csound.github.io>`_ scores.
+    For `Csound <https://csound.com>`_ scores.
 
     .. versionadded:: 2.1
     """
@@ -144,7 +156,7 @@
             (r'z', Keyword.Constant),
             # z is a constant equal to 800,000,000,000. 800 billion seconds is about
             # 25,367.8 years. See also
-            # https://csound.github.io/docs/manual/ScoreTop.html and
+            # https://csound.com/docs/manual/ScoreTop.html and
             # https://github.com/csound/csound/search?q=stof+path%3AEngine+filename%3Asread.c.
 
             (r'([nNpP][pP])(\d+)', bygroups(Keyword, Number.Integer)),
@@ -164,13 +176,6 @@
             (r'\n', Text, '#pop')
         ],
 
-        'quoted string': [
-            (r'"', String, '#pop'),
-            (r'[^"$]+', String),
-            include('macro uses'),
-            (r'[$]', String)
-        ],
-
         'loop after left brace': [
             include('whitespace and macro uses'),
             (r'\d+', Number.Integer, ('#pop', 'loop after repeat count')),
@@ -184,8 +189,8 @@
             include('root')
         ],
 
-        # Braced strings are not allowed in Csound scores, but this is needed
-        # because the superclass includes it.
+        # Braced strings are not allowed in Csound scores, but this is needed because the
+        # superclass includes it.
         'braced string': [
             (r'\}\}', String, '#pop'),
             (r'[^}]|\}(?!\})', String)
@@ -195,7 +200,7 @@
 
 class CsoundOrchestraLexer(CsoundLexer):
     """
-    For `Csound <https://csound.github.io>`_ orchestras.
+    For `Csound <https://csound.com>`_ orchestras.
 
     .. versionadded:: 2.1
     """
@@ -212,24 +217,25 @@
         yield match.start(), Name.Function, opcode
 
     def name_callback(lexer, match):
+        type_annotation_token = Keyword.Type
+
         name = match.group(1)
         if name in OPCODES or name in DEPRECATED_OPCODES:
             yield match.start(), Name.Builtin, name
-            if match.group(2):
-                yield match.start(2), Punctuation, match.group(2)
-                yield match.start(3), Keyword.Type, match.group(3)
         elif name in lexer.user_defined_opcodes:
             yield match.start(), Name.Function, name
         else:
-            nameMatch = re.search(r'^(g?[afikSw])(\w+)', name)
-            if nameMatch:
-                yield nameMatch.start(1), Keyword.Type, nameMatch.group(1)
-                yield nameMatch.start(2), Name, nameMatch.group(2)
+            type_annotation_token = Name
+            name_match = re.search(r'^(g?[afikSw])(\w+)', name)
+            if name_match:
+                yield name_match.start(1), Keyword.Type, name_match.group(1)
+                yield name_match.start(2), Name, name_match.group(2)
             else:
                 yield match.start(), Name, name
-                if match.group(2):
-                    yield match.start(2), Punctuation, match.group(2)
-                    yield match.start(3), Name, match.group(3)
+
+        if match.group(2):
+            yield match.start(2), Punctuation, match.group(2)
+            yield match.start(3), type_annotation_token, match.group(3)
 
     tokens = {
         'root': [
@@ -324,15 +330,15 @@
             (r'\\(?:[\\abnrt"]|[0-7]{1,3})', String.Escape)
         ],
         # Format specifiers are highlighted in all strings, even though only
-        #   fprintks        https://csound.github.io/docs/manual/fprintks.html
-        #   fprints         https://csound.github.io/docs/manual/fprints.html
-        #   printf/printf_i https://csound.github.io/docs/manual/printf.html
-        #   printks         https://csound.github.io/docs/manual/printks.html
-        #   prints          https://csound.github.io/docs/manual/prints.html
-        #   sprintf         https://csound.github.io/docs/manual/sprintf.html
-        #   sprintfk        https://csound.github.io/docs/manual/sprintfk.html
-        # work with strings that contain format specifiers. In addition, these
-        # opcodes’ handling of format specifiers is inconsistent:
+        #   fprintks        https://csound.com/docs/manual/fprintks.html
+        #   fprints         https://csound.com/docs/manual/fprints.html
+        #   printf/printf_i https://csound.com/docs/manual/printf.html
+        #   printks         https://csound.com/docs/manual/printks.html
+        #   prints          https://csound.com/docs/manual/prints.html
+        #   sprintf         https://csound.com/docs/manual/sprintf.html
+        #   sprintfk        https://csound.com/docs/manual/sprintfk.html
+        # work with strings that contain format specifiers. In addition, these opcodes’
+        # handling of format specifiers is inconsistent:
         #   - fprintks, fprints, printks, and prints do accept %a and %A
         #     specifiers, but can’t accept %s specifiers.
         #   - printf, printf_i, sprintf, and sprintfk don’t accept %a and %A
@@ -367,6 +373,7 @@
 
         'Csound score opcode': [
             include('whitespace and macro uses'),
+            (r'"', String, 'quoted string'),
             (r'\{\{', String, 'Csound score'),
             (r'\n', Text, '#pop')
         ],
@@ -377,6 +384,7 @@
 
         'Python opcode': [
             include('whitespace and macro uses'),
+            (r'"', String, 'quoted string'),
             (r'\{\{', String, 'Python'),
             (r'\n', Text, '#pop')
         ],
@@ -387,6 +395,7 @@
 
         'Lua opcode': [
             include('whitespace and macro uses'),
+            (r'"', String, 'quoted string'),
             (r'\{\{', String, 'Lua'),
             (r'\n', Text, '#pop')
         ],
@@ -399,7 +408,7 @@
 
 class CsoundDocumentLexer(RegexLexer):
     """
-    For `Csound <https://csound.github.io>`_ documents.
+    For `Csound <https://csound.com>`_ documents.
 
     .. versionadded:: 2.1
     """
--- a/eric6/ThirdParty/Pygments/pygments/lexers/css.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/css.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for CSS and related stylesheet formats.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -16,7 +16,6 @@
     default, words, inherit
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation
-from pygments.util import iteritems
 
 __all__ = ['CssLexer', 'SassLexer', 'ScssLexer', 'LessCssLexer']
 
@@ -612,7 +611,7 @@
             (r"\*/", Comment, '#pop'),
         ],
     }
-    for group, common in iteritems(common_sass_tokens):
+    for group, common in common_sass_tokens.items():
         tokens[group] = copy.copy(common)
     tokens['value'].append((r'\n', Text, 'root'))
     tokens['selector'].append((r'\n', Text, 'root'))
@@ -662,7 +661,7 @@
             (r"\*/", Comment, '#pop'),
         ],
     }
-    for group, common in iteritems(common_sass_tokens):
+    for group, common in common_sass_tokens.items():
         tokens[group] = copy.copy(common)
     tokens['value'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
     tokens['selector'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
--- a/eric6/ThirdParty/Pygments/pygments/lexers/d.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/d.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for D languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -47,12 +47,17 @@
                 'module', 'new', 'nothrow', 'out', 'override', 'package', 'pragma',
                 'private', 'protected', 'public', 'pure', 'ref', 'return', 'scope',
                 'shared', 'static', 'struct', 'super', 'switch', 'synchronized',
-                'template', 'this', 'throw', 'try', 'typedef', 'typeid', 'typeof',
+                'template', 'this', 'throw', 'try', 'typeid', 'typeof',
                 'union', 'unittest', 'version', 'volatile', 'while', 'with',
                 '__gshared', '__traits', '__vector', '__parameters'),
                 suffix=r'\b'),
              Keyword),
             (words((
+                # Removed in 2.072
+                'typedef', ),
+                suffix=r'\b'),
+             Keyword.Removed),
+            (words((
                 'bool', 'byte', 'cdouble', 'cent', 'cfloat', 'char', 'creal',
                 'dchar', 'double', 'float', 'idouble', 'ifloat', 'int', 'ireal',
                 'long', 'real', 'short', 'ubyte', 'ucent', 'uint', 'ulong',
@@ -60,9 +65,9 @@
              Keyword.Type),
             (r'(false|true|null)\b', Keyword.Constant),
             (words((
-                '__FILE__', '__MODULE__', '__LINE__', '__FUNCTION__', '__PRETTY_FUNCTION__'
-                '', '__DATE__', '__EOF__', '__TIME__', '__TIMESTAMP__', '__VENDOR__',
-                '__VERSION__'), suffix=r'\b'),
+                '__FILE__', '__FILE_FULL_PATH__', '__MODULE__', '__LINE__', '__FUNCTION__',
+                '__PRETTY_FUNCTION__', '__DATE__', '__EOF__', '__TIME__', '__TIMESTAMP__',
+                '__VENDOR__', '__VERSION__'), suffix=r'\b'),
              Keyword.Pseudo),
             (r'macro\b', Keyword.Reserved),
             (r'(string|wstring|dstring|size_t|ptrdiff_t)\b', Name.Builtin),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/dalvik.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/dalvik.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Pygments lexers for Dalvik VM-related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/data.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/data.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for data file format.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -233,7 +233,7 @@
             # whitespaces separating tokens
             (r'[ ]+', Text),
             # key with colon
-            (r'([^,:?\[\]{}\n]+)(:)(?=[ ]|$)',
+            (r'''([^#,:?\[\]{}"'\n]+)(:)(?=[ ]|$)''',
              bygroups(Name.Tag, set_indent(Punctuation, implicit=True))),
             # tags, anchors and aliases,
             include('descriptors'),
@@ -312,7 +312,7 @@
         # a flow mapping indicated by '{' and '}'
         'flow-mapping': [
             # key with colon
-            (r'([^,:?\[\]{}\n]+)(:)(?=[ ]|$)',
+            (r'''([^,:?\[\]{}"'\n]+)(:)(?=[ ]|$)''',
              bygroups(Name.Tag, Punctuation)),
             # include flow collection rules
             include('flow-collection'),
@@ -445,7 +445,7 @@
 
     name = 'JSON'
     aliases = ['json']
-    filenames = ['*.json']
+    filenames = ['*.json', 'Pipfile.lock']
     mimetypes = ['application/json']
 
     flags = re.DOTALL
--- a/eric6/ThirdParty/Pygments/pygments/lexers/diff.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/diff.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for diff/patch formats.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/dotnet.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/dotnet.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for .net languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 import re
@@ -14,7 +14,7 @@
     using, this, default, words
 from pygments.token import Punctuation, \
     Text, Comment, Operator, Keyword, Name, String, Number, Literal, Other
-from pygments.util import get_choice_opt, iteritems
+from pygments.util import get_choice_opt
 from pygments import unistring as uni
 
 from pygments.lexers.html import XmlLexer
@@ -71,7 +71,7 @@
     tokens = {}
     token_variants = True
 
-    for levelname, cs_ident in iteritems(levels):
+    for levelname, cs_ident in levels.items():
         tokens[levelname] = {
             'root': [
                 # method names
@@ -184,7 +184,7 @@
     tokens = {}
     token_variants = True
 
-    for levelname, cs_ident in iteritems(levels):
+    for levelname, cs_ident in levels.items():
         tokens[levelname] = {
             'root': [
                 # method names
@@ -541,16 +541,13 @@
 # Very close to functional.OcamlLexer
 class FSharpLexer(RegexLexer):
     """
-    For the F# language (version 3.0).
-
-    AAAAACK Strings
-    http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc335818775
+    For the `F# language <https://fsharp.org/>`_ (version 3.0).
 
     .. versionadded:: 1.5
     """
 
-    name = 'FSharp'
-    aliases = ['fsharp']
+    name = 'F#'
+    aliases = ['fsharp', 'f#']
     filenames = ['*.fs', '*.fsi']
     mimetypes = ['text/x-fsharp']
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/dsls.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/dsls.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for various domain-specific languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -16,7 +16,7 @@
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation, Literal, Whitespace
 
-__all__ = ['ProtoBufLexer', 'BroLexer', 'PuppetLexer', 'RslLexer',
+__all__ = ['ProtoBufLexer', 'ZeekLexer', 'PuppetLexer', 'RslLexer',
            'MscgenLexer', 'VGLLexer', 'AlloyLexer', 'PanLexer',
            'CrmshLexer', 'ThriftLexer', 'FlatlineLexer', 'SnowballLexer']
 
@@ -40,9 +40,9 @@
             (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
             (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
             (words((
-                'import', 'option', 'optional', 'required', 'repeated', 'default',
-                'packed', 'ctype', 'extensions', 'to', 'max', 'rpc', 'returns',
-                'oneof'), prefix=r'\b', suffix=r'\b'),
+                'import', 'option', 'optional', 'required', 'repeated',
+                'reserved', 'default', 'packed', 'ctype', 'extensions', 'to',
+                'max', 'rpc', 'returns', 'oneof'), prefix=r'\b', suffix=r'\b'),
              Keyword),
             (words((
                 'int32', 'int64', 'uint32', 'uint64', 'sint32', 'sint64',
@@ -188,84 +188,166 @@
     }
 
 
-class BroLexer(RegexLexer):
+class ZeekLexer(RegexLexer):
     """
-    For `Bro <http://bro-ids.org/>`_ scripts.
+    For `Zeek <https://www.zeek.org/>`_ scripts.
 
-    .. versionadded:: 1.5
+    .. versionadded:: 2.5
     """
-    name = 'Bro'
-    aliases = ['bro']
-    filenames = ['*.bro']
+    name = 'Zeek'
+    aliases = ['zeek', 'bro']
+    filenames = ['*.zeek', '*.bro']
 
-    _hex = r'[0-9a-fA-F_]'
+    _hex = r'[0-9a-fA-F]'
     _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?'
     _h = r'[A-Za-z0-9][-A-Za-z0-9]*'
 
     tokens = {
         'root': [
-            # Whitespace
-            (r'^@.*?\n', Comment.Preproc),
-            (r'#.*?\n', Comment.Single),
+            include('whitespace'),
+            include('comments'),
+            include('directives'),
+            include('attributes'),
+            include('types'),
+            include('keywords'),
+            include('literals'),
+            include('operators'),
+            include('punctuation'),
+            (r'((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()',
+                Name.Function),
+            include('identifiers'),
+        ],
+
+        'whitespace': [
             (r'\n', Text),
             (r'\s+', Text),
             (r'\\\n', Text),
-            # Keywords
-            (r'(add|alarm|break|case|const|continue|delete|do|else|enum|event'
-             r'|export|for|function|if|global|hook|local|module|next'
-             r'|of|print|redef|return|schedule|switch|type|when|while)\b', Keyword),
-            (r'(addr|any|bool|count|counter|double|file|int|interval|net'
-             r'|pattern|port|record|set|string|subnet|table|time|timer'
-             r'|vector)\b', Keyword.Type),
+        ],
+
+        'comments': [
+            (r'#.*$', Comment),
+        ],
+
+        'directives': [
+            (r'@(load-plugin|load-sigs|load|unload)\b.*$', Comment.Preproc),
+            (r'@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif)\b', Comment.Preproc),
+            (r'(@prefixes)\s*(\+?=).*$', Comment.Preproc),
+        ],
+
+        'attributes': [
+            (words(('redef', 'priority', 'log', 'optional', 'default', 'add_func',
+                    'delete_func', 'expire_func', 'read_expire', 'write_expire',
+                    'create_expire', 'synchronized', 'persistent', 'rotate_interval',
+                    'rotate_size', 'encrypt', 'raw_output', 'mergeable', 'error_handler',
+                    'type_column', 'deprecated'),
+                prefix=r'&', suffix=r'\b'),
+             Keyword.Pseudo),
+        ],
+
+        'types': [
+            (words(('any',
+                    'enum', 'record', 'set', 'table', 'vector',
+                    'function', 'hook', 'event',
+                    'addr', 'bool', 'count', 'double', 'file', 'int', 'interval',
+                    'pattern', 'port', 'string', 'subnet', 'time'),
+                suffix=r'\b'),
+             Keyword.Type),
+
+            (r'(opaque)(\s+)(of)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b',
+                bygroups(Keyword.Type, Text, Operator.Word, Text, Keyword.Type)),
+
+            (r'(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)(\s*)\b(record|enum)\b',
+                bygroups(Keyword, Text, Name.Class, Text, Operator, Text, Keyword.Type)),
+
+            (r'(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)',
+                bygroups(Keyword, Text, Name, Text, Operator)),
+
+            (r'(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b',
+                bygroups(Keyword, Text, Keyword.Type, Text, Name.Class)),
+        ],
+
+        'keywords': [
+            (words(('redef', 'export', 'if', 'else', 'for', 'while',
+                    'return', 'break', 'next', 'continue', 'fallthrough',
+                    'switch', 'default', 'case',
+                    'add', 'delete',
+                    'when', 'timeout', 'schedule'),
+                suffix=r'\b'),
+             Keyword),
+            (r'(print)\b', Keyword),
+            (r'(global|local|const|option)\b', Keyword.Declaration),
+            (r'(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\b',
+                bygroups(Keyword.Namespace, Text, Name.Namespace)),
+        ],
+
+        'literals': [
+            (r'"', String, 'string'),
+
+            # Not the greatest match for patterns, but generally helps
+            # disambiguate between start of a pattern and just a division
+            # operator.
+            (r'/(?=.*/)', String.Regex, 'regex'),
+
             (r'(T|F)\b', Keyword.Constant),
-            (r'(&)((?:add|delete|expire)_func|attr|(?:create|read|write)_expire'
-             r'|default|disable_print_hook|raw_output|encrypt|group|log'
-             r'|mergeable|optional|persistent|priority|redef'
-             r'|rotate_(?:interval|size)|synchronized)\b',
-             bygroups(Punctuation, Keyword)),
-            (r'\s+module\b', Keyword.Namespace),
-            # Addresses, ports and networks
-            (r'\d+/(tcp|udp|icmp|unknown)\b', Number),
-            (r'(\d+\.){3}\d+', Number),
-            (r'(' + _hex + r'){7}' + _hex, Number),
-            (r'0x' + _hex + r'(' + _hex + r'|:)*::(' + _hex + r'|:)*', Number),
-            (r'((\d+|:)(' + _hex + r'|:)*)?::(' + _hex + r'|:)*', Number),
-            (r'(\d+\.\d+\.|(\d+\.){2}\d+)', Number),
+
+            # Port
+            (r'\d{1,5}/(udp|tcp|icmp|unknown)\b', Number),
+
+            # IPv4 Address
+            (r'(\d{1,3}.){3}(\d{1,3})\b', Number),
+
+            # IPv6 Address
+            (r'\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((\d{1,3}.){3}(\d{1,3}))?\]', Number),
+
+            # Numeric
+            (r'0[xX]' + _hex + r'+\b', Number.Hex),
+            (_float + r'\s*(day|hr|min|sec|msec|usec)s?\b', Number.Float),
+            (_float + r'\b', Number.Float),
+            (r'(\d+)\b', Number.Integer),
+
             # Hostnames
             (_h + r'(\.' + _h + r')+', String),
-            # Numeric
-            (_float + r'\s+(day|hr|min|sec|msec|usec)s?\b', Literal.Date),
-            (r'0[xX]' + _hex, Number.Hex),
-            (_float, Number.Float),
-            (r'\d+', Number.Integer),
-            (r'/', String.Regex, 'regex'),
-            (r'"', String, 'string'),
-            # Operators
-            (r'[!%*/+:<=>?~|-]', Operator),
+        ],
+
+        'operators': [
+            (r'[!%*/+<=>~|&^-]', Operator),
             (r'([-+=&|]{2}|[+=!><-]=)', Operator),
-            (r'(in|match)\b', Operator.Word),
-            (r'[{}()\[\]$.,;]', Punctuation),
-            # Identfier
-            (r'([_a-zA-Z]\w*)(::)', bygroups(Name, Name.Namespace)),
+            (r'(in|as|is|of)\b', Operator.Word),
+            (r'\??\$', Operator),
+        ],
+
+        'punctuation': [
+            (r'[{}()\[\],;.]', Punctuation),
+            # The "ternary if", which uses '?' and ':', could instead be
+            # treated as an Operator, but colons are more frequently used to
+            # separate field/identifier names from their types, so the (often)
+            # less-prominent Punctuation is used even with '?' for consistency.
+            (r'[?:]', Punctuation),
+        ],
+
+        'identifiers': [
+            (r'([a-zA-Z_]\w*)(::)', bygroups(Name, Punctuation)),
             (r'[a-zA-Z_]\w*', Name)
         ],
+
         'string': [
+            (r'\\.', String.Escape),
+            (r'%-?[0-9]*(\.[0-9]+)?[DTdxsefg]', String.Escape),
             (r'"', String, '#pop'),
-            (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
-            (r'[^\\"\n]+', String),
-            (r'\\\n', String),
-            (r'\\', String)
+            (r'.', String),
         ],
+
         'regex': [
+            (r'\\.', String.Escape),
             (r'/', String.Regex, '#pop'),
-            (r'\\[\\nt/]', String.Regex),  # String.Escape is too intense here.
-            (r'[^\\/\n]+', String.Regex),
-            (r'\\\n', String.Regex),
-            (r'\\', String.Regex)
-        ]
+            (r'.', String.Regex),
+        ],
     }
 
 
+BroLexer = ZeekLexer
+
+
 class PuppetLexer(RegexLexer):
     """
     For `Puppet <http://puppetlabs.com/>`__ configuration DSL.
@@ -558,7 +640,7 @@
 
 class PanLexer(RegexLexer):
     """
-    Lexer for `pan <http://github.com/quattor/pan/>`_ source files.
+    Lexer for `pan <https://github.com/quattor/pan/>`_ source files.
 
     Based on tcsh lexer.
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/dylan.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/dylan.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Dylan language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -32,27 +32,27 @@
 
     flags = re.IGNORECASE
 
-    builtins = set((
+    builtins = {
         'subclass', 'abstract', 'block', 'concrete', 'constant', 'class',
         'compiler-open', 'compiler-sideways', 'domain', 'dynamic',
         'each-subclass', 'exception', 'exclude', 'function', 'generic',
         'handler', 'inherited', 'inline', 'inline-only', 'instance',
         'interface', 'import', 'keyword', 'library', 'macro', 'method',
         'module', 'open', 'primary', 'required', 'sealed', 'sideways',
-        'singleton', 'slot', 'thread', 'variable', 'virtual'))
+        'singleton', 'slot', 'thread', 'variable', 'virtual'}
 
-    keywords = set((
+    keywords = {
         'above', 'afterwards', 'begin', 'below', 'by', 'case', 'cleanup',
         'create', 'define', 'else', 'elseif', 'end', 'export', 'finally',
         'for', 'from', 'if', 'in', 'let', 'local', 'otherwise', 'rename',
         'select', 'signal', 'then', 'to', 'unless', 'until', 'use', 'when',
-        'while'))
+        'while'}
 
-    operators = set((
+    operators = {
         '~', '+', '-', '*', '|', '^', '=', '==', '~=', '~==', '<', '<=',
-        '>', '>=', '&', '|'))
+        '>', '>=', '&', '|'}
 
-    functions = set((
+    functions = {
         'abort', 'abs', 'add', 'add!', 'add-method', 'add-new', 'add-new!',
         'all-superclasses', 'always', 'any?', 'applicable-method?', 'apply',
         'aref', 'aref-setter', 'as', 'as-lowercase', 'as-lowercase!',
@@ -86,7 +86,7 @@
         'subtype?', 'table-protocol', 'tail', 'tail-setter', 'third',
         'third-setter', 'truncate', 'truncate/', 'type-error-expected-type',
         'type-error-value', 'type-for-copy', 'type-union', 'union', 'values',
-        'vector', 'zero?'))
+        'vector', 'zero?'}
 
     valid_name = '\\\\?[\\w!&*<>|^$%@\\-+~?/=]+'
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ecl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ecl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the ECL language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/eiffel.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/eiffel.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Eiffel language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/elm.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/elm.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Elm programming language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -77,7 +77,7 @@
             (words((builtinOps), prefix=r'\(', suffix=r'\)'), Name.Function),
 
             # Infix Operators
-            (words((builtinOps)), Name.Function),
+            (words(builtinOps), Name.Function),
 
             # Numbers
             include('numbers'),
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/email.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,154 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.email
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for the raw E-mail.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, DelegatingLexer, bygroups
+from pygments.lexers.mime import MIMELexer
+from pygments.token import Text, Keyword, Name, String, Number, Comment
+from pygments.util import get_bool_opt
+
+__all__ = ["EmailLexer"]
+
+
+class EmailHeaderLexer(RegexLexer):
+    """
+    Sub-lexer for raw E-mail. This lexer only process header part of e-mail.
+
+    .. versionadded:: 2.5
+    """
+
+    def __init__(self, **options):
+        super(EmailHeaderLexer, self).__init__(**options)
+        self.highlight_x = get_bool_opt(options, "highlight-X-header", False)
+
+    def get_x_header_tokens(self, match):
+        if self.highlight_x:
+            # field
+            yield match.start(1), Name.Tag, match.group(1)
+
+            # content
+            default_actions = self.get_tokens_unprocessed(
+                match.group(2), stack=("root", "header"))
+            for item in default_actions:
+                yield item
+        else:
+            # lowlight
+            yield match.start(1), Comment.Special, match.group(1)
+            yield match.start(2), Comment.Multiline, match.group(2)
+
+    tokens = {
+        "root": [
+            (r"^(?:[A-WYZ]|X400)[\w\-]*:", Name.Tag, "header"),
+            (r"^(X-(?:\w[\w\-]*:))([\s\S]*?\n)(?![ \t])", get_x_header_tokens),
+        ],
+        "header": [
+            # folding
+            (r"\n[ \t]", Text.Whitespace),
+            (r"\n(?![ \t])", Text.Whitespace, "#pop"),
+
+            # keywords
+            (r"\bE?SMTPS?\b", Keyword),
+            (r"\b(?:HE|EH)LO\b", Keyword),
+
+            # mailbox
+            (r"[\w\.\-\+=]+@[\w\.\-]+", Name.Label),
+            (r"<[\w\.\-\+=]+@[\w\.\-]+>", Name.Label),
+
+            # domain
+            (r"\b(\w[\w\.-]*\.[\w\.-]*\w[a-zA-Z]+)\b", Name.Function),
+
+            # IPv4
+            (
+                r"(?<=\b)(?:(?:25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(?:25[0"
+                r"-5]|2[0-4][0-9]|1?[0-9][0-9]?)(?=\b)",
+                Number.Integer,
+            ),
+
+            # IPv6
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,7}:(?!\b)", Number.Hex),
+            (r"(?<=\b):((:[0-9a-fA-F]{1,4}){1,7}|:)(?=\b)", Number.Hex),
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}(?=\b)", Number.Hex),
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}(?=\b)", Number.Hex),
+            (r"(?<=\b)[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})(?=\b)", Number.Hex),
+            (r"(?<=\b)fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}(?=\b)", Number.Hex),
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}(?=\b)", Number.Hex),
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}(?=\b)",
+             Number.Hex),
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}(?=\b)",
+             Number.Hex),
+            (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}(?=\b)",
+             Number.Hex),
+            (
+                r"(?<=\b)::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}"
+                r"[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}"
+                r"[0-9])(?=\b)",
+                Number.Hex,
+            ),
+            (
+                r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-"
+                r"9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-"
+                r"9])(?=\b)",
+                Number.Hex,
+            ),
+
+            # Date time
+            (
+                r"(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\s+)?(0[1-9]|[1-2]?[0-9]|3["
+                r"01])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+("
+                r"19[0-9]{2}|[2-9][0-9]{3})\s+(2[0-3]|[0-1][0-9]):([0-5][0-9])"
+                r"(?::(60|[0-5][0-9]))?(?:\.\d{1,5})?\s+([-\+][0-9]{2}[0-5][0-"
+                r"9]|\(?(?:UTC?|GMT|(?:E|C|M|P)(?:ST|ET|DT)|[A-IK-Z])\)?)",
+                Name.Decorator,
+            ),
+
+            # RFC-2047 encoded string
+            (
+                r"(=\?)([\w-]+)(\?)([BbQq])(\?)([\[\w!\"#$%&\'()*+,-./:;<=>@[\\"
+                r"\]^_`{|}~]+)(\?=)",
+                bygroups(
+                    String.Affix,
+                    Name.Constant,
+                    String.Affix,
+                    Keyword.Constant,
+                    String.Affix,
+                    Number.Hex,
+                    String.Affix
+                )
+            ),
+
+            # others
+            (r'[\s]+', Text.Whitespace),
+            (r'[\S]', Text),
+        ],
+    }
+
+
+class EmailLexer(DelegatingLexer):
+    """
+    Lexer for raw E-mail.
+
+    Additional options accepted:
+
+    `highlight-X-header`
+        Highlight the fields of ``X-`` user-defined email header. (default:
+        ``False``).
+
+    .. versionadded:: 2.5
+    """
+
+    name = "E-mail"
+    aliases = ["email", "eml"]
+    filenames = ["*.eml"]
+    mimetypes = ["message/rfc822"]
+
+    def __init__(self, **options):
+        super(EmailLexer, self).__init__(
+            EmailHeaderLexer, MIMELexer, Comment, **options
+        )
--- a/eric6/ThirdParty/Pygments/pygments/lexers/erlang.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/erlang.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Erlang.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -163,7 +163,7 @@
     filenames = ['*.erl-sh']
     mimetypes = ['text/x-erl-shellsession']
 
-    _prompt_re = re.compile(r'\d+>(?=\s|\Z)')
+    _prompt_re = re.compile(r'(?:\([\w@_.]+\))?\d+>(?=\s|\Z)')
 
     def get_tokens_unprocessed(self, text):
         erlexer = ErlangLexer(**self.options)
@@ -233,7 +233,7 @@
 
     name = 'Elixir'
     aliases = ['elixir', 'ex', 'exs']
-    filenames = ['*.ex', '*.exs']
+    filenames = ['*.ex', '*.eex', '*.exs']
     mimetypes = ['text/x-elixir']
 
     KEYWORD = ('fn', 'do', 'end', 'after', 'else', 'rescue', 'catch')
@@ -495,7 +495,7 @@
     aliases = ['iex']
     mimetypes = ['text/x-elixir-shellsession']
 
-    _prompt_re = re.compile(r'(iex|\.{3})(\(\d+\))?> ')
+    _prompt_re = re.compile(r'(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> ')
 
     def get_tokens_unprocessed(self, text):
         exlexer = ElixirLexer(**self.options)
--- a/eric6/ThirdParty/Pygments/pygments/lexers/esoteric.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/esoteric.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for esoteric languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -245,7 +245,7 @@
 
     Aheui_ is esoteric language based on Korean alphabets.
 
-    .. _Aheui:: http://aheui.github.io/
+    .. _Aheui: http://aheui.github.io/
 
     """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ezhil.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ezhil.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Pygments lexers for Ezhil language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/factor.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/factor.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Factor language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/fantom.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/fantom.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Fantom language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/felix.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/felix.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Felix language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/floscript.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.floscript
+    ~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for FloScript
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, include
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation
+
+__all__ = ['FloScriptLexer']
+
+
+class FloScriptLexer(RegexLexer):
+    """
+    For `FloScript <https://github.com/ioflo/ioflo>`_ configuration language source code.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'FloScript'
+    aliases = ['floscript', 'flo']
+    filenames = ['*.flo']
+
+    def innerstring_rules(ttype):
+        return [
+            # the old style '%s' % (...) string formatting
+            (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
+             '[hlL]?[E-GXc-giorsux%]', String.Interpol),
+            # backslashes, quotes and formatting signs must be parsed one at a time
+            (r'[^\\\'"%\n]+', ttype),
+            (r'[\'"\\]', ttype),
+            # unhandled string formatting sign
+            (r'%', ttype),
+            # newlines are an error (use "nl" state)
+        ]
+
+    tokens = {
+        'root': [
+            (r'\n', Text),
+            (r'[^\S\n]+', Text),
+
+            (r'[]{}:(),;[]', Punctuation),
+            (r'\\\n', Text),
+            (r'\\', Text),
+            (r'(to|by|with|from|per|for|cum|qua|via|as|at|in|of|on|re|is|if|be|into|'
+             r'and|not)\b', Operator.Word),
+            (r'!=|==|<<|>>|[-~+/*%=<>&^|.]', Operator),
+            (r'(load|init|server|logger|log|loggee|first|over|under|next|done|timeout|'
+             r'repeat|native|benter|enter|recur|exit|precur|renter|rexit|print|put|inc|'
+             r'copy|set|aux|rear|raze|go|let|do|bid|ready|start|stop|run|abort|use|flo|'
+             r'give|take)\b', Name.Builtin),
+            (r'(frame|framer|house)\b', Keyword),
+            ('"', String, 'string'),
+
+            include('name'),
+            include('numbers'),
+            (r'#.+$', Comment.Singleline),
+        ],
+        'string': [
+            ('[^"]+', String),
+            ('"', String, '#pop'),
+        ],
+        'numbers': [
+            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
+            (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
+            (r'0[0-7]+j?', Number.Oct),
+            (r'0[bB][01]+', Number.Bin),
+            (r'0[xX][a-fA-F0-9]+', Number.Hex),
+            (r'\d+L', Number.Integer.Long),
+            (r'\d+j?', Number.Integer)
+        ],
+
+        'name': [
+            (r'@[\w.]+', Name.Decorator),
+            (r'[a-zA-Z_]\w*', Name),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/forth.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/forth.py	Tue Apr 21 19:47:10 2020 +0200
@@ -3,7 +3,9 @@
     pygments.lexers.forth
     ~~~~~~~~~~~~~~~~~~~~~
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    Lexer for the Forth language.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/fortran.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/fortran.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Fortran languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/foxpro.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/foxpro.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Simple lexer for Microsoft Visual FoxPro source code.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/freefem.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,898 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.freefem
+    ~~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for FreeFem++ language.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, include, bygroups, inherit, words, \
+    default
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation
+
+from pygments.lexers.c_cpp import CLexer, CppLexer
+from pygments.lexers import _mql_builtins
+
+__all__ = ['FreeFemLexer']
+
+
+class FreeFemLexer(CppLexer):
+    """
+    For `FreeFem++ <https://freefem.org/>`_ source.
+
+    This is an extension of the CppLexer, as the FreeFem Language is a superset
+    of C++.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'Freefem'
+    aliases = ['freefem']
+    filenames = ['*.edp']
+    mimetypes = ['text/x-freefem']
+
+    # Language operators
+    operators = {'+', '-', '*', '.*', '/', './', '%', '^', '^-1', ':', '\''}
+
+    # types
+    types = {'bool', 'border', 'complex', 'dmatrix', 'fespace', 'func', 'gslspline',
+             'ifstream', 'int', 'macro', 'matrix', 'mesh', 'mesh3', 'mpiComm',
+             'mpiGroup', 'mpiRequest', 'NewMacro', 'EndMacro', 'ofstream', 'Pmmap',
+             'problem', 'Psemaphore', 'real', 'solve', 'string', 'varf'}
+
+    # finite element spaces
+    fespaces = {'BDM1', 'BDM1Ortho', 'Edge03d', 'Edge13d', 'Edge23d', 'FEQF', 'HCT',
+                'P0', 'P03d', 'P0Edge', 'P1', 'P13d', 'P1b', 'P1b3d', 'P1bl', 'P1bl3d',
+                'P1dc', 'P1Edge', 'P1nc', 'P2', 'P23d', 'P2b', 'P2BR', 'P2dc', 'P2Edge',
+                'P2h', 'P2Morley', 'P2pnc', 'P3', 'P3dc', 'P3Edge', 'P4', 'P4dc',
+                'P4Edge', 'P5Edge', 'RT0', 'RT03d', 'RT0Ortho', 'RT1', 'RT1Ortho',
+                'RT2', 'RT2Ortho'}
+
+    # preprocessor
+    preprocessor = {'ENDIFMACRO', 'include', 'IFMACRO', 'load'}
+
+    # Language keywords
+    keywords = {
+                'adj',
+                'append',
+                'area',
+                'ARGV',
+                'be',
+                'binary',
+                'BoundaryEdge',
+                'bordermeasure',
+                'CG',
+                'Cholesky',
+                'cin',
+                'cout',
+                'Crout',
+                'default',
+                'diag',
+                'edgeOrientation',
+                'endl',
+                'false',
+                'ffind',
+                'FILE',
+                'find',
+                'fixed',
+                'flush',
+                'GMRES',
+                'good',
+                'hTriangle',
+                'im',
+                'imax',
+                'imin',
+                'InternalEdge',
+                'l1',
+                'l2',
+                'label',
+                'lenEdge',
+                'length',
+                'LINE',
+                'linfty',
+                'LU',
+                'm',
+                'max',
+                'measure',
+                'min',
+                'mpiAnySource',
+                'mpiBAND',
+                'mpiBXOR',
+                'mpiCommWorld',
+                'mpiLAND',
+                'mpiLOR',
+                'mpiLXOR',
+                'mpiMAX',
+                'mpiMIN',
+                'mpiPROD',
+                'mpirank',
+                'mpisize',
+                'mpiSUM',
+                'mpiUndefined',
+                'n',
+                'N',
+                'nbe',
+                'ndof',
+                'ndofK',
+                'noshowbase',
+                'noshowpos',
+                'notaregion',
+                'nt',
+                'nTonEdge',
+                'nuEdge',
+                'nuTriangle',
+                'nv',
+                'P',
+                'pi',
+                'precision',
+                'qf1pE',
+                'qf1pElump',
+                'qf1pT',
+                'qf1pTlump',
+                'qfV1',
+                'qfV1lump',
+                'qf2pE',
+                'qf2pT',
+                'qf2pT4P1',
+                'qfV2',
+                'qf3pE',
+                'qf4pE',
+                'qf5pE',
+                'qf5pT',
+                'qfV5',
+                'qf7pT',
+                'qf9pT',
+                'qfnbpE',
+                'quantile',
+                're',
+                'region',
+                'rfind',
+                'scientific',
+                'searchMethod',
+                'setw',
+                'showbase',
+                'showpos',
+                'sparsesolver',
+                'sum',
+                'tellp',
+                'true',
+                'UMFPACK',
+                'unused',
+                'whoinElement',
+                'verbosity',
+                'version',
+                'volume',
+                'x',
+                'y',
+                'z'
+    }
+
+    # Language shipped functions and class ( )
+    functions = {
+                'abs',
+                'acos',
+                'acosh',
+                'adaptmesh',
+                'adj',
+                'AffineCG',
+                'AffineGMRES',
+                'arg',
+                'asin',
+                'asinh',
+                'assert',
+                'atan',
+                'atan2',
+                'atanh',
+                'atof',
+                'atoi',
+                'BFGS',
+                'broadcast',
+                'buildlayers',
+                'buildmesh',
+                'ceil',
+                'chi',
+                'complexEigenValue',
+                'copysign',
+                'change',
+                'checkmovemesh',
+                'clock',
+                'cmaes',
+                'conj',
+                'convect',
+                'cos',
+                'cosh',
+                'cube',
+                'd',
+                'dd',
+                'dfft',
+                'diffnp',
+                'diffpos',
+                'dimKrylov',
+                'dist',
+                'dumptable',
+                'dx',
+                'dxx',
+                'dxy',
+                'dxz',
+                'dy',
+                'dyx',
+                'dyy',
+                'dyz',
+                'dz',
+                'dzx',
+                'dzy',
+                'dzz',
+                'EigenValue',
+                'emptymesh',
+                'erf',
+                'erfc',
+                'exec',
+                'exit',
+                'exp',
+                'fdim',
+                'floor',
+                'fmax',
+                'fmin',
+                'fmod',
+                'freeyams',
+                'getARGV',
+                'getline',
+                'gmshload',
+                'gmshload3',
+                'gslcdfugaussianP',
+                'gslcdfugaussianQ',
+                'gslcdfugaussianPinv',
+                'gslcdfugaussianQinv',
+                'gslcdfgaussianP',
+                'gslcdfgaussianQ',
+                'gslcdfgaussianPinv',
+                'gslcdfgaussianQinv',
+                'gslcdfgammaP',
+                'gslcdfgammaQ',
+                'gslcdfgammaPinv',
+                'gslcdfgammaQinv',
+                'gslcdfcauchyP',
+                'gslcdfcauchyQ',
+                'gslcdfcauchyPinv',
+                'gslcdfcauchyQinv',
+                'gslcdflaplaceP',
+                'gslcdflaplaceQ',
+                'gslcdflaplacePinv',
+                'gslcdflaplaceQinv',
+                'gslcdfrayleighP',
+                'gslcdfrayleighQ',
+                'gslcdfrayleighPinv',
+                'gslcdfrayleighQinv',
+                'gslcdfchisqP',
+                'gslcdfchisqQ',
+                'gslcdfchisqPinv',
+                'gslcdfchisqQinv',
+                'gslcdfexponentialP',
+                'gslcdfexponentialQ',
+                'gslcdfexponentialPinv',
+                'gslcdfexponentialQinv',
+                'gslcdfexppowP',
+                'gslcdfexppowQ',
+                'gslcdftdistP',
+                'gslcdftdistQ',
+                'gslcdftdistPinv',
+                'gslcdftdistQinv',
+                'gslcdffdistP',
+                'gslcdffdistQ',
+                'gslcdffdistPinv',
+                'gslcdffdistQinv',
+                'gslcdfbetaP',
+                'gslcdfbetaQ',
+                'gslcdfbetaPinv',
+                'gslcdfbetaQinv',
+                'gslcdfflatP',
+                'gslcdfflatQ',
+                'gslcdfflatPinv',
+                'gslcdfflatQinv',
+                'gslcdflognormalP',
+                'gslcdflognormalQ',
+                'gslcdflognormalPinv',
+                'gslcdflognormalQinv',
+                'gslcdfgumbel1P',
+                'gslcdfgumbel1Q',
+                'gslcdfgumbel1Pinv',
+                'gslcdfgumbel1Qinv',
+                'gslcdfgumbel2P',
+                'gslcdfgumbel2Q',
+                'gslcdfgumbel2Pinv',
+                'gslcdfgumbel2Qinv',
+                'gslcdfweibullP',
+                'gslcdfweibullQ',
+                'gslcdfweibullPinv',
+                'gslcdfweibullQinv',
+                'gslcdfparetoP',
+                'gslcdfparetoQ',
+                'gslcdfparetoPinv',
+                'gslcdfparetoQinv',
+                'gslcdflogisticP',
+                'gslcdflogisticQ',
+                'gslcdflogisticPinv',
+                'gslcdflogisticQinv',
+                'gslcdfbinomialP',
+                'gslcdfbinomialQ',
+                'gslcdfpoissonP',
+                'gslcdfpoissonQ',
+                'gslcdfgeometricP',
+                'gslcdfgeometricQ',
+                'gslcdfnegativebinomialP',
+                'gslcdfnegativebinomialQ',
+                'gslcdfpascalP',
+                'gslcdfpascalQ',
+                'gslinterpakima',
+                'gslinterpakimaperiodic',
+                'gslinterpcsplineperiodic',
+                'gslinterpcspline',
+                'gslinterpsteffen',
+                'gslinterplinear',
+                'gslinterppolynomial',
+                'gslranbernoullipdf',
+                'gslranbeta',
+                'gslranbetapdf',
+                'gslranbinomialpdf',
+                'gslranexponential',
+                'gslranexponentialpdf',
+                'gslranexppow',
+                'gslranexppowpdf',
+                'gslrancauchy',
+                'gslrancauchypdf',
+                'gslranchisq',
+                'gslranchisqpdf',
+                'gslranerlang',
+                'gslranerlangpdf',
+                'gslranfdist',
+                'gslranfdistpdf',
+                'gslranflat',
+                'gslranflatpdf',
+                'gslrangamma',
+                'gslrangammaint',
+                'gslrangammapdf',
+                'gslrangammamt',
+                'gslrangammaknuth',
+                'gslrangaussian',
+                'gslrangaussianratiomethod',
+                'gslrangaussianziggurat',
+                'gslrangaussianpdf',
+                'gslranugaussian',
+                'gslranugaussianratiomethod',
+                'gslranugaussianpdf',
+                'gslrangaussiantail',
+                'gslrangaussiantailpdf',
+                'gslranugaussiantail',
+                'gslranugaussiantailpdf',
+                'gslranlandau',
+                'gslranlandaupdf',
+                'gslrangeometricpdf',
+                'gslrangumbel1',
+                'gslrangumbel1pdf',
+                'gslrangumbel2',
+                'gslrangumbel2pdf',
+                'gslranlogistic',
+                'gslranlogisticpdf',
+                'gslranlognormal',
+                'gslranlognormalpdf',
+                'gslranlogarithmicpdf',
+                'gslrannegativebinomialpdf',
+                'gslranpascalpdf',
+                'gslranpareto',
+                'gslranparetopdf',
+                'gslranpoissonpdf',
+                'gslranrayleigh',
+                'gslranrayleighpdf',
+                'gslranrayleightail',
+                'gslranrayleightailpdf',
+                'gslrantdist',
+                'gslrantdistpdf',
+                'gslranlaplace',
+                'gslranlaplacepdf',
+                'gslranlevy',
+                'gslranweibull',
+                'gslranweibullpdf',
+                'gslsfairyAi',
+                'gslsfairyBi',
+                'gslsfairyAiscaled',
+                'gslsfairyBiscaled',
+                'gslsfairyAideriv',
+                'gslsfairyBideriv',
+                'gslsfairyAiderivscaled',
+                'gslsfairyBiderivscaled',
+                'gslsfairyzeroAi',
+                'gslsfairyzeroBi',
+                'gslsfairyzeroAideriv',
+                'gslsfairyzeroBideriv',
+                'gslsfbesselJ0',
+                'gslsfbesselJ1',
+                'gslsfbesselJn',
+                'gslsfbesselY0',
+                'gslsfbesselY1',
+                'gslsfbesselYn',
+                'gslsfbesselI0',
+                'gslsfbesselI1',
+                'gslsfbesselIn',
+                'gslsfbesselI0scaled',
+                'gslsfbesselI1scaled',
+                'gslsfbesselInscaled',
+                'gslsfbesselK0',
+                'gslsfbesselK1',
+                'gslsfbesselKn',
+                'gslsfbesselK0scaled',
+                'gslsfbesselK1scaled',
+                'gslsfbesselKnscaled',
+                'gslsfbesselj0',
+                'gslsfbesselj1',
+                'gslsfbesselj2',
+                'gslsfbesseljl',
+                'gslsfbessely0',
+                'gslsfbessely1',
+                'gslsfbessely2',
+                'gslsfbesselyl',
+                'gslsfbesseli0scaled',
+                'gslsfbesseli1scaled',
+                'gslsfbesseli2scaled',
+                'gslsfbesselilscaled',
+                'gslsfbesselk0scaled',
+                'gslsfbesselk1scaled',
+                'gslsfbesselk2scaled',
+                'gslsfbesselklscaled',
+                'gslsfbesselJnu',
+                'gslsfbesselYnu',
+                'gslsfbesselInuscaled',
+                'gslsfbesselInu',
+                'gslsfbesselKnuscaled',
+                'gslsfbesselKnu',
+                'gslsfbessellnKnu',
+                'gslsfbesselzeroJ0',
+                'gslsfbesselzeroJ1',
+                'gslsfbesselzeroJnu',
+                'gslsfclausen',
+                'gslsfhydrogenicR1',
+                'gslsfdawson',
+                'gslsfdebye1',
+                'gslsfdebye2',
+                'gslsfdebye3',
+                'gslsfdebye4',
+                'gslsfdebye5',
+                'gslsfdebye6',
+                'gslsfdilog',
+                'gslsfmultiply',
+                'gslsfellintKcomp',
+                'gslsfellintEcomp',
+                'gslsfellintPcomp',
+                'gslsfellintDcomp',
+                'gslsfellintF',
+                'gslsfellintE',
+                'gslsfellintRC',
+                'gslsferfc',
+                'gslsflogerfc',
+                'gslsferf',
+                'gslsferfZ',
+                'gslsferfQ',
+                'gslsfhazard',
+                'gslsfexp',
+                'gslsfexpmult',
+                'gslsfexpm1',
+                'gslsfexprel',
+                'gslsfexprel2',
+                'gslsfexpreln',
+                'gslsfexpintE1',
+                'gslsfexpintE2',
+                'gslsfexpintEn',
+                'gslsfexpintE1scaled',
+                'gslsfexpintE2scaled',
+                'gslsfexpintEnscaled',
+                'gslsfexpintEi',
+                'gslsfexpintEiscaled',
+                'gslsfShi',
+                'gslsfChi',
+                'gslsfexpint3',
+                'gslsfSi',
+                'gslsfCi',
+                'gslsfatanint',
+                'gslsffermidiracm1',
+                'gslsffermidirac0',
+                'gslsffermidirac1',
+                'gslsffermidirac2',
+                'gslsffermidiracint',
+                'gslsffermidiracmhalf',
+                'gslsffermidirachalf',
+                'gslsffermidirac3half',
+                'gslsffermidiracinc0',
+                'gslsflngamma',
+                'gslsfgamma',
+                'gslsfgammastar',
+                'gslsfgammainv',
+                'gslsftaylorcoeff',
+                'gslsffact',
+                'gslsfdoublefact',
+                'gslsflnfact',
+                'gslsflndoublefact',
+                'gslsflnchoose',
+                'gslsfchoose',
+                'gslsflnpoch',
+                'gslsfpoch',
+                'gslsfpochrel',
+                'gslsfgammaincQ',
+                'gslsfgammaincP',
+                'gslsfgammainc',
+                'gslsflnbeta',
+                'gslsfbeta',
+                'gslsfbetainc',
+                'gslsfgegenpoly1',
+                'gslsfgegenpoly2',
+                'gslsfgegenpoly3',
+                'gslsfgegenpolyn',
+                'gslsfhyperg0F1',
+                'gslsfhyperg1F1int',
+                'gslsfhyperg1F1',
+                'gslsfhypergUint',
+                'gslsfhypergU',
+                'gslsfhyperg2F0',
+                'gslsflaguerre1',
+                'gslsflaguerre2',
+                'gslsflaguerre3',
+                'gslsflaguerren',
+                'gslsflambertW0',
+                'gslsflambertWm1',
+                'gslsflegendrePl',
+                'gslsflegendreP1',
+                'gslsflegendreP2',
+                'gslsflegendreP3',
+                'gslsflegendreQ0',
+                'gslsflegendreQ1',
+                'gslsflegendreQl',
+                'gslsflegendrePlm',
+                'gslsflegendresphPlm',
+                'gslsflegendrearraysize',
+                'gslsfconicalPhalf',
+                'gslsfconicalPmhalf',
+                'gslsfconicalP0',
+                'gslsfconicalP1',
+                'gslsfconicalPsphreg',
+                'gslsfconicalPcylreg',
+                'gslsflegendreH3d0',
+                'gslsflegendreH3d1',
+                'gslsflegendreH3d',
+                'gslsflog',
+                'gslsflogabs',
+                'gslsflog1plusx',
+                'gslsflog1plusxmx',
+                'gslsfpowint',
+                'gslsfpsiint',
+                'gslsfpsi',
+                'gslsfpsi1piy',
+                'gslsfpsi1int',
+                'gslsfpsi1',
+                'gslsfpsin',
+                'gslsfsynchrotron1',
+                'gslsfsynchrotron2',
+                'gslsftransport2',
+                'gslsftransport3',
+                'gslsftransport4',
+                'gslsftransport5',
+                'gslsfsin',
+                'gslsfcos',
+                'gslsfhypot',
+                'gslsfsinc',
+                'gslsflnsinh',
+                'gslsflncosh',
+                'gslsfanglerestrictsymm',
+                'gslsfanglerestrictpos',
+                'gslsfzetaint',
+                'gslsfzeta',
+                'gslsfzetam1',
+                'gslsfzetam1int',
+                'gslsfhzeta',
+                'gslsfetaint',
+                'gslsfeta',
+                'imag',
+                'int1d',
+                'int2d',
+                'int3d',
+                'intalledges',
+                'intallfaces',
+                'interpolate',
+                'invdiff',
+                'invdiffnp',
+                'invdiffpos',
+                'Isend',
+                'isInf',
+                'isNaN',
+                'isoline',
+                'Irecv',
+                'j0',
+                'j1',
+                'jn',
+                'jump',
+                'lgamma',
+                'LinearCG',
+                'LinearGMRES',
+                'log',
+                'log10',
+                'lrint',
+                'lround',
+                'max',
+                'mean',
+                'medit',
+                'min',
+                'mmg3d',
+                'movemesh',
+                'movemesh23',
+                'mpiAlltoall',
+                'mpiAlltoallv',
+                'mpiAllgather',
+                'mpiAllgatherv',
+                'mpiAllReduce',
+                'mpiBarrier',
+                'mpiGather',
+                'mpiGatherv',
+                'mpiRank',
+                'mpiReduce',
+                'mpiScatter',
+                'mpiScatterv',
+                'mpiSize',
+                'mpiWait',
+                'mpiWaitAny',
+                'mpiWtick',
+                'mpiWtime',
+                'mshmet',
+                'NaN',
+                'NLCG',
+                'on',
+                'plot',
+                'polar',
+                'Post',
+                'pow',
+                'processor',
+                'processorblock',
+                'projection',
+                'randinit',
+                'randint31',
+                'randint32',
+                'random',
+                'randreal1',
+                'randreal2',
+                'randreal3',
+                'randres53',
+                'Read',
+                'readmesh',
+                'readmesh3',
+                'Recv',
+                'rint',
+                'round',
+                'savemesh',
+                'savesol',
+                'savevtk',
+                'seekg',
+                'Sent',
+                'set',
+                'sign',
+                'signbit',
+                'sin',
+                'sinh',
+                'sort',
+                'splitComm',
+                'splitmesh',
+                'sqrt',
+                'square',
+                'srandom',
+                'srandomdev',
+                'Stringification',
+                'swap',
+                'system',
+                'tan',
+                'tanh',
+                'tellg',
+                'tetg',
+                'tetgconvexhull',
+                'tetgreconstruction',
+                'tetgtransfo',
+                'tgamma',
+                'triangulate',
+                'trunc',
+                'Wait',
+                'Write',
+                'y0',
+                'y1',
+                'yn'
+    }
+
+    # function parameters
+    parameters = {
+                'A',
+                'A1',
+                'abserror',
+                'absolute',
+                'aniso',
+                'aspectratio',
+                'B',
+                'B1',
+                'bb',
+                'beginend',
+                'bin',
+                'boundary',
+                'bw',
+                'close',
+                'cmm',
+                'coef',
+                'composante',
+                'cutoff',
+                'datafilename',
+                'dataname',
+                'dim',
+                'distmax',
+                'displacement',
+                'doptions',
+                'dparams',
+                'eps',
+                'err',
+                'errg',
+                'facemerge',
+                'facetcl',
+                'factorize',
+                'file',
+                'fill',
+                'fixedborder',
+                'flabel',
+                'flags',
+                'floatmesh',
+                'floatsol',
+                'fregion',
+                'gradation',
+                'grey',
+                'hmax',
+                'hmin',
+                'holelist',
+                'hsv',
+                'init',
+                'inquire',
+                'inside',
+                'IsMetric',
+                'iso',
+                'ivalue',
+                'keepbackvertices',
+                'label',
+                'labeldown',
+                'labelmid',
+                'labelup',
+                'levelset',
+                'loptions',
+                'lparams',
+                'maxit',
+                'maxsubdiv',
+                'meditff',
+                'mem',
+                'memory',
+                'metric',
+                'mode',
+                'nbarrow',
+                'nbiso',
+                'nbiter',
+                'nbjacoby',
+                'nboffacetcl',
+                'nbofholes',
+                'nbofregions',
+                'nbregul',
+                'nbsmooth',
+                'nbvx',
+                'ncv',
+                'nev',
+                'nomeshgeneration',
+                'normalization',
+                'omega',
+                'op',
+                'optimize',
+                'option',
+                'options',
+                'order',
+                'orientation',
+                'periodic',
+                'power',
+                'precon',
+                'prev',
+                'ps',
+                'ptmerge',
+                'qfe',
+                'qforder',
+                'qft',
+                'qfV',
+                'ratio',
+                'rawvector',
+                'reffacelow',
+                'reffacemid',
+                'reffaceup',
+                'refnum',
+                'reftet',
+                'reftri',
+                'region',
+                'regionlist',
+                'renumv',
+                'rescaling',
+                'ridgeangle',
+                'save',
+                'sigma',
+                'sizeofvolume',
+                'smoothing',
+                'solver',
+                'sparams',
+                'split',
+                'splitin2',
+                'splitpbedge',
+                'stop',
+                'strategy',
+                'swap',
+                'switch',
+                'sym',
+                't',
+                'tgv',
+                'thetamax',
+                'tol',
+                'tolpivot',
+                'tolpivotsym',
+                'transfo',
+                'U2Vc',
+                'value',
+                'varrow',
+                'vector',
+                'veps',
+                'viso',
+                'wait',
+                'width',
+                'withsurfacemesh',
+                'WindowIndex',
+                'which',
+                'zbound'
+    }
+
+    # deprecated
+    deprecated = {'fixeborder'}
+
+    # do not highlight
+    suppress_highlight = {
+                'alignof',
+                'asm',
+                'constexpr',
+                'decltype',
+                'div',
+                'double',
+                'grad',
+                'mutable',
+                'namespace',
+                'noexcept',
+                'restrict',
+                'static_assert',
+                'template',
+                'this',
+                'thread_local',
+                'typeid',
+                'typename',
+                'using'
+    }
+
+    def get_tokens_unprocessed(self, text):
+        for index, token, value in CppLexer.get_tokens_unprocessed(self, text):
+            if value in self.operators:
+                yield index, Operator, value
+            elif value in self.types:
+                yield index, Keyword.Type, value
+            elif value in self.fespaces:
+                yield index, Name.Class, value
+            elif value in self.preprocessor:
+                yield index, Comment.Preproc, value
+            elif value in self.keywords:
+                yield index, Keyword.Reserved, value
+            elif value in self.functions:
+                yield index, Name.Function, value
+            elif value in self.parameters:
+                yield index, Keyword.Pseudo, value
+            elif value in self.suppress_highlight:
+                yield index, Name, value
+            else:
+                yield index, token, value
--- a/eric6/ThirdParty/Pygments/pygments/lexers/functional.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/functional.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Just export lexer classes previously contained in this module.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/go.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/go.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Google Go language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/grammar_notation.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/grammar_notation.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for grammer notations like BNF.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -15,7 +15,7 @@
 from pygments.token import Comment, Keyword, Literal, Name, Number, \
     Operator, Punctuation, String, Text
 
-__all__ = ['BnfLexer', 'AbnfLexer', 'JsgfLexer']
+__all__ = ['BnfLexer', 'AbnfLexer', 'JsgfLexer', 'PegLexer']
 
 
 class BnfLexer(RegexLexer):
@@ -211,3 +211,60 @@
             (r'.', Comment.Multiline),
         ],
     }
+
+
+class PegLexer(RegexLexer):
+    """
+    This lexer is for `Parsing Expression Grammars
+    <https://bford.info/pub/lang/peg.pdf>`_ (PEG).
+
+    Various implementations of PEG have made different decisions
+    regarding the syntax, so let's try to be accommodating:
+
+    * `<-`, `←`, `:`, and `=` are all accepted as rule operators.
+
+    * Both `|` and `/` are choice operators.
+
+    * `^`, `↑`, and `~` are cut operators.
+
+    * A single `a-z` character immediately before a string, or
+      multiple `a-z` characters following a string, are part of the
+      string (e.g., `r"..."` or `"..."ilmsuxa`).
+
+    .. versionadded:: 2.6
+    """
+
+    name = 'PEG'
+    aliases = ['peg']
+    filenames = ['*.peg']
+    mimetypes = ['text/x-peg']
+
+    tokens = {
+        'root': [
+            # Comments
+            (r'#.*', Comment.Single),
+
+            # All operators
+            (r'<-|[←:=/|&!?*+^↑~]', Operator),
+
+            # Other punctuation
+            (r'[()]', Punctuation),
+
+            # Keywords
+            (r'\.', Keyword),
+
+            # Character classes
+            (r'(\[)([^\]]*(?:\\.[^\]\\]*)*)(\])',
+             bygroups(Punctuation, String, Punctuation)),
+
+            # Single and double quoted strings (with optional modifiers)
+            (r'[a-z]?"[^"\\]*(?:\\.[^"\\]*)*"[a-z]*', String.Double),
+            (r"[a-z]?'[^'\\]*(?:\\.[^'\\]*)*'[a-z]*", String.Single),
+
+            # Nonterminals are not whitespace, operators, or punctuation
+            (r'[^\s<←:=/|&!?*+\^↑~()\[\]"\'#]+', Name.Class),
+
+            # Fallback
+            (r'.', Text),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/graph.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/graph.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for graph query languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -22,9 +22,9 @@
 class CypherLexer(RegexLexer):
     """
     For `Cypher Query Language
-    <http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html>`_
+    <https://neo4j.com/docs/developer-manual/3.3/cypher/>`_
 
-    For the Cypher version in Neo4J 2.0
+    For the Cypher version in Neo4j 3.3
 
     .. versionadded:: 2.0
     """
@@ -49,14 +49,19 @@
         ],
         'keywords': [
             (r'(create|order|match|limit|set|skip|start|return|with|where|'
-             r'delete|foreach|not|by)\b', Keyword),
+             r'delete|foreach|not|by|true|false)\b', Keyword),
         ],
         'clauses': [
-            # TODO: many missing ones, see http://docs.neo4j.org/refcard/2.0/
-            (r'(all|any|as|asc|create|create\s+unique|delete|'
-             r'desc|distinct|foreach|in|is\s+null|limit|match|none|'
-             r'order\s+by|return|set|skip|single|start|union|where|with)\b',
-             Keyword),
+            # based on https://neo4j.com/docs/cypher-refcard/3.3/
+            (r'(all|any|as|asc|ascending|assert|call|case|create|'
+             r'create\s+index|create\s+unique|delete|desc|descending|'
+             r'distinct|drop\s+constraint\s+on|drop\s+index\s+on|end|'
+             r'ends\s+with|fieldterminator|foreach|in|is\s+node\s+key|'
+             r'is\s+null|is\s+unique|limit|load\s+csv\s+from|match|merge|none|'
+             r'not|null|on\s+match|on\s+create|optional\s+match|order\s+by|'
+             r'remove|return|set|skip|single|start|starts\s+with|then|union|'
+             r'union\s+all|unwind|using\s+periodic\s+commit|yield|where|when|'
+             r'with)\b', Keyword),
         ],
         'relations': [
             (r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/graphics.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/graphics.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for computer graphics and plotting related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/haskell.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/haskell.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,19 +5,19 @@
 
     Lexers for Haskell and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \
-    default, include
+    default, include, inherit
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation, Generic
 from pygments import unistring as uni
 
-__all__ = ['HaskellLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
+__all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
            'LiterateHaskellLexer', 'LiterateIdrisLexer', 'LiterateAgdaLexer',
            'LiterateCryptolLexer', 'KokaLexer']
 
@@ -66,6 +66,7 @@
             (r"(')[" + uni.Lu + r"][\w\']*", Keyword.Type),
             (r"(')\[[^\]]*\]", Keyword.Type),  # tuples and lists get special treatment in GHC
             (r"(')\([^)]*\)", Keyword.Type),  # ..
+            (r"(')[:!#$%&*+.\\/<=>?@^|~-]+", Keyword.Type),  # promoted type operators
             #  Operators
             (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function),  # lambda operator
             (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word),  # specials
@@ -73,7 +74,8 @@
             (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator),  # Other operators
             #  Numbers
             (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*', Number.Float),
-            (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*(_*[pP][+-]?\d(_*\d)*)?', Number.Float),
+            (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*'
+             r'(_*[pP][+-]?\d(_*\d)*)?', Number.Float),
             (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*', Number.Float),
             (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?', Number.Float),
             (r'0[bB]_*[01](_*[01])*', Number.Bin),
@@ -157,6 +159,28 @@
     }
 
 
+class HspecLexer(HaskellLexer):
+    """
+    A Haskell lexer with support for Hspec constructs.
+
+    .. versionadded:: 2.4.0
+    """
+
+    name = 'Hspec'
+    aliases = ['hspec']
+    filenames = []
+    mimetypes = []
+
+    tokens = {
+        'root': [
+            (r'(it\s*)("[^"]*")', bygroups(Text, String.Doc)),
+            (r'(describe\s*)("[^"]*")', bygroups(Text, String.Doc)),
+            (r'(context\s*)("[^"]*")', bygroups(Text, String.Doc)),
+            inherit,
+        ],
+    }
+
+
 class IdrisLexer(RegexLexer):
     """
     A lexer for the dependently typed programming language Idris.
@@ -174,6 +198,7 @@
                 'if', 'in', 'infix[lr]?', 'instance', 'rewrite', 'auto',
                 'namespace', 'codata', 'mutual', 'private', 'public', 'abstract',
                 'total', 'partial',
+                'interface', 'implementation', 'export', 'covering', 'constructor',
                 'let', 'proof', 'of', 'then', 'static', 'where', '_', 'with',
                 'pattern',  'term',  'syntax', 'prefix',
                 'postulate', 'parameters', 'record', 'dsl', 'impossible', 'implicit',
@@ -190,7 +215,7 @@
     tokens = {
         'root': [
             # Comments
-            (r'^(\s*)(%%%s)' % '|'.join(directives),
+            (r'^(\s*)(%%(%s))' % '|'.join(directives),
              bygroups(Text, Keyword.Reserved)),
             (r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Text, Comment.Single)),
             (r'(\s*)(\|{3}.*?)$', bygroups(Text, Comment.Single)),
@@ -302,10 +327,10 @@
             #  Identifiers
             (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
             (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Text), 'module'),
-            (r'\b(Set|Prop)\b', Keyword.Type),
+            (u'\\b(Set|Prop)[\u2080-\u2089]*\\b', Keyword.Type),
             #  Special Symbols
             (r'(\(|\)|\{|\})', Operator),
-            (u'(\\.{1,3}|\\||\u039B|\u2200|\u2192|:|=|->)', Operator.Word),
+            (u'(\\.{1,3}|\\||\u03BB|\u2200|\u2192|:|=|->)', Operator.Word),
             #  Numbers
             (r'\d+[eE][+-]?\d+', Number.Float),
             (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
@@ -421,8 +446,8 @@
             (r'[A-Z]\w*', Keyword.Type),
             (r'(_[\w\']+|[a-z][\w\']*)', Name.Function),
             # TODO: these don't match the comments in docs, remove.
-            #(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
-            #(r'{-', Comment.Multiline, 'comment'),
+            # (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
+            # (r'{-', Comment.Multiline, 'comment'),
             (r',', Punctuation),
             (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator),
             # (HACK, but it makes sense to push two instances, believe me)
@@ -458,10 +483,10 @@
         ],
     }
 
-    EXTRA_KEYWORDS = set(('join', 'split', 'reverse', 'transpose', 'width',
-                          'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
-                          'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
-                          'trace'))
+    EXTRA_KEYWORDS = {'join', 'split', 'reverse', 'transpose', 'width',
+                      'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
+                      'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
+                      'trace'}
 
     def get_tokens_unprocessed(self, text):
         stack = ['root']
--- a/eric6/ThirdParty/Pygments/pygments/lexers/haxe.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/haxe.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Haxe and related stuff.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -79,7 +79,7 @@
         if proc in ['error']:
             ctx.stack.append('preproc-error')
 
-        yield match.start(), Comment.Preproc, '#' + proc
+        yield match.start(), Comment.Preproc, u'#' + proc
         ctx.pos = match.end()
 
     tokens = {
--- a/eric6/ThirdParty/Pygments/pygments/lexers/hdl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/hdl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for hardware descriptor languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -131,15 +131,6 @@
         ]
     }
 
-    def get_tokens_unprocessed(self, text):
-        for index, token, value in \
-                RegexLexer.get_tokens_unprocessed(self, text):
-            # Convention: mark all upper case names as constants
-            if token is Name:
-                if value.isupper():
-                    token = Name.Constant
-            yield index, token, value
-
 
 class SystemVerilogLexer(RegexLexer):
     """
@@ -184,63 +175,75 @@
             (r'`[a-zA-Z_]\w*', Name.Constant),
 
             (words((
-                'accept_on', 'alias', 'always', 'always_comb', 'always_ff', 'always_latch',
-                'and', 'assert', 'assign', 'assume', 'automatic', 'before', 'begin', 'bind', 'bins',
-                'binsof', 'bit', 'break', 'buf', 'bufif0', 'bufif1', 'byte', 'case', 'casex', 'casez',
-                'cell', 'chandle', 'checker', 'class', 'clocking', 'cmos', 'config', 'const', 'constraint',
-                'context', 'continue', 'cover', 'covergroup', 'coverpoint', 'cross', 'deassign',
-                'default', 'defparam', 'design', 'disable', 'dist', 'do', 'edge', 'else', 'end', 'endcase',
-                'endchecker', 'endclass', 'endclocking', 'endconfig', 'endfunction', 'endgenerate',
-                'endgroup', 'endinterface', 'endmodule', 'endpackage', 'endprimitive',
-                'endprogram', 'endproperty', 'endsequence', 'endspecify', 'endtable',
-                'endtask', 'enum', 'event', 'eventually', 'expect', 'export', 'extends', 'extern',
-                'final', 'first_match', 'for', 'force', 'foreach', 'forever', 'fork', 'forkjoin',
-                'function', 'generate', 'genvar', 'global', 'highz0', 'highz1', 'if', 'iff', 'ifnone',
-                'ignore_bins', 'illegal_bins', 'implies', 'import', 'incdir', 'include',
-                'initial', 'inout', 'input', 'inside', 'instance', 'int', 'integer', 'interface',
-                'intersect', 'join', 'join_any', 'join_none', 'large', 'let', 'liblist', 'library',
-                'local', 'localparam', 'logic', 'longint', 'macromodule', 'matches', 'medium',
-                'modport', 'module', 'nand', 'negedge', 'new', 'nexttime', 'nmos', 'nor', 'noshowcancelled',
-                'not', 'notif0', 'notif1', 'null', 'or', 'output', 'package', 'packed', 'parameter',
-                'pmos', 'posedge', 'primitive', 'priority', 'program', 'property', 'protected',
-                'pull0', 'pull1', 'pulldown', 'pullup', 'pulsestyle_ondetect', 'pulsestyle_onevent',
-                'pure', 'rand', 'randc', 'randcase', 'randsequence', 'rcmos', 'real', 'realtime',
-                'ref', 'reg', 'reject_on', 'release', 'repeat', 'restrict', 'return', 'rnmos',
-                'rpmos', 'rtran', 'rtranif0', 'rtranif1', 's_always', 's_eventually', 's_nexttime',
-                's_until', 's_until_with', 'scalared', 'sequence', 'shortint', 'shortreal',
-                'showcancelled', 'signed', 'small', 'solve', 'specify', 'specparam', 'static',
-                'string', 'strong', 'strong0', 'strong1', 'struct', 'super', 'supply0', 'supply1',
-                'sync_accept_on', 'sync_reject_on', 'table', 'tagged', 'task', 'this', 'throughout',
-                'time', 'timeprecision', 'timeunit', 'tran', 'tranif0', 'tranif1', 'tri', 'tri0',
-                'tri1', 'triand', 'trior', 'trireg', 'type', 'typedef', 'union', 'unique', 'unique0',
-                'unsigned', 'until', 'until_with', 'untyped', 'use', 'uwire', 'var', 'vectored',
-                'virtual', 'void', 'wait', 'wait_order', 'wand', 'weak', 'weak0', 'weak1', 'while',
-                'wildcard', 'wire', 'with', 'within', 'wor', 'xnor', 'xor'), suffix=r'\b'),
+                'accept_on', 'alias', 'always', 'always_comb', 'always_ff',
+                'always_latch', 'and', 'assert', 'assign', 'assume', 'automatic',
+                'before', 'begin', 'bind', 'bins', 'binsof', 'bit', 'break', 'buf',
+                'bufif0', 'bufif1', 'byte', 'case', 'casex', 'casez', 'cell',
+                'chandle', 'checker', 'class', 'clocking', 'cmos', 'config',
+                'const', 'constraint', 'context', 'continue', 'cover', 'covergroup',
+                'coverpoint', 'cross', 'deassign', 'default', 'defparam', 'design',
+                'disable', 'dist', 'do', 'edge', 'else', 'end', 'endcase',
+                'endchecker', 'endclass', 'endclocking', 'endconfig', 'endfunction',
+                'endgenerate', 'endgroup', 'endinterface', 'endmodule', 'endpackage',
+                'endprimitive', 'endprogram', 'endproperty', 'endsequence',
+                'endspecify', 'endtable', 'endtask', 'enum', 'event', 'eventually',
+                'expect', 'export', 'extends', 'extern', 'final', 'first_match',
+                'for', 'force', 'foreach', 'forever', 'fork', 'forkjoin', 'function',
+                'generate', 'genvar', 'global', 'highz0', 'highz1', 'if', 'iff',
+                'ifnone', 'ignore_bins', 'illegal_bins', 'implies', 'import',
+                'incdir', 'include', 'initial', 'inout', 'input', 'inside',
+                'instance', 'int', 'integer', 'interface', 'intersect', 'join',
+                'join_any', 'join_none', 'large', 'let', 'liblist', 'library',
+                'local', 'localparam', 'logic', 'longint', 'macromodule', 'matches',
+                'medium', 'modport', 'module', 'nand', 'negedge', 'new', 'nexttime',
+                'nmos', 'nor', 'noshowcancelled', 'not', 'notif0', 'notif1', 'null',
+                'or', 'output', 'package', 'packed', 'parameter', 'pmos', 'posedge',
+                'primitive', 'priority', 'program', 'property', 'protected', 'pull0',
+                'pull1', 'pulldown', 'pullup', 'pulsestyle_ondetect',
+                'pulsestyle_onevent', 'pure', 'rand', 'randc', 'randcase',
+                'randsequence', 'rcmos', 'real', 'realtime', 'ref', 'reg',
+                'reject_on', 'release', 'repeat', 'restrict', 'return', 'rnmos',
+                'rpmos', 'rtran', 'rtranif0', 'rtranif1', 's_always', 's_eventually',
+                's_nexttime', 's_until', 's_until_with', 'scalared', 'sequence',
+                'shortint', 'shortreal', 'showcancelled', 'signed', 'small', 'solve',
+                'specify', 'specparam', 'static', 'string', 'strong', 'strong0',
+                'strong1', 'struct', 'super', 'supply0', 'supply1', 'sync_accept_on',
+                'sync_reject_on', 'table', 'tagged', 'task', 'this', 'throughout',
+                'time', 'timeprecision', 'timeunit', 'tran', 'tranif0', 'tranif1',
+                'tri', 'tri0', 'tri1', 'triand', 'trior', 'trireg', 'type',
+                'typedef', 'union', 'unique', 'unique0', 'unsigned', 'until',
+                'until_with', 'untyped', 'use', 'uwire', 'var', 'vectored',
+                'virtual', 'void', 'wait', 'wait_order', 'wand', 'weak', 'weak0',
+                'weak1', 'while', 'wildcard', 'wire', 'with', 'within', 'wor',
+                'xnor', 'xor'), suffix=r'\b'),
              Keyword),
 
             (words((
-                '`__FILE__', '`__LINE__', '`begin_keywords', '`celldefine', '`default_nettype',
-                '`define', '`else', '`elsif', '`end_keywords', '`endcelldefine', '`endif',
-                '`ifdef', '`ifndef', '`include', '`line', '`nounconnected_drive', '`pragma',
-                '`resetall', '`timescale', '`unconnected_drive', '`undef', '`undefineall'),
+                '`__FILE__', '`__LINE__', '`begin_keywords', '`celldefine',
+                '`default_nettype', '`define', '`else', '`elsif', '`end_keywords',
+                '`endcelldefine', '`endif', '`ifdef', '`ifndef', '`include',
+                '`line', '`nounconnected_drive', '`pragma', '`resetall',
+                '`timescale', '`unconnected_drive', '`undef', '`undefineall'),
                 suffix=r'\b'),
              Comment.Preproc),
 
             (words((
-                '$display', '$displayb', '$displayh', '$displayo', '$dumpall', '$dumpfile',
-                '$dumpflush', '$dumplimit', '$dumpoff', '$dumpon', '$dumpports',
-                '$dumpportsall', '$dumpportsflush', '$dumpportslimit', '$dumpportsoff',
-                '$dumpportson', '$dumpvars', '$fclose', '$fdisplay', '$fdisplayb',
-                '$fdisplayh', '$fdisplayo', '$feof', '$ferror', '$fflush', '$fgetc',
-                '$fgets', '$finish', '$fmonitor', '$fmonitorb', '$fmonitorh', '$fmonitoro',
-                '$fopen', '$fread', '$fscanf', '$fseek', '$fstrobe', '$fstrobeb', '$fstrobeh',
+                '$display', '$displayb', '$displayh', '$displayo', '$dumpall',
+                '$dumpfile', '$dumpflush', '$dumplimit', '$dumpoff', '$dumpon',
+                '$dumpports', '$dumpportsall', '$dumpportsflush', '$dumpportslimit',
+                '$dumpportsoff', '$dumpportson', '$dumpvars', '$fclose',
+                '$fdisplay', '$fdisplayb', '$fdisplayh', '$fdisplayo', '$feof',
+                '$ferror', '$fflush', '$fgetc', '$fgets', '$finish', '$fmonitor',
+                '$fmonitorb', '$fmonitorh', '$fmonitoro', '$fopen', '$fread',
+                '$fscanf', '$fseek', '$fstrobe', '$fstrobeb', '$fstrobeh',
                 '$fstrobeo', '$ftell', '$fwrite', '$fwriteb', '$fwriteh', '$fwriteo',
                 '$monitor', '$monitorb', '$monitorh', '$monitoro', '$monitoroff',
-                '$monitoron', '$plusargs', '$random', '$readmemb', '$readmemh', '$rewind',
-                '$sformat', '$sformatf', '$sscanf', '$strobe', '$strobeb', '$strobeh', '$strobeo',
-                '$swrite', '$swriteb', '$swriteh', '$swriteo', '$test', '$ungetc',
-                '$value$plusargs', '$write', '$writeb', '$writeh', '$writememb',
-                '$writememh', '$writeo'), suffix=r'\b'),
+                '$monitoron', '$plusargs', '$random', '$readmemb', '$readmemh',
+                '$rewind', '$sformat', '$sformatf', '$sscanf', '$strobe',
+                '$strobeb', '$strobeh', '$strobeo', '$swrite', '$swriteb',
+                '$swriteh', '$swriteo', '$test', '$ungetc', '$value$plusargs',
+                '$write', '$writeb', '$writeh', '$writememb', '$writememh',
+                '$writeo'), suffix=r'\b'),
              Name.Builtin),
 
             (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
@@ -276,15 +279,6 @@
         ]
     }
 
-    def get_tokens_unprocessed(self, text):
-        for index, token, value in \
-                RegexLexer.get_tokens_unprocessed(self, text):
-            # Convention: mark all upper case names as constants
-            if token is Name:
-                if value.isupper():
-                    token = Name.Constant
-            yield index, token, value
-
 
 class VhdlLexer(RegexLexer):
     """
--- a/eric6/ThirdParty/Pygments/pygments/lexers/hexdump.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/hexdump.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for hexadecimal dumps.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/html.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/html.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for HTML, XML and related markup.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -244,7 +244,7 @@
     filenames = ['*.xsl', '*.xslt', '*.xpl']  # xpl is XProc
     mimetypes = ['application/xsl+xml', 'application/xslt+xml']
 
-    EXTRA_KEYWORDS = set((
+    EXTRA_KEYWORDS = {
         'apply-imports', 'apply-templates', 'attribute',
         'attribute-set', 'call-template', 'choose', 'comment',
         'copy', 'copy-of', 'decimal-format', 'element', 'fallback',
@@ -253,7 +253,7 @@
         'preserve-space', 'processing-instruction', 'sort',
         'strip-space', 'stylesheet', 'template', 'text', 'transform',
         'value-of', 'variable', 'when', 'with-param'
-    ))
+    }
 
     def get_tokens_unprocessed(self, text):
         for index, token, value in XmlLexer.get_tokens_unprocessed(self, text):
--- a/eric6/ThirdParty/Pygments/pygments/lexers/idl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/idl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for IDL.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/igor.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/igor.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Igor Pro.
 
-    :copyright: Copyright 2006-2018 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/inferno.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/inferno.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Inferno os and all the related stuff.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/installers.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/installers.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for installer/packager DSLs and formats.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/int_fiction.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/int_fiction.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for interactive fiction languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/iolang.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/iolang.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Io language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/j.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/j.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the J programming language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/javascript.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/javascript.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for JavaScript and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -15,7 +15,7 @@
     this, words, combined
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation, Other
-from pygments.util import get_bool_opt, iteritems
+from pygments.util import get_bool_opt
 import pygments.unistring as uni
 
 __all__ = ['JavascriptLexer', 'KalLexer', 'LiveScriptLexer', 'DartLexer',
@@ -37,7 +37,7 @@
 
     name = 'JavaScript'
     aliases = ['js', 'javascript']
-    filenames = ['*.js', '*.jsm']
+    filenames = ['*.js', '*.jsm', '*.mjs']
     mimetypes = ['application/javascript', 'application/x-javascript',
                  'text/x-javascript', 'text/javascript']
 
@@ -259,11 +259,11 @@
             (r'//', String.Regex, ('#pop', 'multilineregex')),
             (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
              r'([gim]+\b|\B)', String.Regex, '#pop'),
+            (r'/', Operator, '#pop'),
             default('#pop'),
         ],
         'root': [
-            # this next expr leads to infinite loops root -> slashstartsregex
-            # (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
+            (r'^(?=\s|/)', Text, 'slashstartsregex'),
             include('commentsandwhitespace'),
             (r'(?:\([^()]+\))?[ ]*[~-]{1,2}>|'
              r'(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}', Name.Function),
@@ -372,6 +372,7 @@
             (r'\b(bool|double|dynamic|int|num|Object|String|void)\b', Keyword.Type),
             (r'\b(false|null|true)\b', Keyword.Constant),
             (r'[~!%^&*+=|?:<>/-]|as\b', Operator),
+            (r'@[a-zA-Z_$]\w*', Name.Decorator),
             (r'[a-zA-Z_$]\w*:', Name.Label),
             (r'[a-zA-Z_$]\w*', Name),
             (r'[(){}\[\],.;]', Punctuation),
@@ -453,6 +454,10 @@
 
     flags = re.DOTALL | re.MULTILINE
 
+    # Higher priority than the TypoScriptLexer, as TypeScript is far more
+    # common these days
+    priority = 0.5
+
     tokens = {
         'commentsandwhitespace': [
             (r'\s+', Text),
@@ -478,7 +483,7 @@
             (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
             (r'[})\].]', Punctuation),
             (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
-             r'throw|try|catch|finally|new|delete|typeof|instanceof|void|'
+             r'throw|try|catch|finally|new|delete|typeof|instanceof|void|of|'
              r'this)\b', Keyword, 'slashstartsregex'),
             (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
             (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
@@ -534,12 +539,6 @@
         ],
     }
 
-    def analyse_text(text):
-        if re.search(r'^(import.+(from\s+)?["\']|'
-                     r'(export\s*)?(interface|class|function)\s+)',
-                     text, re.MULTILINE):
-            return 1.0
-
 
 class LassoLexer(RegexLexer):
     """
@@ -768,9 +767,9 @@
         self._members = set()
         if self.builtinshighlighting:
             from pygments.lexers._lasso_builtins import BUILTINS, MEMBERS
-            for key, value in iteritems(BUILTINS):
+            for key, value in BUILTINS.items():
                 self._builtins.update(value)
-            for key, value in iteritems(MEMBERS):
+            for key, value in MEMBERS.items():
                 self._members.update(value)
         RegexLexer.__init__(self, **options)
 
@@ -1035,7 +1034,6 @@
     filenames = ['*.coffee']
     mimetypes = ['text/coffeescript']
 
-
     _operator_re = (
         r'\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|'
         r'\|\||\\(?=\n)|'
@@ -1062,7 +1060,7 @@
             # This isn't really guarding against mishighlighting well-formed
             # code, just the ability to infinite-loop between root and
             # slashstartsregex.
-            (r'/', Operator),
+            (r'/', Operator, '#pop'),
             default('#pop'),
         ],
         'root': [
@@ -1137,7 +1135,7 @@
 
 class MaskLexer(RegexLexer):
     """
-    For `Mask <http://github.com/atmajs/MaskJS>`__ markup.
+    For `Mask <https://github.com/atmajs/MaskJS>`__ markup.
 
     .. versionadded:: 2.0
     """
@@ -1459,17 +1457,20 @@
             (r'8r[0-7]+', Number.Oct),
             (r'2r[01]+', Number.Bin),
             (r'16r[a-fA-F0-9]+', Number.Hex),
-            (r'([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?', Number.Radix),
+            (r'([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?',
+             Number.Radix),
             (r'\d+', Number.Integer)
         ],
     }
 
+
 class JuttleLexer(RegexLexer):
     """
     For `Juttle`_ source code.
 
     .. _Juttle: https://github.com/juttle/juttle
 
+    .. versionadded:: 2.2
     """
 
     name = 'Juttle'
@@ -1504,19 +1505,24 @@
              r'(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):', String.Moment),
             (r':\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?'
              r'(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:', String.Moment),
-            (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?'
-             r'(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?)'
+            (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|'
+             r'day|week|month|year)[s]?'
+             r'(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|'
+             r'day|week|month|year)[s]?)'
              r'|[ ]+(ago|from[ ]+now))*:', String.Moment),
             (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
              r'(==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
             (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
             (r'[})\].]', Punctuation),
             (r'(import|return|continue|if|else)\b', Keyword, 'slashstartsregex'),
-            (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration, 'slashstartsregex'),
+            (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration,
+             'slashstartsregex'),
             (r'(batch|emit|filter|head|join|keep|pace|pass|put|read|reduce|remove|'
-             r'sequence|skip|sort|split|tail|unbatch|uniq|view|write)\b', Keyword.Reserved),
+             r'sequence|skip|sort|split|tail|unbatch|uniq|view|write)\b',
+             Keyword.Reserved),
             (r'(true|false|null|Infinity)\b', Keyword.Constant),
-            (r'(Array|Date|Juttle|Math|Number|Object|RegExp|String)\b', Name.Builtin),
+            (r'(Array|Date|Juttle|Math|Number|Object|RegExp|String)\b',
+             Name.Builtin),
             (JS_IDENT, Name.Other),
             (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
             (r'[0-9]+', Number.Integer),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/julia.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/julia.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Julia language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -48,6 +48,7 @@
 
             # keywords
             (r'in\b', Keyword.Pseudo),
+            (r'isa\b', Keyword.Pseudo),
             (r'(true|false)\b', Keyword.Constant),
             (r'(local|global|const)\b', Keyword.Declaration),
             (words([
@@ -55,7 +56,8 @@
                 'baremodule', 'begin', 'bitstype', 'break', 'catch', 'ccall',
                 'continue', 'do', 'else', 'elseif', 'end', 'export', 'finally',
                 'for', 'if', 'import', 'importall', 'let', 'macro', 'module',
-                'quote', 'return', 'try', 'using', 'while'],
+                'mutable', 'primitive', 'quote', 'return', 'struct', 'try',
+                'using', 'while'],
                 suffix=r'\b'), Keyword),
 
             # NOTE
--- a/eric6/ThirdParty/Pygments/pygments/lexers/jvm.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/jvm.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Pygments lexers for JVM languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -21,12 +21,12 @@
 __all__ = ['JavaLexer', 'ScalaLexer', 'GosuLexer', 'GosuTemplateLexer',
            'GroovyLexer', 'IokeLexer', 'ClojureLexer', 'ClojureScriptLexer',
            'KotlinLexer', 'XtendLexer', 'AspectJLexer', 'CeylonLexer',
-           'PigLexer', 'GoloLexer', 'JasminLexer']
+           'PigLexer', 'GoloLexer', 'JasminLexer', 'SarlLexer']
 
 
 class JavaLexer(RegexLexer):
     """
-    For `Java <http://www.sun.com/java/>`_ source code.
+    For `Java <https://www.oracle.com/technetwork/java/>`_ source code.
     """
 
     name = 'Java'
@@ -50,7 +50,7 @@
             (r'((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)'  # return arguments
              r'((?:[^\W\d]|\$)[\w$]*)'                  # method name
              r'(\s*)(\()',                              # signature start
-             bygroups(using(this), Name.Function, Text, Operator)),
+             bygroups(using(this), Name.Function, Text, Punctuation)),
             (r'@[^\W\d][\w.]*', Name.Decorator),
             (r'(abstract|const|enum|extends|final|implements|native|private|'
              r'protected|public|static|strictfp|super|synchronized|throws|'
@@ -61,11 +61,14 @@
             (r'(true|false|null)\b', Keyword.Constant),
             (r'(class|interface)(\s+)', bygroups(Keyword.Declaration, Text),
              'class'),
+            (r'(var)(\s+)', bygroups(Keyword.Declaration, Text),
+             'var'),
             (r'(import(?:\s+static)?)(\s+)', bygroups(Keyword.Namespace, Text),
              'import'),
             (r'"(\\\\|\\"|[^"])*"', String),
             (r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
-            (r'(\.)((?:[^\W\d]|\$)[\w$]*)', bygroups(Operator, Name.Attribute)),
+            (r'(\.)((?:[^\W\d]|\$)[\w$]*)', bygroups(Punctuation,
+                                                     Name.Attribute)),
             (r'^\s*([^\W\d]|\$)[\w$]*:', Name.Label),
             (r'([^\W\d]|\$)[\w$]*', Name),
             (r'([0-9][0-9_]*\.([0-9][0-9_]*)?|'
@@ -80,12 +83,16 @@
             (r'0[bB][01][01_]*[lL]?', Number.Bin),
             (r'0[0-7_]+[lL]?', Number.Oct),
             (r'0|[1-9][0-9_]*[lL]?', Number.Integer),
-            (r'[~^*!%&\[\](){}<>|+=:;,./?-]', Operator),
+            (r'[~^*!%&\[\]<>|+=/?-]', Operator),
+            (r'[{}();:.,]', Punctuation),
             (r'\n', Text)
         ],
         'class': [
             (r'([^\W\d]|\$)[\w$]*', Name.Class, '#pop')
         ],
+        'var': [
+            (r'([^\W\d]|\$)[\w$]*', Name, '#pop')
+        ],
         'import': [
             (r'[\w.]+\*?', Name.Namespace, '#pop')
         ],
@@ -104,7 +111,7 @@
     filenames = ['*.aj']
     mimetypes = ['text/x-aspectj']
 
-    aj_keywords = set((
+    aj_keywords = {
         'aspect', 'pointcut', 'privileged', 'call', 'execution',
         'initialization', 'preinitialization', 'handler', 'get', 'set',
         'staticinitialization', 'target', 'args', 'within', 'withincode',
@@ -114,9 +121,9 @@
         'thisJoinPointStaticPart', 'thisEnclosingJoinPointStaticPart',
         'issingleton', 'perthis', 'pertarget', 'percflow', 'percflowbelow',
         'pertypewithin', 'lock', 'unlock', 'thisAspectInstance'
-    ))
-    aj_inter_type = set(('parents:', 'warning:', 'error:', 'soft:', 'precedence:'))
-    aj_inter_type_annotation = set(('@type', '@method', '@constructor', '@field'))
+    }
+    aj_inter_type = {'parents:', 'warning:', 'error:', 'soft:', 'precedence:'}
+    aj_inter_type_annotation = {'@type', '@method', '@constructor', '@field'}
 
     def get_tokens_unprocessed(self, text):
         for index, token, value in JavaLexer.get_tokens_unprocessed(self, text):
@@ -264,8 +271,7 @@
             # method names
             (r'(class|trait|object)(\s+)', bygroups(Keyword, Text), 'class'),
             (r'[^\S\n]+', Text),
-            (r'//.*?\n', Comment.Single),
-            (r'/\*', Comment.Multiline, 'comment'),
+            include('comments'),
             (u'@%s' % idrest, Name.Decorator),
             (u'(abstract|ca(?:se|tch)|d(?:ef|o)|e(?:lse|xtends)|'
              u'f(?:inal(?:ly)?|or(?:Some)?)|i(?:f|mplicit)|'
@@ -300,16 +306,17 @@
         ],
         'class': [
             (u'(%s|%s|`[^`]+`)(\\s*)(\\[)' % (idrest, op),
-             bygroups(Name.Class, Text, Operator), 'typeparam'),
+             bygroups(Name.Class, Text, Operator), ('#pop', 'typeparam')),
             (r'\s+', Text),
+            include('comments'),
             (r'\{', Operator, '#pop'),
             (r'\(', Operator, '#pop'),
-            (r'//.*?\n', Comment.Single, '#pop'),
             (u'%s|%s|`[^`]+`' % (idrest, op), Name.Class, '#pop'),
         ],
         'type': [
             (r'\s+', Text),
-            (r'<[%:]|>:|[#_]|forSome|type', Keyword),
+            include('comments'),
+            (r'<[%:]|>:|[#_]|\bforSome\b|\btype\b', Keyword),
             (u'([,);}]|=>|=|\u21d2)(\\s*)', bygroups(Operator, Text), '#pop'),
             (r'[({]', Operator, '#push'),
             (u'((?:%s|%s|`[^`]+`)(?:\\.(?:%s|%s|`[^`]+`))*)(\\s*)(\\[)' %
@@ -318,16 +325,21 @@
             (u'((?:%s|%s|`[^`]+`)(?:\\.(?:%s|%s|`[^`]+`))*)(\\s*)$' %
              (idrest, op, idrest, op),
              bygroups(Keyword.Type, Text), '#pop'),
-            (r'//.*?\n', Comment.Single, '#pop'),
             (u'\\.|%s|%s|`[^`]+`' % (idrest, op), Keyword.Type)
         ],
         'typeparam': [
-            (r'[\s,]+', Text),
-            (u'<[%:]|=>|>:|[#_\u21D2]|forSome|type', Keyword),
+            (r'\s+', Text),
+            include('comments'),
+            (r',+', Punctuation),
+            (u'<[%:]|=>|>:|[#_\u21D2]|\bforSome\b|\btype\b', Keyword),
             (r'([\])}])', Operator, '#pop'),
             (r'[(\[{]', Operator, '#push'),
             (u'\\.|%s|%s|`[^`]+`' % (idrest, op), Keyword.Type)
         ],
+        'comments': [
+            (r'//.*?\n', Comment.Single),
+            (r'/\*', Comment.Multiline, 'comment'),
+        ],
         'comment': [
             (r'[^/*]+', Comment.Multiline),
             (r'/\*', Comment.Multiline, '#push'),
@@ -1006,7 +1018,7 @@
 
     .. versionadded:: 1.5
     """
-
+    
     name = 'Kotlin'
     aliases = ['kotlin']
     filenames = ['*.kt']
@@ -1017,15 +1029,22 @@
     kt_name = ('@?[_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl') + ']' +
                '[' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl', 'Nd', 'Pc', 'Cf',
                                  'Mn', 'Mc') + ']*')
-    kt_id = '(' + kt_name + '|`' + kt_name + '`)'
+    
+    kt_space_name = ('@?[_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl') + ']' +
+               '[' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl', 'Nd', 'Pc', 'Cf',
+                                 'Mn', 'Mc', 'Zs') + ',-]*')
+
+    kt_id = '(' + kt_name + '|`' + kt_space_name + '`)'
 
     tokens = {
         'root': [
             (r'^\s*\[.*?\]', Name.Attribute),
             (r'[^\S\n]+', Text),
+            (r'\s+', Text),
             (r'\\\n', Text),  # line continuation
             (r'//.*?\n', Comment.Single),
             (r'/[*].*?[*]/', Comment.Multiline),
+            (r'""".*?"""', String),
             (r'\n', Text),
             (r'::|!!|\?[:.]', Operator),
             (r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation),
@@ -1035,11 +1054,14 @@
             (r"'\\.'|'[^\\]'", String.Char),
             (r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|"
              r"0[xX][0-9a-fA-F]+[Ll]?", Number),
-            (r'(class)(\s+)(object)', bygroups(Keyword, Text, Keyword)),
+            (r'(object)(\s+)(:)(\s+)', bygroups(Keyword, Text, Punctuation, Text), 'class'),
+            (r'(companion)(\s+)(object)', bygroups(Keyword, Text, Keyword)),
             (r'(class|interface|object)(\s+)', bygroups(Keyword, Text), 'class'),
             (r'(package|import)(\s+)', bygroups(Keyword, Text), 'package'),
+            (r'(val|var)(\s+)([(])', bygroups(Keyword, Text, Punctuation), 'property_dec'),
             (r'(val|var)(\s+)', bygroups(Keyword, Text), 'property'),
             (r'(fun)(\s+)', bygroups(Keyword, Text), 'function'),
+            (r'(inline fun)(\s+)', bygroups(Keyword, Text), 'function'),
             (r'(abstract|annotation|as|break|by|catch|class|companion|const|'
              r'constructor|continue|crossinline|data|do|dynamic|else|enum|'
              r'external|false|final|finally|for|fun|get|if|import|in|infix|'
@@ -1058,9 +1080,26 @@
         'property': [
             (kt_id, Name.Property, '#pop')
         ],
+        'property_dec': [
+            (r'(,)(\s*)', bygroups(Punctuation, Text)),
+            (r'(:)(\s*)', bygroups(Punctuation, Text)),
+            (r'<', Punctuation, 'generic'),
+            (r'([)])', Punctuation, '#pop'),
+            (kt_id, Name.Property)
+        ],
         'function': [
+            (r'<', Punctuation, 'generic'),
+            (r''+kt_id+'([.])'+kt_id, bygroups(Name.Class, Punctuation, Name.Function), '#pop'),
             (kt_id, Name.Function, '#pop')
         ],
+        'generic': [
+            (r'(>)(\s*)', bygroups(Punctuation, Text), '#pop'),
+            (r':',Punctuation),
+            (r'(reified|out|in)\b', Keyword),
+            (r',',Text),
+            (r'\s+',Text),
+            (kt_id,Name)
+        ]
     }
 
 
@@ -1571,3 +1610,57 @@
                      re.MULTILINE):
             score += 0.6
         return score
+
+
+class SarlLexer(RegexLexer):
+	"""
+	For `SARL <http://www.sarl.io>`_ source code.
+	
+	.. versionadded:: 2.4
+	"""
+	
+	name = 'SARL'
+	aliases = ['sarl']
+	filenames = ['*.sarl']
+	mimetypes = ['text/x-sarl']
+	
+	flags = re.MULTILINE | re.DOTALL
+	
+	tokens = {
+		'root': [
+			# method names
+			(r'^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)'  # return arguments
+			 r'([a-zA-Z_$][\w$]*)'                      # method name
+			 r'(\s*)(\()',                             # signature start
+			 bygroups(using(this), Name.Function, Text, Operator)),
+			(r'[^\S\n]+', Text),
+			(r'//.*?\n', Comment.Single),
+			(r'/\*.*?\*/', Comment.Multiline),
+			(r'@[a-zA-Z_][\w.]*', Name.Decorator),
+			(r'(as|break|case|catch|default|do|else|extends|extension|finally|fires|for|if|implements|instanceof|new|on|requires|return|super|switch|throw|throws|try|typeof|uses|while|with)\b',
+			 Keyword),
+			(r'(abstract|def|dispatch|final|native|override|private|protected|public|static|strictfp|synchronized|transient|val|var|volatile)\b', Keyword.Declaration),
+			 (r'(boolean|byte|char|double|float|int|long|short|void)\b',
+			  Keyword.Type),
+			 (r'(package)(\s+)', bygroups(Keyword.Namespace, Text)),
+			 (r'(false|it|null|occurrence|this|true|void)\b', Keyword.Constant),
+			 (r'(agent|annotation|artifact|behavior|capacity|class|enum|event|interface|skill|space)(\s+)', bygroups(Keyword.Declaration, Text),
+			  'class'),
+			 (r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
+			 (r'"(\\\\|\\"|[^"])*"', String),
+			 (r"'(\\\\|\\'|[^'])*'", String),
+			 (r'[a-zA-Z_]\w*:', Name.Label),
+			 (r'[a-zA-Z_$]\w*', Name),
+			 (r'[~^*!%&\[\](){}<>\|+=:;,./?-]', Operator),
+			 (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
+			 (r'0x[0-9a-fA-F]+', Number.Hex),
+			 (r'[0-9]+L?', Number.Integer),
+			 (r'\n', Text)
+		],
+		'class': [
+			(r'[a-zA-Z_]\w*', Name.Class, '#pop')
+		],
+		'import': [
+			(r'[\w.]+\*?', Name.Namespace, '#pop')
+		],
+	}
--- a/eric6/ThirdParty/Pygments/pygments/lexers/lisp.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/lisp.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Lispy languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -1400,7 +1400,7 @@
 
 class NewLispLexer(RegexLexer):
     """
-    For `newLISP. <www.newlisp.org>`_ source code (version 10.3.0).
+    For `newLISP. <http://www.newlisp.org/>`_ source code (version 10.3.0).
 
     .. versionadded:: 1.5
     """
@@ -1554,7 +1554,7 @@
     # Take a deep breath...
     symbol = r'((?:%s)(?:%s)*)' % (nonmacro, constituent)
 
-    macros = set((
+    macros = {
         'atomic-change-group', 'case', 'block', 'cl-block', 'cl-callf', 'cl-callf2',
         'cl-case', 'cl-decf', 'cl-declaim', 'cl-declare',
         'cl-define-compiler-macro', 'cl-defmacro', 'cl-defstruct',
@@ -1601,17 +1601,17 @@
         'with-tramp-file-property', 'with-tramp-progress-reporter',
         'with-wrapper-hook', 'load-time-value', 'locally', 'macrolet', 'progv',
         'return-from',
-    ))
+    }
 
-    special_forms = set((
+    special_forms = {
         'and', 'catch', 'cond', 'condition-case', 'defconst', 'defvar',
         'function', 'if', 'interactive', 'let', 'let*', 'or', 'prog1',
         'prog2', 'progn', 'quote', 'save-current-buffer', 'save-excursion',
         'save-restriction', 'setq', 'setq-default', 'subr-arity',
         'unwind-protect', 'while',
-    ))
+    }
 
-    builtin_function = set((
+    builtin_function = {
         '%', '*', '+', '-', '/', '/=', '1+', '1-', '<', '<=', '=', '>', '>=',
         'Snarf-documentation', 'abort-recursive-edit', 'abs',
         'accept-process-output', 'access-file', 'accessible-keymaps', 'acos',
@@ -1937,8 +1937,9 @@
         'split-window-internal', 'sqrt', 'standard-case-table',
         'standard-category-table', 'standard-syntax-table', 'start-kbd-macro',
         'start-process', 'stop-process', 'store-kbd-macro-event', 'string',
-        'string-as-multibyte', 'string-as-unibyte', 'string-bytes',
-        'string-collate-equalp', 'string-collate-lessp', 'string-equal',
+        'string=', 'string<', 'string>', 'string-as-multibyte',
+        'string-as-unibyte', 'string-bytes', 'string-collate-equalp',
+        'string-collate-lessp', 'string-equal', 'string-greaterp',
         'string-lessp', 'string-make-multibyte', 'string-make-unibyte',
         'string-match', 'string-to-char', 'string-to-multibyte',
         'string-to-number', 'string-to-syntax', 'string-to-unibyte',
@@ -2050,23 +2051,23 @@
         'xw-color-values', 'xw-display-color-p', 'xw-display-color-p',
         'yes-or-no-p', 'zlib-available-p', 'zlib-decompress-region',
         'forward-point',
-    ))
+    }
 
-    builtin_function_highlighted = set((
+    builtin_function_highlighted = {
         'defvaralias', 'provide', 'require',
         'with-no-warnings', 'define-widget', 'with-electric-help',
         'throw', 'defalias', 'featurep'
-    ))
+    }
 
-    lambda_list_keywords = set((
+    lambda_list_keywords = {
         '&allow-other-keys', '&aux', '&body', '&environment', '&key', '&optional',
         '&rest', '&whole',
-    ))
+    }
 
-    error_keywords = set((
+    error_keywords = {
         'cl-assert', 'cl-check-type', 'error', 'signal',
         'user-error', 'warn',
-    ))
+    }
 
     def get_tokens_unprocessed(self, text):
         stack = ['root']
@@ -2225,7 +2226,7 @@
 
     BUILTINS_ANYWHERE = ('where', 'skip', '>>', '_', '!', '<e>', '<!>')
 
-    MAPPINGS = dict((s, Keyword) for s in DECLARATIONS)
+    MAPPINGS = {s: Keyword for s in DECLARATIONS}
     MAPPINGS.update((s, Name.Builtin) for s in BUILTINS)
     MAPPINGS.update((s, Keyword) for s in SPECIAL_FORMS)
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/make.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/make.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Makefiles and similar.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -102,8 +102,8 @@
             (r'\$\(', Keyword, 'expansion'),
         ],
         'expansion': [
-            (r'[^$a-zA-Z_()]+', Text),
-            (r'[a-zA-Z_]+', Name.Variable),
+            (r'[^\w$().-]+', Text),
+            (r'[\w.-]+', Name.Variable),
             (r'\$', Keyword),
             (r'\(', Keyword, '#push'),
             (r'\)', Keyword, '#pop'),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/markup.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/markup.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for non-HTML markup languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -222,10 +222,9 @@
                       Punctuation, Text, using(this, state='inline'))),
             # Comments
             (r'^ *\.\..*(\n( +.*\n|\n)+)?', Comment.Preproc),
-            # Field list
-            (r'^( *)(:[a-zA-Z-]+:)(\s*)$', bygroups(Text, Name.Class, Text)),
-            (r'^( *)(:.*?:)([ \t]+)(.*?)$',
-             bygroups(Text, Name.Class, Text, Name.Function)),
+            # Field list marker
+            (r'^( *)(:(?:\\\\|\\:|[^:\n])+:(?=\s))([ \t]*)',
+             bygroups(Text, Name.Class, Text)),
             # Definition list
             (r'^(\S.*(?<!::)\n)((?:(?: +.*)\n)+)',
              bygroups(using(this, state='inline'), using(this, state='inline'))),
@@ -582,6 +581,11 @@
             (r'[@#][\w/:]+', Name.Entity),
             # (image?) links eg: ![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
             (r'(!?\[)([^]]+)(\])(\()([^)]+)(\))', bygroups(Text, Name.Tag, Text, Text, Name.Attribute, Text)),
+            # reference-style links, e.g.:
+            #   [an example][id]
+            #   [id]: http://example.com/
+            (r'(\[)([^]]+)(\])(\[)([^]]*)(\])', bygroups(Text, Name.Tag, Text, Text, Name.Label, Text)),
+            (r'^(\s*\[)([^]]*)(\]:\s*)(.+)', bygroups(Text, Name.Label, Text, Name.Attribute)),
 
             # general text, must come last!
             (r'[^\\\s]+', Text),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/math.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/math.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Just export lexers that were contained in this module.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/matlab.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/matlab.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Matlab and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -72,6 +72,8 @@
              "hilb", "invhilb", "magic", "pascal", "rosser", "toeplitz", "vander",
              "wilkinson")
 
+    _operators = r'-|==|~=|<=|>=|<|>|&&|&|~|\|\|?|\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\'
+
     tokens = {
         'root': [
             # line starting with '!' is sent as a system command.  not sure what
@@ -79,14 +81,17 @@
             (r'^!.*', String.Other),
             (r'%\{\s*\n', Comment.Multiline, 'blockcomment'),
             (r'%.*$', Comment),
-            (r'^\s*function', Keyword, 'deffunc'),
+            (r'^\s*function\b', Keyword, 'deffunc'),
 
             # from 'iskeyword' on version 7.11 (R2010):
-            (words((
-                'break', 'case', 'catch', 'classdef', 'continue', 'else', 'elseif',
-                'end', 'enumerated', 'events', 'for', 'function', 'global', 'if',
-                'methods', 'otherwise', 'parfor', 'persistent', 'properties',
-                'return', 'spmd', 'switch', 'try', 'while'), suffix=r'\b'),
+            # Check that there is no preceding dot, as keywords are valid field
+            # names.
+            (words(('break', 'case', 'catch', 'classdef', 'continue', 'else',
+                    'elseif', 'end', 'enumerated', 'events', 'for', 'function',
+                    'global', 'if', 'methods', 'otherwise', 'parfor',
+                    'persistent', 'properties', 'return', 'spmd', 'switch',
+                    'try', 'while'),
+                   prefix=r'(?<!\.)', suffix=r'\b'),
              Keyword),
 
             ("(" + "|".join(elfun + specfun + elmat) + r')\b',  Name.Builtin),
@@ -94,10 +99,22 @@
             # line continuation with following comment:
             (r'\.\.\..*$', Comment),
 
+            # command form:
+            # "How MATLAB Recognizes Command Syntax" specifies that an operator
+            # is recognized if it is either surrounded by spaces or by no
+            # spaces on both sides; only the former case matters for us.  (This
+            # allows distinguishing `cd ./foo` from `cd ./ foo`.)
+            (r'(?:^|(?<=;))(\s*)(\w+)(\s+)(?!=|\(|(%s)\s+)' % _operators,
+             bygroups(Text, Name, Text), 'commandargs'),
+
             # operators:
-            (r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
-            # operators requiring escape for re:
-            (r'\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\', Operator),
+            (_operators, Operator),
+
+            # numbers (must come before punctuation to handle `.5`; cannot use
+            # `\b` due to e.g. `5. + .5`).
+            (r'(?<!\w)((\d+\.\d*)|(\d*\.\d+))([eEf][+-]?\d+)?(?!\w)', Number.Float),
+            (r'\b\d+[eEf][+-]?[0-9]+\b', Number.Float),
+            (r'\b\d+\b', Number.Integer),
 
             # punctuation:
             (r'\[|\]|\(|\)|\{|\}|:|@|\.|,', Punctuation),
@@ -107,17 +124,12 @@
             # (not great, but handles common cases...)
             (r'(?<=[\w)\].])\'+', Operator),
 
-            (r'(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?', Number.Float),
-            (r'\d+[eEf][+-]?[0-9]+', Number.Float),
-            (r'\d+', Number.Integer),
+            (r'"(""|[^"])*"', String),
 
             (r'(?<![\w)\].])\'', String, 'string'),
             (r'[a-zA-Z_]\w*', Name),
             (r'.', Text),
         ],
-        'string': [
-            (r'[^\']*\'', String, '#pop')
-        ],
         'blockcomment': [
             (r'^\s*%\}', Comment.Multiline, '#pop'),
             (r'^.*\n', Comment.Multiline),
@@ -131,12 +143,29 @@
             # function with no args
             (r'(\s*)([a-zA-Z_]\w*)', bygroups(Text, Name.Function), '#pop'),
         ],
+        'string': [
+            (r"[^']*'", String, '#pop'),
+        ],
+        'commandargs': [
+            (r"[ \t]+", Text),
+            ("'[^']*'", String),
+            (r"[^';\s]+", String),
+            (";?", Punctuation, '#pop'),
+        ]
     }
 
     def analyse_text(text):
-        if re.match(r'^\s*%', text, re.M):  # comment
+        # function declaration.
+        first_non_comment = next((line for line in text.splitlines()
+                                  if not re.match(r'^\s*%', text)), '').strip()
+        if (first_non_comment.startswith('function')
+                and '{' not in first_non_comment):
+            return 1.
+        # comment
+        elif re.search(r'^\s*%', text, re.M):
             return 0.2
-        elif re.match(r'^!\w+', text, re.M):  # system cmd
+        # system cmd
+        elif re.search(r'^!\w+', text, re.M):
             return 0.2
 
 
@@ -536,7 +565,7 @@
         'root': [
             # We should look into multiline comments
             (r'[%#].*$', Comment),
-            (r'^\s*function', Keyword, 'deffunc'),
+            (r'^\s*function\b', Keyword, 'deffunc'),
 
             # from 'iskeyword' on hg changeset 8cc154f45e37
             (words((
@@ -609,7 +638,7 @@
     tokens = {
         'root': [
             (r'//.*?$', Comment.Single),
-            (r'^\s*function', Keyword, 'deffunc'),
+            (r'^\s*function\b', Keyword, 'deffunc'),
 
             (words((
                 '__FILE__', '__LINE__', 'break', 'case', 'catch', 'classdef', 'continue', 'do', 'else',
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/mime.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,226 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.mime
+    ~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for Multipurpose Internet Mail Extensions (MIME) data.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include
+from pygments.lexers import get_lexer_for_mimetype
+from pygments.token import Text, Name, String, Operator, Comment, Other
+from pygments.util import get_int_opt, ClassNotFound
+
+__all__ = ["MIMELexer"]
+
+
+class MIMELexer(RegexLexer):
+    """
+    Lexer for Multipurpose Internet Mail Extensions (MIME) data. This lexer is
+    designed to process the nested mulitpart data.
+
+    It assumes that the given data contains both header and body (and is
+    splitted by empty line). If no valid header is found, then the entire data
+    would be treated as body.
+
+    Additional options accepted:
+
+    `MIME-max-level`
+        Max recurssion level for nested MIME structure. Any negative number
+        would treated as unlimited. (default: -1)
+
+    `Content-Type`
+        Treat the data as specific content type. Useful when header is
+        missing, or this lexer would try to parse from header. (default:
+        `text/plain`)
+
+    `Multipart-Boundary`
+        Set the default multipart boundary delimiter. This option is only used
+        when `Content-Type` is `multipart` and header is missing. This lexer
+        would try to parse from header by default. (default: None)
+
+    `Content-Transfer-Encoding`
+        Treat the data as specific encoding. Or this lexer would try to parse
+        from header by default. (default: None)
+
+    .. versionadded:: 2.5
+    """
+
+    name = "MIME"
+    aliases = ["mime"]
+    mimetypes = ["multipart/mixed",
+                 "multipart/related",
+                 "multipart/alternative"]
+
+    def __init__(self, **options):
+        super(MIMELexer, self).__init__(**options)
+        self.boundary = options.get("Multipart-Boundary")
+        self.content_transfer_encoding = options.get("Content_Transfer_Encoding")
+        self.content_type = options.get("Content_Type", "text/plain")
+        self.max_nested_level = get_int_opt(options, "MIME-max-level", -1)
+
+    def analyse_text(text):
+        try:
+            header, body = text.strip().split("\n\n", 1)
+            if not body.strip():
+                return 0.1
+
+            invalid_headers = MIMELexer.tokens["header"].sub("", header)
+            if invalid_headers.strip():
+                return 0.1
+            else:
+                return 1
+
+        except ValueError:
+            return 0.1
+
+    def get_header_tokens(self, match):
+        field = match.group(1)
+
+        if field.lower() in self.attention_headers:
+            yield match.start(1), Name.Tag, field + ":"
+            yield match.start(2), Text.Whitespace, match.group(2)
+
+            pos = match.end(2)
+            body = match.group(3)
+            for i, t, v in self.get_tokens_unprocessed(body, ("root", field.lower())):
+                yield pos + i, t, v
+
+        else:
+            yield match.start(), Comment, match.group()
+
+    def get_body_tokens(self, match):
+        pos_body_start = match.start()
+        entire_body = match.group()
+
+        # skip first newline
+        if entire_body[0] == '\n':
+            yield pos_body_start, Text.Whitespace, u'\n'
+            pos_body_start = pos_body_start + 1
+            entire_body = entire_body[1:]
+
+        # if it is not a mulitpart
+        if not self.content_type.startswith("multipart") or not self.boundary:
+            for i, t, v in self.get_bodypart_tokens(entire_body):
+                yield pos_body_start + i, t, v
+            return
+
+        # find boundary
+        bdry_pattern = r"^--%s(--)?\n" % re.escape(self.boundary)
+        bdry_matcher = re.compile(bdry_pattern, re.MULTILINE)
+
+        # some data has prefix text before first boundary
+        m = bdry_matcher.search(entire_body)
+        if m:
+            pos_part_start = pos_body_start + m.end()
+            pos_iter_start = lpos_end = m.end()
+            yield pos_body_start, Text, entire_body[:m.start()]
+            yield pos_body_start + lpos_end, String.Delimiter, m.group()
+        else:
+            pos_part_start = pos_body_start
+            pos_iter_start = 0
+
+        # process tokens of each body part
+        for m in bdry_matcher.finditer(entire_body, pos_iter_start):
+            # bodypart
+            lpos_start = pos_part_start - pos_body_start
+            lpos_end = m.start()
+            part = entire_body[lpos_start:lpos_end]
+            for i, t, v in self.get_bodypart_tokens(part):
+                yield pos_part_start + i, t, v
+
+            # boundary
+            yield pos_body_start + lpos_end, String.Delimiter, m.group()
+            pos_part_start = pos_body_start + m.end()
+
+        # some data has suffix text after last boundary
+        lpos_start = pos_part_start - pos_body_start
+        if lpos_start != len(entire_body):
+            yield pos_part_start, Text, entire_body[lpos_start:]
+
+    def get_bodypart_tokens(self, text):
+        # return if:
+        #  * no content
+        #  * no content type specific
+        #  * content encoding is not readable
+        #  * max recurrsion exceed
+        if not text.strip() or not self.content_type:
+            return [(0, Other, text)]
+
+        cte = self.content_transfer_encoding
+        if cte and cte not in {"8bit", "7bit", "quoted-printable"}:
+            return [(0, Other, text)]
+
+        if self.max_nested_level == 0:
+            return [(0, Other, text)]
+
+        # get lexer
+        try:
+            lexer = get_lexer_for_mimetype(self.content_type)
+        except ClassNotFound:
+            return [(0, Other, text)]
+
+        if isinstance(lexer, type(self)):
+            lexer.max_nested_level = self.max_nested_level - 1
+
+        return lexer.get_tokens_unprocessed(text)
+
+    def store_content_type(self, match):
+        self.content_type = match.group(1)
+
+        prefix_len = match.start(1) - match.start(0)
+        yield match.start(0), Text.Whitespace, match.group(0)[:prefix_len]
+        yield match.start(1), Name.Label, match.group(2)
+        yield match.end(2), String.Delimiter, u"/"
+        yield match.start(3), Name.Label, match.group(3)
+
+    def get_content_type_subtokens(self, match):
+        yield match.start(1), Text, match.group(1)
+        yield match.start(2), Text.Whitespace, match.group(2)
+        yield match.start(3), Name.Attribute, match.group(3)
+        yield match.start(4), Operator, match.group(4)
+        yield match.start(5), String, match.group(5)
+
+        if match.group(3).lower() == "boundary":
+            boundary = match.group(5).strip()
+            if boundary[0] == '"' and boundary[-1] == '"':
+                boundary = boundary[1:-1]
+            self.boundary = boundary
+
+    def store_content_transfer_encoding(self, match):
+        self.content_transfer_encoding = match.group(0).lower()
+        yield match.start(0), Name.Constant, match.group(0)
+
+    attention_headers = {"content-type", "content-transfer-encoding"}
+
+    tokens = {
+        "root": [
+            (r"^([\w-]+):( *)([\s\S]*?\n)(?![ \t])", get_header_tokens),
+            (r"^$[\s\S]+", get_body_tokens),
+        ],
+        "header": [
+            # folding
+            (r"\n[ \t]", Text.Whitespace),
+            (r"\n(?![ \t])", Text.Whitespace, "#pop"),
+        ],
+        "content-type": [
+            include("header"),
+            (
+                r"^\s*((multipart|application|audio|font|image|model|text|video"
+                r"|message)/([\w-]+))",
+                store_content_type,
+            ),
+            (r'(;)((?:[ \t]|\n[ \t])*)([\w:-]+)(=)([\s\S]*?)(?=;|\n(?![ \t]))',
+             get_content_type_subtokens),
+            (r';[ \t]*\n(?![ \t])', Text, '#pop'),
+        ],
+        "content-transfer-encoding": [
+            include("header"),
+            (r"([\w-]+)", store_content_transfer_encoding),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ml.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ml.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for ML family languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -15,7 +15,7 @@
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation, Error
 
-__all__ = ['SMLLexer', 'OcamlLexer', 'OpaLexer']
+__all__ = ['SMLLexer', 'OcamlLexer', 'OpaLexer', 'ReasonLexer']
 
 
 class SMLLexer(RegexLexer):
@@ -30,7 +30,7 @@
     filenames = ['*.sml', '*.sig', '*.fun']
     mimetypes = ['text/x-standardml', 'application/x-standardml']
 
-    alphanumid_reserved = set((
+    alphanumid_reserved = {
         # Core
         'abstype', 'and', 'andalso', 'as', 'case', 'datatype', 'do', 'else',
         'end', 'exception', 'fn', 'fun', 'handle', 'if', 'in', 'infix',
@@ -39,16 +39,16 @@
         # Modules
         'eqtype', 'functor', 'include', 'sharing', 'sig', 'signature',
         'struct', 'structure', 'where',
-    ))
+    }
 
-    symbolicid_reserved = set((
+    symbolicid_reserved = {
         # Core
         ':', r'\|', '=', '=>', '->', '#',
         # Modules
         ':>',
-    ))
+    }
 
-    nonid_reserved = set(('(', ')', '[', ']', '{', '}', ',', ';', '...', '_'))
+    nonid_reserved = {'(', ')', '[', ']', '{', '}', ',', ';', '...', '_'}
 
     alphanumid_re = r"[a-zA-Z][\w']*"
     symbolicid_re = r"[!%&$#+\-/:<=>?@\\~`^|*]+"
@@ -445,7 +445,6 @@
         ],
     }
 
-
 class OpaLexer(RegexLexer):
     """
     Lexer for the Opa language (http://opalang.org).
@@ -767,3 +766,94 @@
             (r'[^\-]+|-', Comment),
         ],
     }
+
+class ReasonLexer(RegexLexer):
+    """
+    For the ReasonML language (https://reasonml.github.io/).
+
+    .. versionadded:: 2.6
+    """
+
+    name = 'ReasonML'
+    aliases = ['reason', "reasonml"]
+    filenames = ['*.re', '*.rei']
+    mimetypes = ['text/x-reasonml']
+
+    keywords = (
+    'as', 'assert', 'begin', 'class', 'constraint', 'do', 'done', 'downto', 
+    'else', 'end', 'exception', 'external', 'false', 'for', 'fun', 'esfun', 
+    'function', 'functor', 'if', 'in', 'include', 'inherit', 'initializer', 'lazy', 
+    'let', 'switch', 'module', 'pub', 'mutable', 'new', 'nonrec', 'object', 'of', 
+    'open', 'pri', 'rec', 'sig', 'struct', 'then', 'to', 'true', 'try', 
+    'type', 'val', 'virtual', 'when', 'while', 'with'
+    )
+    keyopts = (
+        '!=', '#', '&', '&&', r'\(', r'\)', r'\*', r'\+', ',', '-',
+        r'-\.', '=>', r'\.', r'\.\.', r'\.\.\.', ':', '::', ':=', ':>', ';', ';;', '<',
+        '<-', '=', '>', '>]', r'>\}', r'\?', r'\?\?', r'\[', r'\[<', r'\[>',
+        r'\[\|', ']', '_', '`', r'\{', r'\{<', r'\|\|', r'\|', r'\|]', r'\}', '~'
+    )
+
+    operators = r'[!$%&*+\./:<=>?@^|~-]'
+    word_operators = ('and', 'asr', 'land', 'lor', 'lsl', 'lsr', 'lxor', 'mod', 'or')
+    prefix_syms = r'[!?~]'
+    infix_syms = r'[=<>@^|&+\*/$%-]'
+    primitives = ('unit', 'int', 'float', 'bool', 'string', 'char', 'list', 'array')
+
+    tokens = {
+        'escape-sequence': [
+            (r'\\[\\"\'ntbr]', String.Escape),
+            (r'\\[0-9]{3}', String.Escape),
+            (r'\\x[0-9a-fA-F]{2}', String.Escape),
+        ],
+        'root': [
+            (r'\s+', Text),
+            (r'false|true|\(\)|\[\]', Name.Builtin.Pseudo),
+            (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Namespace, 'dotted'),
+            (r'\b([A-Z][\w\']*)', Name.Class),
+            (r'//.*?\n', Comment.Single),
+            (r'\/\*(?![\/])', Comment.Multiline, 'comment'),
+            (r'\b(%s)\b' % '|'.join(keywords), Keyword),
+            (r'(%s)' % '|'.join(keyopts[::-1]), Operator.Word),
+            (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
+            (r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
+            (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
+
+            (r"[^\W\d][\w']*", Name),
+
+            (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
+            (r'0[xX][\da-fA-F][\da-fA-F_]*', Number.Hex),
+            (r'0[oO][0-7][0-7_]*', Number.Oct),
+            (r'0[bB][01][01_]*', Number.Bin),
+            (r'\d[\d_]*', Number.Integer),
+
+            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'",
+             String.Char),
+            (r"'.'", String.Char),
+            (r"'", Keyword),
+
+            (r'"', String.Double, 'string'),
+
+            (r'[~?][a-z][\w\']*:', Name.Variable),
+        ],
+        'comment': [
+            (r'[^\/*]+', Comment.Multiline),
+            (r'\/\*', Comment.Multiline, '#push'),
+            (r'\*\/', Comment.Multiline, '#pop'),
+            (r'[\*]', Comment.Multiline),
+        ],
+        'string': [
+            (r'[^\\"]+', String.Double),
+            include('escape-sequence'),
+            (r'\\\n', String.Double),
+            (r'"', String.Double, '#pop'),
+        ],
+        'dotted': [
+            (r'\s+', Text),
+            (r'\.', Punctuation),
+            (r'[A-Z][\w\']*(?=\s*\.)', Name.Namespace),
+            (r'[A-Z][\w\']*', Name.Class, '#pop'),
+            (r'[a-z_][\w\']*', Name, '#pop'),
+            default('#pop'),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/modeling.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/modeling.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for modeling languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -13,7 +13,7 @@
 
 from pygments.lexer import RegexLexer, include, bygroups, using, default
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+    Number, Punctuation, Whitespace
 
 from pygments.lexers.html import HtmlLexer
 from pygments.lexers import _stan_builtins
@@ -62,8 +62,8 @@
              r'transpose|vector|zeros)\b', Name.Builtin),
             (r'(algorithm|annotation|break|connect|constant|constrainedby|der|'
              r'discrete|each|else|elseif|elsewhen|encapsulated|enumeration|'
-             r'equation|exit|expandable|extends|external|final|flow|for|if|'
-             r'import|impure|in|initial|inner|input|loop|nondiscrete|outer|'
+             r'equation|exit|expandable|extends|external|firstTick|final|flow|for|if|'
+             r'import|impure|in|initial|inner|input|interval|loop|nondiscrete|outer|'
              r'output|parameter|partial|protected|public|pure|redeclare|'
              r'replaceable|return|stream|then|when|while)\b',
              Keyword.Reserved),
@@ -284,8 +284,8 @@
     """Pygments Lexer for Stan models.
 
     The Stan modeling language is specified in the *Stan Modeling Language
-    User's Guide and Reference Manual, v2.8.0*,
-    `pdf <https://github.com/stan-dev/stan/releases/download/v2.8.8/stan-reference-2.8.0.pdf>`__.
+    User's Guide and Reference Manual, v2.17.0*,
+    `pdf <https://github.com/stan-dev/stan/releases/download/v2.17.0/stan-reference-2.17.0.pdf>`__.
 
     .. versionadded:: 1.6
     """
@@ -316,19 +316,26 @@
                         'parameters', r'transformed\s+parameters',
                         'model', r'generated\s+quantities')),
              bygroups(Keyword.Namespace, Text, Punctuation)),
+            # target keyword
+            (r'target\s*\+=', Keyword),
             # Reserved Words
             (r'(%s)\b' % r'|'.join(_stan_builtins.KEYWORDS), Keyword),
             # Truncation
             (r'T(?=\s*\[)', Keyword),
             # Data types
             (r'(%s)\b' % r'|'.join(_stan_builtins.TYPES), Keyword.Type),
+             # < should be punctuation, but elsewhere I can't tell if it is in
+             # a range constraint
+            (r'(<)(\s*)(upper|lower)(\s*)(=)',
+             bygroups(Operator, Whitespace, Keyword, Whitespace, Punctuation)),
+            (r'(,)(\s*)(upper)(\s*)(=)',
+             bygroups(Punctuation, Whitespace, Keyword, Whitespace, Punctuation)),
             # Punctuation
-            (r"[;:,\[\]()]", Punctuation),
+            (r"[;,\[\]()]", Punctuation),
             # Builtin
-            (r'(%s)(?=\s*\()'
-             % r'|'.join(_stan_builtins.FUNCTIONS
-                         + _stan_builtins.DISTRIBUTIONS),
-             Name.Builtin),
+            (r'(%s)(?=\s*\()' % '|'.join(_stan_builtins.FUNCTIONS), Name.Builtin),
+            (r'(~)(\s*)(%s)(?=\s*\()' % '|'.join(_stan_builtins.DISTRIBUTIONS),
+                bygroups(Operator, Whitespace, Name.Builtin)),
             # Special names ending in __, like lp__
             (r'[A-Za-z]\w*__\b', Name.Builtin.Pseudo),
             (r'(%s)\b' % r'|'.join(_stan_builtins.RESERVED), Keyword.Reserved),
@@ -337,17 +344,18 @@
             # Regular variable names
             (r'[A-Za-z]\w*\b', Name),
             # Real Literals
-            (r'-?[0-9]+(\.[0-9]+)?[eE]-?[0-9]+', Number.Float),
-            (r'-?[0-9]*\.[0-9]*', Number.Float),
+            (r'[0-9]+(\.[0-9]*)?([eE][+-]?[0-9]+)?', Number.Float),
+            (r'\.[0-9]+([eE][+-]?[0-9]+)?', Number.Float),
             # Integer Literals
-            (r'-?[0-9]+', Number.Integer),
+            (r'[0-9]+', Number.Integer),
             # Assignment operators
-            # SLexer makes these tokens Operators.
-            (r'<-|~', Operator),
+            (r'<-|(?:\+|-|\.?/|\.?\*|=)?=|~', Operator),
             # Infix, prefix and postfix operators (and = )
-            (r"\+|-|\.?\*|\.?/|\\|'|\^|==?|!=?|<=?|>=?|\|\||&&", Operator),
+            (r"\+|-|\.?\*|\.?/|\\|'|\^|!=?|<=?|>=?|\|\||&&|%|\?|:", Operator),
             # Block delimiters
             (r'[{}]', Punctuation),
+            # Distribution |
+            (r'\|', Punctuation)
         ]
     }
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/modula2.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/modula2.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Multi-Dialect Lexer for Modula-2.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/monte.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/monte.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Monte programming language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/mosel.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,448 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.mosel
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for the mosel language.
+    http://www.fico.com/en/products/fico-xpress-optimization
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, words
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation
+
+__all__ = ['MoselLexer']
+
+FUNCTIONS = (
+    # core functions
+    '_',
+    'abs',
+    'arctan',
+    'asproc',
+    'assert',
+    'bitflip',
+    'bitneg',
+    'bitset',
+    'bitshift',
+    'bittest',
+    'bitval',
+    'ceil',
+    'cos',
+    'create',
+    'currentdate',
+    'currenttime',
+    'cutelt',
+    'cutfirst',
+    'cuthead',
+    'cutlast',
+    'cuttail',
+    'datablock',
+    'delcell',
+    'exists',
+    'exit',
+    'exp',
+    'exportprob',
+    'fclose',
+    'fflush',
+    'finalize',
+    'findfirst',
+    'findlast',
+    'floor',
+    'fopen',
+    'fselect',
+    'fskipline',
+    'fwrite',
+    'fwrite_',
+    'fwriteln',
+    'fwriteln_',
+    'getact',
+    'getcoeff',
+    'getcoeffs',
+    'getdual',
+    'getelt',
+    'getfid',
+    'getfirst',
+    'getfname',
+    'gethead',
+    'getlast',
+    'getobjval',
+    'getparam',
+    'getrcost',
+    'getreadcnt',
+    'getreverse',
+    'getsize',
+    'getslack',
+    'getsol',
+    'gettail',
+    'gettype',
+    'getvars',
+    'isdynamic',
+    'iseof',
+    'isfinite',
+    'ishidden',
+    'isinf',
+    'isnan',
+    'isodd',
+    'ln',
+    'localsetparam',
+    'log',
+    'makesos1',
+    'makesos2',
+    'maxlist',
+    'memoryuse',
+    'minlist',
+    'newmuid',
+    'publish',
+    'random',
+    'read',
+    'readln',
+    'reset',
+    'restoreparam',
+    'reverse',
+    'round',
+    'setcoeff',
+    'sethidden',
+    'setioerr',
+    'setmatherr',
+    'setname',
+    'setparam',
+    'setrandseed',
+    'setrange',
+    'settype',
+    'sin',
+    'splithead',
+    'splittail',
+    'sqrt',
+    'strfmt',
+    'substr',
+    'timestamp',
+    'unpublish',
+    'versionnum',
+    'versionstr',
+    'write',
+    'write_',
+    'writeln',
+    'writeln_',
+
+    # mosel exam mmxprs | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
+    'addcut',
+    'addcuts',
+    'addmipsol',
+    'basisstability',
+    'calcsolinfo',
+    'clearmipdir',
+    'clearmodcut',
+    'command',
+    'copysoltoinit',
+    'crossoverlpsol',
+    'defdelayedrows',
+    'defsecurevecs',
+    'delcuts',
+    'dropcuts',
+    'estimatemarginals',
+    'fixglobal',
+    'flushmsgq',
+    'getbstat',
+    'getcnlist',
+    'getcplist',
+    'getdualray',
+    'getiis',
+    'getiissense',
+    'getiistype',
+    'getinfcause',
+    'getinfeas',
+    'getlb',
+    'getlct',
+    'getleft',
+    'getloadedlinctrs',
+    'getloadedmpvars',
+    'getname',
+    'getprimalray',
+    'getprobstat',
+    'getrange',
+    'getright',
+    'getsensrng',
+    'getsize',
+    'getsol',
+    'gettype',
+    'getub',
+    'getvars',
+    'gety',
+    'hasfeature',
+    'implies',
+    'indicator',
+    'initglobal',
+    'ishidden',
+    'isiisvalid',
+    'isintegral',
+    'loadbasis',
+    'loadcuts',
+    'loadlpsol',
+    'loadmipsol',
+    'loadprob',
+    'maximise',
+    'maximize',
+    'minimise',
+    'minimize',
+    'postsolve',
+    'readbasis',
+    'readdirs',
+    'readsol',
+    'refinemipsol',
+    'rejectintsol',
+    'repairinfeas',
+    'repairinfeas_deprec',
+    'resetbasis',
+    'resetiis',
+    'resetsol',
+    'savebasis',
+    'savemipsol',
+    'savesol',
+    'savestate',
+    'selectsol',
+    'setarchconsistency',
+    'setbstat',
+    'setcallback',
+    'setcbcutoff',
+    'setgndata',
+    'sethidden',
+    'setlb',
+    'setmipdir',
+    'setmodcut',
+    'setsol',
+    'setub',
+    'setucbdata',
+    'stopoptimise',
+    'stopoptimize',
+    'storecut',
+    'storecuts',
+    'unloadprob',
+    'uselastbarsol',
+    'writebasis',
+    'writedirs',
+    'writeprob',
+    'writesol',
+    'xor',
+    'xprs_addctr',
+    'xprs_addindic',
+
+    # mosel exam mmsystem | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
+    'addmonths',
+    'copytext',
+    'cuttext',
+    'deltext',
+    'endswith',
+    'erase',
+    'expandpath',
+    'fcopy',
+    'fdelete',
+    'findfiles',
+    'findtext',
+    'fmove',
+    'formattext',
+    'getasnumber',
+    'getchar',
+    'getcwd',
+    'getdate',
+    'getday',
+    'getdaynum',
+    'getdays',
+    'getdirsep',
+    'getdsoparam',
+    'getendparse',
+    'getenv',
+    'getfsize',
+    'getfstat',
+    'getftime',
+    'gethour',
+    'getminute',
+    'getmonth',
+    'getmsec',
+    'getoserrmsg',
+    'getoserror',
+    'getpathsep',
+    'getqtype',
+    'getsecond',
+    'getsepchar',
+    'getsize',
+    'getstart',
+    'getsucc',
+    'getsysinfo',
+    'getsysstat',
+    'gettime',
+    'gettmpdir',
+    'gettrim',
+    'getweekday',
+    'getyear',
+    'inserttext',
+    'isvalid',
+    'jointext',
+    'makedir',
+    'makepath',
+    'newtar',
+    'newzip',
+    'nextfield',
+    'openpipe',
+    'parseextn',
+    'parseint',
+    'parsereal',
+    'parsetext',
+    'pastetext',
+    'pathmatch',
+    'pathsplit',
+    'qsort',
+    'quote',
+    'readtextline',
+    'regmatch',
+    'regreplace',
+    'removedir',
+    'removefiles',
+    'setchar',
+    'setdate',
+    'setday',
+    'setdsoparam',
+    'setendparse',
+    'setenv',
+    'sethour',
+    'setminute',
+    'setmonth',
+    'setmsec',
+    'setoserror',
+    'setqtype',
+    'setsecond',
+    'setsepchar',
+    'setstart',
+    'setsucc',
+    'settime',
+    'settrim',
+    'setyear',
+    'sleep',
+    'splittext',
+    'startswith',
+    'system',
+    'tarlist',
+    'textfmt',
+    'tolower',
+    'toupper',
+    'trim',
+    'untar',
+    'unzip',
+    'ziplist',
+
+    # mosel exam mmjobs | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
+    'canceltimer',
+    'clearaliases',
+    'compile',
+    'connect',
+    'detach',
+    'disconnect',
+    'dropnextevent',
+    'findxsrvs',
+    'getaliases',
+    'getannidents',
+    'getannotations',
+    'getbanner',
+    'getclass',
+    'getdsoprop',
+    'getdsopropnum',
+    'getexitcode',
+    'getfromgid',
+    'getfromid',
+    'getfromuid',
+    'getgid',
+    'gethostalias',
+    'getid',
+    'getmodprop',
+    'getmodpropnum',
+    'getnextevent',
+    'getnode',
+    'getrmtid',
+    'getstatus',
+    'getsysinfo',
+    'gettimer',
+    'getuid',
+    'getvalue',
+    'isqueueempty',
+    'load',
+    'nullevent',
+    'peeknextevent',
+    'resetmodpar',
+    'run',
+    'send',
+    'setcontrol',
+    'setdefstream',
+    'setgid',
+    'sethostalias',
+    'setmodpar',
+    'settimer',
+    'setuid',
+    'setworkdir',
+    'stop',
+    'unload',
+    'wait',
+    'waitexpired',
+    'waitfor',
+    'waitforend',
+)
+
+
+class MoselLexer(RegexLexer):
+    """
+    For the Mosel optimization language.
+
+    .. versionadded:: 2.6
+    """
+    name = 'Mosel'
+    aliases = ['mosel']
+    filenames = ['*.mos']
+
+    tokens = {
+        'root': [
+            (r'\n', Text),
+            (r'\s+', Text.Whitespace),
+            (r'!.*?\n', Comment.Single),
+            (r'\(!(.|\n)*?!\)', Comment.Multiline),
+            (words((
+                'and', 'as', 'break', 'case', 'count', 'declarations', 'do',
+                'dynamic', 'elif', 'else', 'end-', 'end', 'evaluation', 'false',
+                'forall', 'forward', 'from', 'function', 'hashmap', 'if',
+                'imports', 'include', 'initialisations', 'initializations', 'inter',
+                'max', 'min', 'model', 'namespace', 'next', 'not', 'nsgroup',
+                'nssearch', 'of', 'options', 'or', 'package', 'parameters',
+                'procedure', 'public', 'prod', 'record', 'repeat', 'requirements',
+                'return', 'sum', 'then', 'to', 'true', 'union', 'until', 'uses',
+                'version', 'while', 'with'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Builtin),
+            (words((
+                'range', 'array', 'set', 'list', 'mpvar', 'mpproblem', 'linctr',
+                'nlctr', 'integer', 'string', 'real', 'boolean', 'text', 'time',
+                'date', 'datetime', 'returned', 'Model', 'Mosel', 'counter',
+                'xmldoc', 'is_sos1', 'is_sos2', 'is_integer', 'is_binary',
+                'is_continuous', 'is_free', 'is_semcont', 'is_semint',
+                'is_partint'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Type),
+            (r'(\+|\-|\*|/|=|<=|>=|\||\^|<|>|<>|\.\.|\.|:=|::|:|in|mod|div)',
+             Operator),
+            (r'[()\[\]{},;]+', Punctuation),
+            (words(FUNCTIONS,  prefix=r'\b', suffix=r'\b'), Name.Function),
+            (r'(\d+\.(?!\.)\d*|\.(?!.)\d+)([eE][+-]?\d+)?', Number.Float),
+            (r'\d+([eE][+-]?\d+)?', Number.Integer),
+            (r'[+-]?Infinity', Number.Integer),
+            (r'0[xX][0-9a-fA-F]+', Number),
+            (r'"', String.Double, 'double_quote'),
+            (r'\'', String.Single, 'single_quote'),
+            (r'(\w+|(\.(?!\.)))', Text),
+        ],
+        'single_quote': [
+            (r'\'', String.Single, '#pop'),
+            (r'[^\']+', String.Single),
+        ],
+        'double_quote': [
+            (r'(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)', String.Escape),
+            (r'\"', String.Double, '#pop'),
+            (r'[^"\\]+', String.Double),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ncl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ncl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for NCAR Command Language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/nimrod.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/nimrod.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Nim language (formerly known as Nimrod).
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/nit.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/nit.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for the Nit language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/nix.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/nix.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the NixOS Nix language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/oberon.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/oberon.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Oberon family languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/objective.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/objective.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Objective-C family languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -66,7 +66,7 @@
                     'copy', 'retain', 'assign', 'unsafe_unretained', 'atomic', 'nonatomic',
                     'readonly', 'readwrite', 'setter', 'getter', 'typeof', 'in',
                     'out', 'inout', 'release', 'class', '@dynamic', '@optional',
-                    '@required', '@autoreleasepool'), suffix=r'\b'),
+                    '@required', '@autoreleasepool', '@import'), suffix=r'\b'),
                  Keyword),
                 (words(('id', 'instancetype', 'Class', 'IMP', 'SEL', 'BOOL',
                         'IBOutlet', 'IBAction', 'unichar'), suffix=r'\b'),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ooc.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ooc.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Ooc language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/other.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/other.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Just export lexer classes previously contained in this module.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/parasail.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/parasail.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for ParaSail.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/parsers.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/parsers.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for parser generators.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/pascal.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/pascal.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Pascal family languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -68,29 +68,29 @@
         'dispose', 'exit', 'false', 'new', 'true'
     )
 
-    BLOCK_KEYWORDS = set((
+    BLOCK_KEYWORDS = {
         'begin', 'class', 'const', 'constructor', 'destructor', 'end',
         'finalization', 'function', 'implementation', 'initialization',
         'label', 'library', 'operator', 'procedure', 'program', 'property',
         'record', 'threadvar', 'type', 'unit', 'uses', 'var'
-    ))
+    }
 
-    FUNCTION_MODIFIERS = set((
+    FUNCTION_MODIFIERS = {
         'alias', 'cdecl', 'export', 'inline', 'interrupt', 'nostackframe',
         'pascal', 'register', 'safecall', 'softfloat', 'stdcall',
         'varargs', 'name', 'dynamic', 'near', 'virtual', 'external',
         'override', 'assembler'
-    ))
+    }
 
     # XXX: those aren't global. but currently we know no way for defining
     #      them just for the type context.
-    DIRECTIVES = set((
+    DIRECTIVES = {
         'absolute', 'abstract', 'assembler', 'cppdecl', 'default', 'far',
         'far16', 'forward', 'index', 'oldfpccall', 'private', 'protected',
         'published', 'public'
-    ))
+    }
 
-    BUILTIN_TYPES = set((
+    BUILTIN_TYPES = {
         'ansichar', 'ansistring', 'bool', 'boolean', 'byte', 'bytebool',
         'cardinal', 'char', 'comp', 'currency', 'double', 'dword',
         'extended', 'int64', 'integer', 'iunknown', 'longbool', 'longint',
@@ -104,7 +104,7 @@
         'shortstring', 'single', 'smallint', 'string', 'tclass', 'tdate',
         'tdatetime', 'textfile', 'thandle', 'tobject', 'ttime', 'variant',
         'widechar', 'widestring', 'word', 'wordbool'
-    ))
+    }
 
     BUILTIN_UNITS = {
         'System': (
@@ -246,7 +246,7 @@
         )
     }
 
-    ASM_REGISTERS = set((
+    ASM_REGISTERS = {
         'ah', 'al', 'ax', 'bh', 'bl', 'bp', 'bx', 'ch', 'cl', 'cr0',
         'cr1', 'cr2', 'cr3', 'cr4', 'cs', 'cx', 'dh', 'di', 'dl', 'dr0',
         'dr1', 'dr2', 'dr3', 'dr4', 'dr5', 'dr6', 'dr7', 'ds', 'dx',
@@ -255,9 +255,9 @@
         'mm7', 'si', 'sp', 'ss', 'st0', 'st1', 'st2', 'st3', 'st4', 'st5',
         'st6', 'st7', 'xmm0', 'xmm1', 'xmm2', 'xmm3', 'xmm4', 'xmm5',
         'xmm6', 'xmm7'
-    ))
+    }
 
-    ASM_INSTRUCTIONS = set((
+    ASM_INSTRUCTIONS = {
         'aaa', 'aad', 'aam', 'aas', 'adc', 'add', 'and', 'arpl', 'bound',
         'bsf', 'bsr', 'bswap', 'bt', 'btc', 'btr', 'bts', 'call', 'cbw',
         'cdq', 'clc', 'cld', 'cli', 'clts', 'cmc', 'cmova', 'cmovae',
@@ -296,7 +296,7 @@
         'sysret', 'test', 'ud1', 'ud2', 'umov', 'verr', 'verw', 'wait',
         'wbinvd', 'wrmsr', 'wrshr', 'xadd', 'xbts', 'xchg', 'xlat',
         'xlatb', 'xor'
-    ))
+    }
 
     def __init__(self, **options):
         Lexer.__init__(self, **options)
@@ -577,7 +577,7 @@
             (r'\n+', Text),
         ],
         'numbers': [
-            (r'[0-9_]+#[0-9a-f]+#', Number.Hex),
+            (r'[0-9_]+#[0-9a-f_\.]+#', Number.Hex),
             (r'[0-9_]+\.[0-9_]*', Number.Float),
             (r'[0-9_]+', Number.Integer),
         ],
--- a/eric6/ThirdParty/Pygments/pygments/lexers/pawn.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/pawn.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Pawn languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -86,25 +86,25 @@
         ]
     }
 
-    SM_TYPES = set(('Action', 'bool', 'Float', 'Plugin', 'String', 'any',
-                    'AdminFlag', 'OverrideType', 'OverrideRule', 'ImmunityType',
-                    'GroupId', 'AdminId', 'AdmAccessMode', 'AdminCachePart',
-                    'CookieAccess', 'CookieMenu', 'CookieMenuAction', 'NetFlow',
-                    'ConVarBounds', 'QueryCookie', 'ReplySource',
-                    'ConVarQueryResult', 'ConVarQueryFinished', 'Function',
-                    'Action', 'Identity', 'PluginStatus', 'PluginInfo', 'DBResult',
-                    'DBBindType', 'DBPriority', 'PropType', 'PropFieldType',
-                    'MoveType', 'RenderMode', 'RenderFx', 'EventHookMode',
-                    'EventHook', 'FileType', 'FileTimeMode', 'PathType',
-                    'ParamType', 'ExecType', 'DialogType', 'Handle', 'KvDataTypes',
-                    'NominateResult', 'MapChange', 'MenuStyle', 'MenuAction',
-                    'MenuSource', 'RegexError', 'SDKCallType', 'SDKLibrary',
-                    'SDKFuncConfSource', 'SDKType', 'SDKPassMethod', 'RayType',
-                    'TraceEntityFilter', 'ListenOverride', 'SortOrder', 'SortType',
-                    'SortFunc2D', 'APLRes', 'FeatureType', 'FeatureStatus',
-                    'SMCResult', 'SMCError', 'TFClassType', 'TFTeam', 'TFCond',
-                    'TFResourceType', 'Timer', 'TopMenuAction', 'TopMenuObjectType',
-                    'TopMenuPosition', 'TopMenuObject', 'UserMsg'))
+    SM_TYPES = {'Action', 'bool', 'Float', 'Plugin', 'String', 'any',
+                'AdminFlag', 'OverrideType', 'OverrideRule', 'ImmunityType',
+                'GroupId', 'AdminId', 'AdmAccessMode', 'AdminCachePart',
+                'CookieAccess', 'CookieMenu', 'CookieMenuAction', 'NetFlow',
+                'ConVarBounds', 'QueryCookie', 'ReplySource',
+                'ConVarQueryResult', 'ConVarQueryFinished', 'Function',
+                'Action', 'Identity', 'PluginStatus', 'PluginInfo', 'DBResult',
+                'DBBindType', 'DBPriority', 'PropType', 'PropFieldType',
+                'MoveType', 'RenderMode', 'RenderFx', 'EventHookMode',
+                'EventHook', 'FileType', 'FileTimeMode', 'PathType',
+                'ParamType', 'ExecType', 'DialogType', 'Handle', 'KvDataTypes',
+                'NominateResult', 'MapChange', 'MenuStyle', 'MenuAction',
+                'MenuSource', 'RegexError', 'SDKCallType', 'SDKLibrary',
+                'SDKFuncConfSource', 'SDKType', 'SDKPassMethod', 'RayType',
+                'TraceEntityFilter', 'ListenOverride', 'SortOrder', 'SortType',
+                'SortFunc2D', 'APLRes', 'FeatureType', 'FeatureStatus',
+                'SMCResult', 'SMCError', 'TFClassType', 'TFTeam', 'TFCond',
+                'TFResourceType', 'Timer', 'TopMenuAction', 'TopMenuObjectType',
+                'TopMenuPosition', 'TopMenuObject', 'UserMsg'}
 
     def __init__(self, **options):
         self.smhighlighting = get_bool_opt(options,
--- a/eric6/ThirdParty/Pygments/pygments/lexers/perl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/perl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -3,9 +3,9 @@
     pygments.lexers.perl
     ~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Perl and related languages.
+    Lexers for Perl, Raku and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -22,7 +22,7 @@
 
 class PerlLexer(RegexLexer):
     """
-    For `Perl <http://www.perl.org>`_ source code.
+    For `Perl <https://www.perl.org>`_ source code.
     """
 
     name = 'Perl'
@@ -214,91 +214,189 @@
 
 class Perl6Lexer(ExtendedRegexLexer):
     """
-    For `Perl 6 <http://www.perl6.org>`_ source code.
+    For `Raku <https://www.raku.org>`_ (a.k.a. Perl 6) source code.
 
     .. versionadded:: 2.0
     """
 
     name = 'Perl6'
-    aliases = ['perl6', 'pl6']
+    aliases = ['perl6', 'pl6', 'raku']
     filenames = ['*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6',
-                 '*.6pm', '*.p6m', '*.pm6', '*.t']
+                 '*.6pm', '*.p6m', '*.pm6', '*.t', '*.raku', '*.rakumod',
+                 '*.rakutest', '*.rakudoc']
     mimetypes = ['text/x-perl6', 'application/x-perl6']
     flags = re.MULTILINE | re.DOTALL | re.UNICODE
 
     PERL6_IDENTIFIER_RANGE = r"['\w:-]"
 
     PERL6_KEYWORDS = (
-        'BEGIN', 'CATCH', 'CHECK', 'CONTROL', 'END', 'ENTER', 'FIRST', 'INIT',
-        'KEEP', 'LAST', 'LEAVE', 'NEXT', 'POST', 'PRE', 'START', 'TEMP',
-        'UNDO', 'as', 'assoc', 'async', 'augment', 'binary', 'break', 'but',
-        'cached', 'category', 'class', 'constant', 'contend', 'continue',
-        'copy', 'deep', 'default', 'defequiv', 'defer', 'die', 'do', 'else',
-        'elsif', 'enum', 'equiv', 'exit', 'export', 'fail', 'fatal', 'for',
-        'gather', 'given', 'goto', 'grammar', 'handles', 'has', 'if', 'inline',
-        'irs', 'is', 'last', 'leave', 'let', 'lift', 'loop', 'looser', 'macro',
-        'make', 'maybe', 'method', 'module', 'multi', 'my', 'next', 'of',
-        'ofs', 'only', 'oo', 'ors', 'our', 'package', 'parsed', 'prec',
-        'proto', 'readonly', 'redo', 'ref', 'regex', 'reparsed', 'repeat',
-        'require', 'required', 'return', 'returns', 'role', 'rule', 'rw',
-        'self', 'slang', 'state', 'sub', 'submethod', 'subset', 'supersede',
-        'take', 'temp', 'tighter', 'token', 'trusts', 'try', 'unary',
-        'unless', 'until', 'use', 'warn', 'when', 'where', 'while', 'will',
+        #Phasers
+        'BEGIN','CATCH','CHECK','CLOSE','CONTROL','DOC','END','ENTER','FIRST',
+        'INIT','KEEP','LAST','LEAVE','NEXT','POST','PRE','QUIT','UNDO',
+        #Keywords
+        'anon','augment','but','class','constant','default','does','else',
+        'elsif','enum','for','gather','given','grammar','has','if','import',
+        'is','let','loop','made','make','method','module','multi','my','need',
+        'orwith','our','proceed','proto','repeat','require','return',
+        'return-rw','returns','role','rule','state','sub','submethod','subset',
+        'succeed','supersede','token','try','unit','unless','until','use',
+        'when','while','with','without',
+        #Traits
+        'export','native','repr','required','rw','symbol',
     )
 
     PERL6_BUILTINS = (
-        'ACCEPTS', 'HOW', 'REJECTS', 'VAR', 'WHAT', 'WHENCE', 'WHERE', 'WHICH',
-        'WHO', 'abs', 'acos', 'acosec', 'acosech', 'acosh', 'acotan', 'acotanh',
-        'all', 'any', 'approx', 'arity', 'asec', 'asech', 'asin', 'asinh',
-        'assuming', 'atan', 'atan2', 'atanh', 'attr', 'bless', 'body', 'by',
-        'bytes', 'caller', 'callsame', 'callwith', 'can', 'capitalize', 'cat',
-        'ceiling', 'chars', 'chmod', 'chomp', 'chop', 'chr', 'chroot',
-        'circumfix', 'cis', 'classify', 'clone', 'close', 'cmp_ok', 'codes',
-        'comb', 'connect', 'contains', 'context', 'cos', 'cosec', 'cosech',
-        'cosh', 'cotan', 'cotanh', 'count', 'defined', 'delete', 'diag',
-        'dies_ok', 'does', 'e', 'each', 'eager', 'elems', 'end', 'eof', 'eval',
-        'eval_dies_ok', 'eval_elsewhere', 'eval_lives_ok', 'evalfile', 'exists',
-        'exp', 'first', 'flip', 'floor', 'flunk', 'flush', 'fmt', 'force_todo',
-        'fork', 'from', 'getc', 'gethost', 'getlogin', 'getpeername', 'getpw',
-        'gmtime', 'graphs', 'grep', 'hints', 'hyper', 'im', 'index', 'infix',
-        'invert', 'is_approx', 'is_deeply', 'isa', 'isa_ok', 'isnt', 'iterator',
-        'join', 'key', 'keys', 'kill', 'kv', 'lastcall', 'lazy', 'lc', 'lcfirst',
-        'like', 'lines', 'link', 'lives_ok', 'localtime', 'log', 'log10', 'map',
-        'max', 'min', 'minmax', 'name', 'new', 'nextsame', 'nextwith', 'nfc',
-        'nfd', 'nfkc', 'nfkd', 'nok_error', 'nonce', 'none', 'normalize', 'not',
-        'nothing', 'ok', 'once', 'one', 'open', 'opendir', 'operator', 'ord',
-        'p5chomp', 'p5chop', 'pack', 'pair', 'pairs', 'pass', 'perl', 'pi',
-        'pick', 'plan', 'plan_ok', 'polar', 'pop', 'pos', 'postcircumfix',
-        'postfix', 'pred', 'prefix', 'print', 'printf', 'push', 'quasi',
-        'quotemeta', 'rand', 're', 'read', 'readdir', 'readline', 'reduce',
-        'reverse', 'rewind', 'rewinddir', 'rindex', 'roots', 'round',
-        'roundrobin', 'run', 'runinstead', 'sameaccent', 'samecase', 'say',
-        'sec', 'sech', 'sech', 'seek', 'shape', 'shift', 'sign', 'signature',
-        'sin', 'sinh', 'skip', 'skip_rest', 'sleep', 'slurp', 'sort', 'splice',
-        'split', 'sprintf', 'sqrt', 'srand', 'strand', 'subst', 'substr', 'succ',
-        'sum', 'symlink', 'tan', 'tanh', 'throws_ok', 'time', 'times', 'to',
-        'todo', 'trim', 'trim_end', 'trim_start', 'true', 'truncate', 'uc',
-        'ucfirst', 'undef', 'undefine', 'uniq', 'unlike', 'unlink', 'unpack',
-        'unpolar', 'unshift', 'unwrap', 'use_ok', 'value', 'values', 'vec',
-        'version_lt', 'void', 'wait', 'want', 'wrap', 'write', 'zip',
+        'ACCEPTS','abs','abs2rel','absolute','accept','accessed','acos',
+        'acosec','acosech','acosh','acotan','acotanh','acquire','act','action',
+        'actions','add','add_attribute','add_enum_value','add_fallback',
+        'add_method','add_parent','add_private_method','add_role','add_trustee',
+        'adverb','after','all','allocate','allof','allowed','alternative-names',
+        'annotations','antipair','antipairs','any','anyof','app_lifetime',
+        'append','arch','archname','args','arity','Array','asec','asech','asin',
+        'asinh','ASSIGN-KEY','ASSIGN-POS','assuming','ast','at','atan','atan2',
+        'atanh','AT-KEY','atomic-assign','atomic-dec-fetch','atomic-fetch',
+        'atomic-fetch-add','atomic-fetch-dec','atomic-fetch-inc',
+        'atomic-fetch-sub','atomic-inc-fetch','AT-POS','attributes','auth',
+        'await','backtrace','Bag','BagHash','bail-out','base','basename',
+        'base-repeating','batch','BIND-KEY','BIND-POS','bind-stderr',
+        'bind-stdin','bind-stdout','bind-udp','bits','bless','block','Bool',
+        'bool-only','bounds','break','Bridge','broken','BUILD','build-date',
+        'bytes','cache','callframe','calling-package','CALL-ME','callsame',
+        'callwith','can','cancel','candidates','cando','can-ok','canonpath',
+        'caps','caption','Capture','cas','catdir','categorize','categorize-list',
+        'catfile','catpath','cause','ceiling','cglobal','changed','Channel',
+        'chars','chdir','child','child-name','child-typename','chmod','chomp',
+        'chop','chr','chrs','chunks','cis','classify','classify-list','cleanup',
+        'clone','close','closed','close-stdin','cmp-ok','code','codes','collate',
+        'column','comb','combinations','command','comment','compiler','Complex',
+        'compose','compose_type','composer','condition','config',
+        'configure_destroy','configure_type_checking','conj','connect',
+        'constraints','construct','contains','contents','copy','cos','cosec',
+        'cosech','cosh','cotan','cotanh','count','count-only','cpu-cores',
+        'cpu-usage','CREATE','create_type','cross','cue','curdir','curupdir','d',
+        'Date','DateTime','day','daycount','day-of-month','day-of-week',
+        'day-of-year','days-in-month','declaration','decode','decoder','deepmap',
+        'default','defined','DEFINITE','delayed','DELETE-KEY','DELETE-POS',
+        'denominator','desc','DESTROY','destroyers','devnull','diag',
+        'did-you-mean','die','dies-ok','dir','dirname','dir-sep','DISTROnames',
+        'do','does','does-ok','done','done-testing','duckmap','dynamic','e',
+        'eager','earlier','elems','emit','enclosing','encode','encoder',
+        'encoding','end','ends-with','enum_from_value','enum_value_list',
+        'enum_values','enums','eof','EVAL','eval-dies-ok','EVALFILE',
+        'eval-lives-ok','exception','excludes-max','excludes-min','EXISTS-KEY',
+        'EXISTS-POS','exit','exitcode','exp','expected','explicitly-manage',
+        'expmod','extension','f','fail','fails-like','fc','feature','file',
+        'filename','find_method','find_method_qualified','finish','first','flat',
+        'flatmap','flip','floor','flunk','flush','fmt','format','formatter',
+        'freeze','from','from-list','from-loop','from-posix','full',
+        'full-barrier','get','get_value','getc','gist','got','grab','grabpairs',
+        'grep','handle','handled','handles','hardware','has_accessor','Hash',
+        'head','headers','hh-mm-ss','hidden','hides','hour','how','hyper','id',
+        'illegal','im','in','indent','index','indices','indir','infinite',
+        'infix','infix:<+>','infix:<->','install_method_cache','Instant',
+        'instead','Int','int-bounds','interval','in-timezone','invalid-str',
+        'invert','invocant','IO','IO::Notification.watch-path','is_trusted',
+        'is_type','isa','is-absolute','isa-ok','is-approx','is-deeply',
+        'is-hidden','is-initial-thread','is-int','is-lazy','is-leap-year',
+        'isNaN','isnt','is-prime','is-relative','is-routine','is-setting',
+        'is-win','item','iterator','join','keep','kept','KERNELnames','key',
+        'keyof','keys','kill','kv','kxxv','l','lang','last','lastcall','later',
+        'lazy','lc','leading','level','like','line','lines','link','List',
+        'listen','live','lives-ok','local','lock','log','log10','lookup','lsb',
+        'made','MAIN','make','Map','match','max','maxpairs','merge','message',
+        'method','method_table','methods','migrate','min','minmax','minpairs',
+        'minute','misplaced','Mix','MixHash','mkdir','mode','modified','month',
+        'move','mro','msb','multi','multiness','my','name','named','named_names',
+        'narrow','nativecast','native-descriptor','nativesizeof','new','new_type',
+        'new-from-daycount','new-from-pairs','next','nextcallee','next-handle',
+        'nextsame','nextwith','NFC','NFD','NFKC','NFKD','nl-in','nl-out',
+        'nodemap','nok','none','norm','not','note','now','nude','Num',
+        'numerator','Numeric','of','offset','offset-in-hours','offset-in-minutes',
+        'ok','old','on-close','one','on-switch','open','opened','operation',
+        'optional','ord','ords','orig','os-error','osname','out-buffer','pack',
+        'package','package-kind','package-name','packages','pair','pairs',
+        'pairup','parameter','params','parent','parent-name','parents','parse',
+        'parse-base','parsefile','parse-names','parts','pass','path','path-sep',
+        'payload','peer-host','peer-port','periods','perl','permutations','phaser',
+        'pick','pickpairs','pid','placeholder','plan','plus','polar','poll',
+        'polymod','pop','pos','positional','posix','postfix','postmatch',
+        'precomp-ext','precomp-target','pred','prefix','prematch','prepend',
+        'print','printf','print-nl','print-to','private','private_method_table',
+        'proc','produce','Promise','prompt','protect','pull-one','push',
+        'push-all','push-at-least','push-exactly','push-until-lazy','put',
+        'qualifier-type','quit','r','race','radix','rand','range','Rat','raw',
+        're','read','readchars','readonly','ready','Real','reallocate','reals',
+        'reason','rebless','receive','recv','redispatcher','redo','reduce',
+        'rel2abs','relative','release','rename','repeated','replacement',
+        'report','reserved','resolve','restore','result','resume','rethrow',
+        'reverse','right','rindex','rmdir','role','roles_to_compose','rolish',
+        'roll','rootdir','roots','rotate','rotor','round','roundrobin',
+        'routine-type','run','rwx','s','samecase','samemark','samewith','say',
+        'schedule-on','scheduler','scope','sec','sech','second','seek','self',
+        'send','Set','set_hidden','set_name','set_package','set_rw','set_value',
+        'SetHash','set-instruments','setup_finalization','shape','share','shell',
+        'shift','sibling','sigil','sign','signal','signals','signature','sin',
+        'sinh','sink','sink-all','skip','skip-at-least','skip-at-least-pull-one',
+        'skip-one','skip-rest','sleep','sleep-timer','sleep-until','Slip','slurp',
+        'slurp-rest','slurpy','snap','snapper','so','socket-host','socket-port',
+        'sort','source','source-package','spawn','SPEC','splice','split',
+        'splitdir','splitpath','sprintf','spurt','sqrt','squish','srand','stable',
+        'start','started','starts-with','status','stderr','stdout','Str',
+        'sub_signature','subbuf','subbuf-rw','subname','subparse','subst',
+        'subst-mutate','substr','substr-eq','substr-rw','subtest','succ','sum',
+        'Supply','symlink','t','tail','take','take-rw','tan','tanh','tap',
+        'target','target-name','tc','tclc','tell','then','throttle','throw',
+        'throws-like','timezone','tmpdir','to','today','todo','toggle','to-posix',
+        'total','trailing','trans','tree','trim','trim-leading','trim-trailing',
+        'truncate','truncated-to','trusts','try_acquire','trying','twigil','type',
+        'type_captures','typename','uc','udp','uncaught_handler','unimatch',
+        'uniname','uninames','uniparse','uniprop','uniprops','unique','unival',
+        'univals','unlike','unlink','unlock','unpack','unpolar','unshift',
+        'unwrap','updir','USAGE','use-ok','utc','val','value','values','VAR',
+        'variable','verbose-config','version','VMnames','volume','vow','w','wait',
+        'warn','watch','watch-path','week','weekday-of-month','week-number',
+        'week-year','WHAT','when','WHERE','WHEREFORE','WHICH','WHO',
+        'whole-second','WHY','wordcase','words','workaround','wrap','write',
+        'write-to','x','yada','year','yield','yyyy-mm-dd','z','zip','zip-latest',
+
     )
 
     PERL6_BUILTIN_CLASSES = (
-        'Abstraction', 'Any', 'AnyChar', 'Array', 'Associative', 'Bag', 'Bit',
-        'Blob', 'Block', 'Bool', 'Buf', 'Byte', 'Callable', 'Capture', 'Char', 'Class',
-        'Code', 'Codepoint', 'Comparator', 'Complex', 'Decreasing', 'Exception',
-        'Failure', 'False', 'Grammar', 'Grapheme', 'Hash', 'IO', 'Increasing',
-        'Int', 'Junction', 'KeyBag', 'KeyExtractor', 'KeyHash', 'KeySet',
-        'KitchenSink', 'List', 'Macro', 'Mapping', 'Match', 'Matcher', 'Method',
-        'Module', 'Num', 'Object', 'Ordered', 'Ordering', 'OrderingPair',
-        'Package', 'Pair', 'Positional', 'Proxy', 'Range', 'Rat', 'Regex',
-        'Role', 'Routine', 'Scalar', 'Seq', 'Set', 'Signature', 'Str', 'StrLen',
-        'StrPos', 'Sub', 'Submethod', 'True', 'UInt', 'Undef', 'Version', 'Void',
-        'Whatever', 'bit', 'bool', 'buf', 'buf1', 'buf16', 'buf2', 'buf32',
-        'buf4', 'buf64', 'buf8', 'complex', 'int', 'int1', 'int16', 'int2',
-        'int32', 'int4', 'int64', 'int8', 'num', 'rat', 'rat1', 'rat16', 'rat2',
-        'rat32', 'rat4', 'rat64', 'rat8', 'uint', 'uint1', 'uint16', 'uint2',
-        'uint32', 'uint4', 'uint64', 'uint8', 'utf16', 'utf32', 'utf8',
+        #Booleans
+        'False','True',
+        #Classes
+        'Any','Array','Associative','AST','atomicint','Attribute','Backtrace',
+        'Backtrace::Frame','Bag','Baggy','BagHash','Blob','Block','Bool','Buf',
+        'Callable','CallFrame','Cancellation','Capture','CArray','Channel','Code',
+        'compiler','Complex','ComplexStr','Cool','CurrentThreadScheduler',
+        'Cursor','Date','Dateish','DateTime','Distro','Duration','Encoding',
+        'Exception','Failure','FatRat','Grammar','Hash','HyperWhatever','Instant',
+        'Int','int16','int32','int64','int8','IntStr','IO','IO::ArgFiles',
+        'IO::CatHandle','IO::Handle','IO::Notification','IO::Path',
+        'IO::Path::Cygwin','IO::Path::QNX','IO::Path::Unix','IO::Path::Win32',
+        'IO::Pipe','IO::Socket','IO::Socket::Async','IO::Socket::INET','IO::Spec',
+        'IO::Spec::Cygwin','IO::Spec::QNX','IO::Spec::Unix','IO::Spec::Win32',
+        'IO::Special','Iterable','Iterator','Junction','Kernel','Label','List',
+        'Lock','Lock::Async','long','longlong','Macro','Map','Match',
+        'Metamodel::AttributeContainer','Metamodel::C3MRO','Metamodel::ClassHOW',
+        'Metamodel::EnumHOW','Metamodel::Finalization','Metamodel::MethodContainer',
+        'Metamodel::MROBasedMethodDispatch','Metamodel::MultipleInheritance',
+        'Metamodel::Naming','Metamodel::Primitives','Metamodel::PrivateMethodContainer',
+        'Metamodel::RoleContainer','Metamodel::Trusting','Method','Mix','MixHash',
+        'Mixy','Mu','NFC','NFD','NFKC','NFKD','Nil','Num','num32','num64',
+        'Numeric','NumStr','ObjAt','Order','Pair','Parameter','Perl','Pod::Block',
+        'Pod::Block::Code','Pod::Block::Comment','Pod::Block::Declarator',
+        'Pod::Block::Named','Pod::Block::Para','Pod::Block::Table','Pod::Heading',
+        'Pod::Item','Pointer','Positional','PositionalBindFailover','Proc',
+        'Proc::Async','Promise','Proxy','PseudoStash','QuantHash','Range','Rat',
+        'Rational','RatStr','Real','Regex','Routine','Scalar','Scheduler',
+        'Semaphore','Seq','Set','SetHash','Setty','Signature','size_t','Slip',
+        'Stash','Str','StrDistance','Stringy','Sub','Submethod','Supplier',
+        'Supplier::Preserving','Supply','Systemic','Tap','Telemetry',
+        'Telemetry::Instrument::Thread','Telemetry::Instrument::Usage',
+        'Telemetry::Period','Telemetry::Sampler','Thread','ThreadPoolScheduler',
+        'UInt','uint16','uint32','uint64','uint8','Uni','utf8','Variable',
+        'Version','VM','Whatever','WhateverCode','WrapHandle'
     )
 
     PERL6_OPERATORS = (
@@ -311,7 +409,7 @@
         '~', '&', '^', 'but', 'does', '<=>', '..', '..^', '^..', '^..^',
         '!=', '==', '<', '<=', '>', '>=', '~~', '===', '!eqv',
         '&&', '||', '^^', '//', 'min', 'max', '??', '!!', 'ff', 'fff', 'so',
-        'not', '<==', '==>', '<<==', '==>>',
+        'not', '<==', '==>', '<<==', '==>>','unicmp',
     )
 
     # Perl 6 has a *lot* of possible bracketing characters
--- a/eric6/ThirdParty/Pygments/pygments/lexers/php.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/php.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for PHP and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -15,7 +15,7 @@
     this, words
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation, Other
-from pygments.util import get_bool_opt, get_list_opt, iteritems
+from pygments.util import get_bool_opt, get_list_opt, shebang_matches
 
 __all__ = ['ZephirLexer', 'PhpLexer']
 
@@ -49,13 +49,14 @@
             include('commentsandwhitespace'),
             (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
              r'([gim]+\b|\B)', String.Regex, '#pop'),
+            (r'/', Operator, '#pop'),
             default('#pop')
         ],
         'badregex': [
             (r'\n', Text, '#pop')
         ],
         'root': [
-            (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
+            (r'^(?=\s|/)', Text, 'slashstartsregex'),
             include('commentsandwhitespace'),
             (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
              r'(<<|>>>?|==?|!=?|->|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
@@ -243,7 +244,7 @@
         self._functions = set()
         if self.funcnamehighlighting:
             from pygments.lexers._php_builtins import MODULES
-            for key, value in iteritems(MODULES):
+            for key, value in MODULES.items():
                 if key not in self.disabledmodules:
                     self._functions.update(value)
         RegexLexer.__init__(self, **options)
@@ -261,6 +262,8 @@
             yield index, token, value
 
     def analyse_text(text):
+        if shebang_matches(text, r'php'):
+            return True
         rv = 0.0
         if re.search(r'<\?(?!xml)', text):
             rv += 0.3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/pony.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.pony
+    ~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for Pony and related languages.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups, words
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation
+
+__all__ = ['PonyLexer']
+
+
+class PonyLexer(RegexLexer):
+    """
+    For Pony source code.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'Pony'
+    aliases = ['pony']
+    filenames = ['*.pony']
+
+    _caps = r'(iso|trn|ref|val|box|tag)'
+
+    tokens = {
+        'root': [
+            (r'\n', Text),
+            (r'[^\S\n]+', Text),
+            (r'//.*\n', Comment.Single),
+            (r'/\*', Comment.Multiline, 'nested_comment'),
+            (r'"""(?:.|\n)*?"""', String.Doc),
+            (r'"', String, 'string'),
+            (r'\'.*\'', String.Char),
+            (r'=>|[]{}:().~;,|&!^?[]', Punctuation),
+            (words((
+                'addressof', 'and', 'as', 'consume', 'digestof', 'is', 'isnt',
+                'not', 'or'),
+                suffix=r'\b'),
+             Operator.Word),
+            (r'!=|==|<<|>>|[-+/*%=<>]', Operator),
+            (words((
+                'box', 'break', 'compile_error', 'compile_intrinsic',
+                'continue', 'do', 'else', 'elseif', 'embed', 'end', 'error',
+                'for', 'if', 'ifdef', 'in', 'iso', 'lambda', 'let', 'match',
+                'object', 'recover', 'ref', 'repeat', 'return', 'tag', 'then',
+                'this', 'trn', 'try', 'until', 'use', 'var', 'val', 'where',
+                'while', 'with', '#any', '#read', '#send', '#share'),
+                suffix=r'\b'),
+             Keyword),
+            (r'(actor|class|struct|primitive|interface|trait|type)((?:\s)+)',
+             bygroups(Keyword, Text), 'typename'),
+            (r'(new|fun|be)((?:\s)+)', bygroups(Keyword, Text), 'methodname'),
+            (words((
+                'I8', 'U8', 'I16', 'U16', 'I32', 'U32', 'I64', 'U64', 'I128',
+                'U128', 'ILong', 'ULong', 'ISize', 'USize', 'F32', 'F64',
+                'Bool', 'Pointer', 'None', 'Any', 'Array', 'String',
+                'Iterator'),
+                suffix=r'\b'),
+             Name.Builtin.Type),
+            (r'_?[A-Z]\w*', Name.Type),
+            (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
+            (r'0x[0-9a-fA-F]+', Number.Hex),
+            (r'\d+', Number.Integer),
+            (r'(true|false)\b', Name.Builtin),
+            (r'_\d*', Name),
+            (r'_?[a-z][\w\'_]*', Name)
+        ],
+        'typename': [
+            (_caps + r'?((?:\s)*)(_?[A-Z]\w*)',
+             bygroups(Keyword, Text, Name.Class), '#pop')
+        ],
+        'methodname': [
+            (_caps + r'?((?:\s)*)(_?[a-z]\w*)',
+             bygroups(Keyword, Text, Name.Function), '#pop')
+        ],
+        'nested_comment': [
+            (r'[^*/]+', Comment.Multiline),
+            (r'/\*', Comment.Multiline, '#push'),
+            (r'\*/', Comment.Multiline, '#pop'),
+            (r'[*/]', Comment.Multiline)
+        ],
+        'string': [
+            (r'"', String, '#pop'),
+            (r'\\"', String),
+            (r'[^\\"]+', String)
+        ]
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/praat.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/praat.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for Praat
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -55,7 +55,7 @@
         'exitScript', 'exp', 'extractNumber', 'fileReadable', 'fisherP', 'fisherQ',
         'floor', 'gaussP', 'gaussQ', 'hertzToBark', 'hertzToErb', 'hertzToMel',
         'hertzToSemitones', 'imax', 'imin', 'incompleteBeta', 'incompleteGammaP', 'index',
-        'index_regex', 'invBinomialP', 'invBinomialQ', 'invChiSquareQ', 'invFisherQ',
+        'index_regex', 'integer', 'invBinomialP', 'invBinomialQ', 'invChiSquareQ', 'invFisherQ',
         'invGaussQ', 'invSigmoid', 'invStudentQ', 'length', 'ln', 'lnBeta', 'lnGamma',
         'log10', 'log2', 'max', 'melToHertz', 'min', 'minusObject', 'natural', 'number',
         'numberOfColumns', 'numberOfRows', 'numberOfSelected', 'objectsAreIdentical',
@@ -63,9 +63,9 @@
         'positive', 'randomBinomial', 'randomGauss', 'randomInteger', 'randomPoisson',
         'randomUniform', 'real', 'readFile', 'removeObject', 'rindex', 'rindex_regex',
         'round', 'runScript', 'runSystem', 'runSystem_nocheck', 'selectObject',
-        'selected', 'semitonesToHertz', 'sentencetext', 'sigmoid', 'sin', 'sinc',
+        'selected', 'semitonesToHertz', 'sentence', 'sentencetext', 'sigmoid', 'sin', 'sinc',
         'sincpi', 'sinh', 'soundPressureToPhon', 'sqrt', 'startsWith', 'studentP',
-        'studentQ', 'tan', 'tanh', 'variableExists', 'word', 'writeFile', 'writeFileLine',
+        'studentQ', 'tan', 'tanh', 'text', 'variableExists', 'word', 'writeFile', 'writeFileLine',
         'writeInfo', 'writeInfoLine',
     )
 
@@ -90,9 +90,9 @@
         'KNN', 'KlattGrid', 'KlattTable', 'LFCC', 'LPC', 'Label', 'LegendreSeries',
         'LinearRegression', 'LogisticRegression', 'LongSound', 'Ltas', 'MFCC', 'MSpline',
         'ManPages', 'Manipulation', 'Matrix', 'MelFilter', 'MelSpectrogram',
-        'MixingMatrix', 'Movie', 'Network', 'OTGrammar', 'OTHistory', 'OTMulti', 'PCA',
-        'PairDistribution', 'ParamCurve', 'Pattern', 'Permutation', 'Photo', 'Pitch',
-        'PitchModeler', 'PitchTier', 'PointProcess', 'Polygon', 'Polynomial',
+        'MixingMatrix', 'Movie', 'Network', 'Object', 'OTGrammar', 'OTHistory', 'OTMulti',
+        'PCA', 'PairDistribution', 'ParamCurve', 'Pattern', 'Permutation', 'Photo',
+        'Pitch', 'PitchModeler', 'PitchTier', 'PointProcess', 'Polygon', 'Polynomial',
         'PowerCepstrogram', 'PowerCepstrum', 'Procrustes', 'RealPoint', 'RealTier',
         'ResultsMFC', 'Roots', 'SPINET', 'SSCP', 'SVD', 'Salience', 'ScalarProduct',
         'Similarity', 'SimpleString', 'SortedSetOfString', 'Sound', 'Speaker',
@@ -112,6 +112,10 @@
         'defaultDirectory',
     )
 
+    object_attributes = (
+        'ncol', 'nrow', 'xmin', 'ymin', 'xmax', 'ymax', 'nx', 'ny', 'dx', 'dy',
+    )
+
     tokens = {
         'root': [
             (r'(\s+)(#.*?$)',  bygroups(Text, Comment.Single)),
@@ -148,7 +152,9 @@
         ],
         'command': [
             (r'( ?[\w()-]+ ?)', Keyword),
-            (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+
+            include('string_interpolated'),
+
             (r'\.{3}', Keyword, ('#pop', 'old_arguments')),
             (r':', Keyword, ('#pop', 'comma_list')),
             (r'\s', Text, '#pop'),
@@ -207,50 +213,49 @@
             (r'\n', Text, '#pop'),
             (r'\b\d+(\.\d*)?([eE][-+]?\d+)?%?', Number),
         ],
-        'object_attributes': [
-            (r'\.?(n(col|row)|[xy]min|[xy]max|[nd][xy])\b', Name.Builtin, '#pop'),
-            (r'(\.?(?:col|row)\$)(\[)',
-             bygroups(Name.Builtin, Text), 'variable_name'),
-            (r'(\$?)(\[)',
-             bygroups(Name.Builtin, Text), ('#pop', 'comma_list')),
+        'object_reference': [
+          include('string_interpolated'),
+          (r'([a-z][a-zA-Z0-9_]*|\d+)', Name.Builtin),
+
+          (words(object_attributes, prefix=r'\.'), Name.Builtin, '#pop'),
+
+          (r'\$', Name.Builtin),
+          (r'\[', Text, '#pop'),
         ],
         'variable_name': [
             include('operator'),
             include('number'),
 
             (words(variables_string,  suffix=r'\$'), Name.Variable.Global),
-            (words(variables_numeric, suffix=r'\b'), Name.Variable.Global),
-
-            (r'\bObject_\w+', Name.Builtin, 'object_attributes'),
-            (words(objects, prefix=r'\b', suffix=r'_\w+'),
-             Name.Builtin, 'object_attributes'),
+            (words(variables_numeric,
+             suffix=r'(?=[^a-zA-Z0-9\._"\'\$#\[:\(]|\s|^|$)'),
+             Name.Variable.Global),
 
-            (r"\b(Object_)(')",
-             bygroups(Name.Builtin, String.Interpol),
-             ('object_attributes', 'string_interpolated')),
-            (words(objects, prefix=r'\b', suffix=r"(_)(')"),
-             bygroups(Name.Builtin, Name.Builtin, String.Interpol),
-             ('object_attributes', 'string_interpolated')),
+            (words(objects, prefix=r'\b', suffix=r"(_)"),
+             bygroups(Name.Builtin, Name.Builtin),
+             'object_reference'),
 
             (r'\.?_?[a-z][\w.]*(\$|#)?', Text),
             (r'[\[\]]', Punctuation, 'comma_list'),
-            (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+
+            include('string_interpolated'),
         ],
         'operator': [
             (r'([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)',       Operator),
             (r'(?<![\w.])(and|or|not|div|mod)(?![\w.])', Operator.Word),
         ],
         'string_interpolated': [
-            (r'\.?[_a-z][\w.]*[$#]?(?:\[[a-zA-Z0-9,]+\])?(:[0-9]+)?',
+            (r'\'[_a-z][^\[\]\'":]*(\[([\d,]+|"[\w\d,]+")\])?(:[0-9]+)?\'',
              String.Interpol),
-            (r"'",          String.Interpol, '#pop'),
         ],
         'string_unquoted': [
             (r'(\n\s*)(\.{3})', bygroups(Text, Punctuation)),
 
             (r'\n',       Text,            '#pop'),
             (r'\s',       Text),
-            (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+
+            include('string_interpolated'),
+
             (r"'",        String),
             (r"[^'\n]+",  String),
         ],
@@ -258,11 +263,14 @@
             (r'(\n\s*)(\.{3})', bygroups(Text, Punctuation)),
 
             (r'"',          String,          '#pop'),
-            (r"'(?=.*')",   String.Interpol, 'string_interpolated'),
+
+            include('string_interpolated'),
+
             (r"'",          String),
             (r'[^\'"\n]+',  String),
         ],
         'old_form': [
+            (r'(\s+)(#.*?$)',  bygroups(Text, Comment.Single)),
             (r'\s+', Text),
 
             (r'(optionmenu|choice)([ \t]+\S+:[ \t]+)',
--- a/eric6/ThirdParty/Pygments/pygments/lexers/prolog.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/prolog.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Prolog and Prolog-like languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -31,7 +31,6 @@
 
     tokens = {
         'root': [
-            (r'^#.*', Comment.Single),
             (r'/\*', Comment.Multiline, 'nested-comment'),
             (r'%.*', Comment.Single),
             # character literal
@@ -108,19 +107,19 @@
             (r'\n', Text),
             (r'\s+', Text),
             # Numbers
-            (r"0'.", Number),
+            (r"0'[\\]?.", Number),
             (r'0b[01]+', Number.Bin),
             (r'0o[0-7]+', Number.Oct),
             (r'0x[0-9a-fA-F]+', Number.Hex),
             (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
             # Variables
-            (r'([A-Z_]\w*)', Name.Variable),
+            (r'([A-Z_][a-zA-Z0-9_]*)', Name.Variable),
             # Event handlers
             (r'(after|before)(?=[(])', Keyword),
             # Message forwarding handler
             (r'forward(?=[(])', Keyword),
             # Execution-context methods
-            (r'(parameter|this|se(lf|nder))(?=[(])', Keyword),
+            (r'(context|parameter|this|se(lf|nder))(?=[(])', Keyword),
             # Reflection
             (r'(current_predicate|predicate_property)(?=[(])', Keyword),
             # DCGs and term expansion
@@ -136,20 +135,23 @@
             # Events
             (r'(current_event|(abolish|define)_events)(?=[(])', Keyword),
             # Flags
-            (r'(current|set)_logtalk_flag(?=[(])', Keyword),
+            (r'(create|current|set)_logtalk_flag(?=[(])', Keyword),
             # Compiling, loading, and library paths
-            (r'logtalk_(compile|l(ibrary_path|oad|oad_context)|make)(?=[(])', Keyword),
+            (r'logtalk_(compile|l(ibrary_path|oad|oad_context)|make(_target_action)?)(?=[(])', Keyword),
             (r'\blogtalk_make\b', Keyword),
             # Database
             (r'(clause|retract(all)?)(?=[(])', Keyword),
             (r'a(bolish|ssert(a|z))(?=[(])', Keyword),
             # Control constructs
             (r'(ca(ll|tch)|throw)(?=[(])', Keyword),
-            (r'(fa(il|lse)|true)\b', Keyword),
+            (r'(fa(il|lse)|true|(instantiation|system)_error)\b', Keyword),
+            (r'(type|domain|existence|permission|representation|evaluation|resource|syntax)_error(?=[(])', Keyword),
             # All solutions
             (r'((bag|set)of|f(ind|or)all)(?=[(])', Keyword),
-            # Multi-threading meta-predicates
-            (r'threaded(_(call|once|ignore|exit|peek|wait|notify))?(?=[(])', Keyword),
+            # Multi-threading predicates
+            (r'threaded(_(ca(ll|ncel)|once|ignore|exit|peek|wait|notify))?(?=[(])', Keyword),
+            # Engine predicates
+            (r'threaded_engine(_(create|destroy|self|next|next_reified|yield|post|fetch))?(?=[(])', Keyword),
             # Term unification
             (r'(subsumes_term|unify_with_occurs_check)(?=[(])', Keyword),
             # Term creation and decomposition
@@ -161,8 +163,7 @@
             # Other arithmetic functors
             (r'(cos|a(cos|sin|tan|tan2)|exp|log|s(in|qrt)|xor)(?=[(])', Keyword),
             # Term testing
-            (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|'
-             r'ground|acyclic_term)(?=[(])', Keyword),
+            (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|ground|acyclic_term)(?=[(])', Keyword),
             # Term comparison
             (r'compare(?=[(])', Keyword),
             # Stream selection and control
@@ -227,10 +228,10 @@
             (r'\^', Operator),
             # Strings
             (r'"(\\\\|\\"|[^"])*"', String),
-            # Ponctuation
+            # Punctuation
             (r'[()\[\],.|]', Text),
             # Atoms
-            (r"[a-z]\w*", Text),
+            (r"[a-z][a-zA-Z0-9_]*", Text),
             (r"'", String, 'quoted_atom'),
         ],
 
@@ -245,36 +246,35 @@
         'directive': [
             # Conditional compilation directives
             (r'(el)?if(?=[(])', Keyword, 'root'),
-            (r'(e(lse|ndif))[.]', Keyword, 'root'),
+            (r'(e(lse|ndif))(?=[.])', Keyword, 'root'),
             # Entity directives
             (r'(category|object|protocol)(?=[(])', Keyword, 'entityrelations'),
-            (r'(end_(category|object|protocol))[.]', Keyword, 'root'),
+            (r'(end_(category|object|protocol))(?=[.])', Keyword, 'root'),
             # Predicate scope directives
             (r'(public|protected|private)(?=[(])', Keyword, 'root'),
             # Other directives
             (r'e(n(coding|sure_loaded)|xport)(?=[(])', Keyword, 'root'),
             (r'in(clude|itialization|fo)(?=[(])', Keyword, 'root'),
-            (r'(built_in|dynamic|synchronized|threaded)[.]', Keyword, 'root'),
-            (r'(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|'
-             r's(et_(logtalk|prolog)_flag|ynchronized))(?=[(])', Keyword, 'root'),
+            (r'(built_in|dynamic|synchronized|threaded)(?=[.])', Keyword, 'root'),
+            (r'(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])', Keyword, 'root'),
             (r'op(?=[(])', Keyword, 'root'),
             (r'(c(alls|oinductive)|module|reexport|use(s|_module))(?=[(])', Keyword, 'root'),
-            (r'[a-z]\w*(?=[(])', Text, 'root'),
-            (r'[a-z]\w*[.]', Text, 'root'),
+            (r'[a-z][a-zA-Z0-9_]*(?=[(])', Text, 'root'),
+            (r'[a-z][a-zA-Z0-9_]*(?=[.])', Text, 'root'),
         ],
 
         'entityrelations': [
             (r'(complements|extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])', Keyword),
             # Numbers
-            (r"0'.", Number),
+            (r"0'[\\]?.", Number),
             (r'0b[01]+', Number.Bin),
             (r'0o[0-7]+', Number.Oct),
             (r'0x[0-9a-fA-F]+', Number.Hex),
             (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
             # Variables
-            (r'([A-Z_]\w*)', Name.Variable),
+            (r'([A-Z_][a-zA-Z0-9_]*)', Name.Variable),
             # Atoms
-            (r"[a-z]\w*", Text),
+            (r"[a-z][a-zA-Z0-9_]*", Text),
             (r"'", String, 'quoted_atom'),
             # Strings
             (r'"(\\\\|\\"|[^"])*"', String),
@@ -282,7 +282,7 @@
             (r'([)]\.)', Text, 'root'),
             # Scope operator
             (r'(::)', Operator),
-            # Ponctuation
+            # Punctuation
             (r'[()\[\],.|]', Text),
             # Comments
             (r'%.*?\n', Comment),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/python.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/python.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Python and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -19,21 +19,379 @@
 from pygments import unistring as uni
 
 __all__ = ['PythonLexer', 'PythonConsoleLexer', 'PythonTracebackLexer',
-           'Python3Lexer', 'Python3TracebackLexer', 'CythonLexer',
-           'DgLexer', 'NumPyLexer']
+           'Python2Lexer', 'Python2TracebackLexer',
+           'CythonLexer', 'DgLexer', 'NumPyLexer']
 
 line_re = re.compile('.*?\n')
 
 
 class PythonLexer(RegexLexer):
     """
-    For `Python <http://www.python.org>`_ source code.
+    For `Python <http://www.python.org>`_ source code (version 3.x).
+
+    .. versionadded:: 0.10
+
+    .. versionchanged:: 2.5
+       This is now the default ``PythonLexer``.  It is still available as the
+       alias ``Python3Lexer``.
     """
 
     name = 'Python'
-    aliases = ['python', 'py', 'sage']
-    filenames = ['*.py', '*.pyw', '*.sc', 'SConstruct', 'SConscript', '*.tac', '*.sage']
-    mimetypes = ['text/x-python', 'application/x-python']
+    aliases = ['python', 'py', 'sage', 'python3', 'py3']
+    filenames = [
+        '*.py',
+        '*.pyw',
+        # Jython
+        '*.jy',
+        # Sage
+        '*.sage',
+        # SCons
+        '*.sc',
+        'SConstruct',
+        'SConscript',
+        # Skylark/Starlark (used by Bazel, Buck, and Pants)
+        '*.bzl',
+        'BUCK',
+        'BUILD',
+        'BUILD.bazel',
+        'WORKSPACE',
+        # Twisted Application infrastructure
+        '*.tac',
+    ]
+    mimetypes = ['text/x-python', 'application/x-python',
+                 'text/x-python3', 'application/x-python3']
+
+    flags = re.MULTILINE | re.UNICODE
+
+    uni_name = "[%s][%s]*" % (uni.xid_start, uni.xid_continue)
+
+    def innerstring_rules(ttype):
+        return [
+            # the old style '%s' % (...) string formatting (still valid in Py3)
+            (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
+             '[hlL]?[E-GXc-giorsaux%]', String.Interpol),
+            # the new style '{}'.format(...) string formatting
+            (r'\{'
+             r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?'  # field name
+             r'(\![sra])?'                       # conversion
+             r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?'
+             r'\}', String.Interpol),
+
+            # backslashes, quotes and formatting signs must be parsed one at a time
+            (r'[^\\\'"%{\n]+', ttype),
+            (r'[\'"\\]', ttype),
+            # unhandled string formatting sign
+            (r'%|(\{{1,2})', ttype)
+            # newlines are an error (use "nl" state)
+        ]
+
+    def fstring_rules(ttype):
+        return [
+            # Assuming that a '}' is the closing brace after format specifier.
+            # Sadly, this means that we won't detect syntax error. But it's
+            # more important to parse correct syntax correctly, than to
+            # highlight invalid syntax.
+            (r'\}', String.Interpol),
+            (r'\{', String.Interpol, 'expr-inside-fstring'),
+            # backslashes, quotes and formatting signs must be parsed one at a time
+            (r'[^\\\'"{}\n]+', ttype),
+            (r'[\'"\\]', ttype),
+            # newlines are an error (use "nl" state)
+        ]
+
+    tokens = {
+        'root': [
+            (r'\n', Text),
+            (r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
+             bygroups(Text, String.Affix, String.Doc)),
+            (r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
+             bygroups(Text, String.Affix, String.Doc)),
+            (r'\A#!.+$', Comment.Hashbang),
+            (r'#.*$', Comment.Single),
+            (r'\\\n', Text),
+            (r'\\', Text),
+            include('keywords'),
+            (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'funcname'),
+            (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'classname'),
+            (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Text),
+             'fromimport'),
+            (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Text),
+             'import'),
+            include('expr'),
+        ],
+        'expr': [
+            # raw f-strings
+            ('(?i)(rf|fr)(""")',
+             bygroups(String.Affix, String.Double), 'tdqf'),
+            ("(?i)(rf|fr)(''')",
+             bygroups(String.Affix, String.Single), 'tsqf'),
+            ('(?i)(rf|fr)(")',
+             bygroups(String.Affix, String.Double), 'dqf'),
+            ("(?i)(rf|fr)(')",
+             bygroups(String.Affix, String.Single), 'sqf'),
+            # non-raw f-strings
+            ('([fF])(""")', bygroups(String.Affix, String.Double),
+             combined('fstringescape', 'tdqf')),
+            ("([fF])(''')", bygroups(String.Affix, String.Single),
+             combined('fstringescape', 'tsqf')),
+            ('([fF])(")', bygroups(String.Affix, String.Double),
+             combined('fstringescape', 'dqf')),
+            ("([fF])(')", bygroups(String.Affix, String.Single),
+             combined('fstringescape', 'sqf')),
+            # raw strings
+            ('(?i)(rb|br|r)(""")',
+             bygroups(String.Affix, String.Double), 'tdqs'),
+            ("(?i)(rb|br|r)(''')",
+             bygroups(String.Affix, String.Single), 'tsqs'),
+            ('(?i)(rb|br|r)(")',
+             bygroups(String.Affix, String.Double), 'dqs'),
+            ("(?i)(rb|br|r)(')",
+             bygroups(String.Affix, String.Single), 'sqs'),
+            # non-raw strings
+            ('([uUbB]?)(""")', bygroups(String.Affix, String.Double),
+             combined('stringescape', 'tdqs')),
+            ("([uUbB]?)(''')", bygroups(String.Affix, String.Single),
+             combined('stringescape', 'tsqs')),
+            ('([uUbB]?)(")', bygroups(String.Affix, String.Double),
+             combined('stringescape', 'dqs')),
+            ("([uUbB]?)(')", bygroups(String.Affix, String.Single),
+             combined('stringescape', 'sqs')),
+            (r'[^\S\n]+', Text),
+            (r'!=|==|<<|>>|:=|[-~+/*%=<>&^|.]', Operator),
+            (r'[]{}:(),;[]', Punctuation),
+            (r'(in|is|and|or|not)\b', Operator.Word),
+            include('expr-keywords'),
+            include('builtins'),
+            include('magicfuncs'),
+            include('magicvars'),
+            include('name'),
+            include('numbers'),
+        ],
+        'expr-inside-fstring': [
+            (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
+            # without format specifier
+            (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
+             r'(\![sraf])?'     # conversion
+             r'}', String.Interpol, '#pop'),
+            # with format specifier
+            # we'll catch the remaining '}' in the outer scope
+            (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
+             r'(\![sraf])?'     # conversion
+             r':', String.Interpol, '#pop'),
+            (r'[^\S]+', Text),  # allow new lines
+            include('expr'),
+        ],
+        'expr-inside-fstring-inner': [
+            (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
+            (r'[])}]', Punctuation, '#pop'),
+            (r'[^\S]+', Text),  # allow new lines
+            include('expr'),
+        ],
+        'expr-keywords': [
+            # Based on https://docs.python.org/3/reference/expressions.html
+            (words((
+                'async for', 'await', 'else', 'for', 'if', 'lambda',
+                'yield', 'yield from'), suffix=r'\b'),
+             Keyword),
+            (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant),
+        ],
+        'keywords': [
+            (words((
+                'assert', 'async', 'await', 'break', 'continue', 'del', 'elif',
+                'else', 'except', 'finally', 'for', 'global', 'if', 'lambda',
+                'pass', 'raise', 'nonlocal', 'return', 'try', 'while', 'yield',
+                'yield from', 'as', 'with'), suffix=r'\b'),
+             Keyword),
+            (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant),
+        ],
+        'builtins': [
+            (words((
+                '__import__', 'abs', 'all', 'any', 'bin', 'bool', 'bytearray',
+                'bytes', 'chr', 'classmethod', 'cmp', 'compile', 'complex',
+                'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'filter',
+                'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr',
+                'hash', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',
+                'iter', 'len', 'list', 'locals', 'map', 'max', 'memoryview',
+                'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print',
+                'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr',
+                'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple',
+                'type', 'vars', 'zip'), prefix=r'(?<!\.)', suffix=r'\b'),
+             Name.Builtin),
+            (r'(?<!\.)(self|Ellipsis|NotImplemented|cls)\b', Name.Builtin.Pseudo),
+            (words((
+                'ArithmeticError', 'AssertionError', 'AttributeError',
+                'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning',
+                'EOFError', 'EnvironmentError', 'Exception', 'FloatingPointError',
+                'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',
+                'ImportWarning', 'IndentationError', 'IndexError', 'KeyError',
+                'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError',
+                'NotImplementedError', 'OSError', 'OverflowError',
+                'PendingDeprecationWarning', 'ReferenceError', 'ResourceWarning',
+                'RuntimeError', 'RuntimeWarning', 'StopIteration',
+                'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit',
+                'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
+                'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
+                'UnicodeWarning', 'UserWarning', 'ValueError', 'VMSError',
+                'Warning', 'WindowsError', 'ZeroDivisionError',
+                # new builtin exceptions from PEP 3151
+                'BlockingIOError', 'ChildProcessError', 'ConnectionError',
+                'BrokenPipeError', 'ConnectionAbortedError', 'ConnectionRefusedError',
+                'ConnectionResetError', 'FileExistsError', 'FileNotFoundError',
+                'InterruptedError', 'IsADirectoryError', 'NotADirectoryError',
+                'PermissionError', 'ProcessLookupError', 'TimeoutError',
+                # others new in Python 3
+                'StopAsyncIteration', 'ModuleNotFoundError', 'RecursionError'),
+                prefix=r'(?<!\.)', suffix=r'\b'),
+             Name.Exception),
+        ],
+        'magicfuncs': [
+            (words((
+                '__abs__', '__add__', '__aenter__', '__aexit__', '__aiter__',
+                '__and__', '__anext__', '__await__', '__bool__', '__bytes__',
+                '__call__', '__complex__', '__contains__', '__del__', '__delattr__',
+                '__delete__', '__delitem__', '__dir__', '__divmod__', '__enter__',
+                '__eq__', '__exit__', '__float__', '__floordiv__', '__format__',
+                '__ge__', '__get__', '__getattr__', '__getattribute__',
+                '__getitem__', '__gt__', '__hash__', '__iadd__', '__iand__',
+                '__ifloordiv__', '__ilshift__', '__imatmul__', '__imod__',
+                '__imul__', '__index__', '__init__', '__instancecheck__',
+                '__int__', '__invert__', '__ior__', '__ipow__', '__irshift__',
+                '__isub__', '__iter__', '__itruediv__', '__ixor__', '__le__',
+                '__len__', '__length_hint__', '__lshift__', '__lt__', '__matmul__',
+                '__missing__', '__mod__', '__mul__', '__ne__', '__neg__',
+                '__new__', '__next__', '__or__', '__pos__', '__pow__',
+                '__prepare__', '__radd__', '__rand__', '__rdivmod__', '__repr__',
+                '__reversed__', '__rfloordiv__', '__rlshift__', '__rmatmul__',
+                '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__',
+                '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__',
+                '__rxor__', '__set__', '__setattr__', '__setitem__', '__str__',
+                '__sub__', '__subclasscheck__', '__truediv__',
+                '__xor__'), suffix=r'\b'),
+             Name.Function.Magic),
+        ],
+        'magicvars': [
+            (words((
+                '__annotations__', '__bases__', '__class__', '__closure__',
+                '__code__', '__defaults__', '__dict__', '__doc__', '__file__',
+                '__func__', '__globals__', '__kwdefaults__', '__module__',
+                '__mro__', '__name__', '__objclass__', '__qualname__',
+                '__self__', '__slots__', '__weakref__'), suffix=r'\b'),
+             Name.Variable.Magic),
+        ],
+        'numbers': [
+            (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)'
+             r'([eE][+-]?\d(?:_?\d)*)?', Number.Float),
+            (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float),
+            (r'0[oO](?:_?[0-7])+', Number.Oct),
+            (r'0[bB](?:_?[01])+', Number.Bin),
+            (r'0[xX](?:_?[a-fA-F0-9])+', Number.Hex),
+            (r'\d(?:_?\d)*', Number.Integer),
+        ],
+        'name': [
+            (r'@' + uni_name, Name.Decorator),
+            (r'@', Operator),  # new matrix multiplication operator
+            (uni_name, Name),
+        ],
+        'funcname': [
+            include('magicfuncs'),
+            (uni_name, Name.Function, '#pop'),
+            default('#pop'),
+        ],
+        'classname': [
+            (uni_name, Name.Class, '#pop'),
+        ],
+        'import': [
+            (r'(\s+)(as)(\s+)', bygroups(Text, Keyword, Text)),
+            (r'\.', Name.Namespace),
+            (uni_name, Name.Namespace),
+            (r'(\s*)(,)(\s*)', bygroups(Text, Operator, Text)),
+            default('#pop')  # all else: go back
+        ],
+        'fromimport': [
+            (r'(\s+)(import)\b', bygroups(Text, Keyword.Namespace), '#pop'),
+            (r'\.', Name.Namespace),
+            # if None occurs here, it's "raise x from None", since None can
+            # never be a module name
+            (r'None\b', Name.Builtin.Pseudo, '#pop'),
+            (uni_name, Name.Namespace),
+            default('#pop'),
+        ],
+        'fstringescape': [
+            ('{{', String.Escape),
+            ('}}', String.Escape),
+            include('stringescape'),
+        ],
+        'stringescape': [
+            (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
+             r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
+        ],
+        'fstrings-single': fstring_rules(String.Single),
+        'fstrings-double': fstring_rules(String.Double),
+        'strings-single': innerstring_rules(String.Single),
+        'strings-double': innerstring_rules(String.Double),
+        'dqf': [
+            (r'"', String.Double, '#pop'),
+            (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
+            include('fstrings-double')
+        ],
+        'sqf': [
+            (r"'", String.Single, '#pop'),
+            (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
+            include('fstrings-single')
+        ],
+        'dqs': [
+            (r'"', String.Double, '#pop'),
+            (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
+            include('strings-double')
+        ],
+        'sqs': [
+            (r"'", String.Single, '#pop'),
+            (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
+            include('strings-single')
+        ],
+        'tdqf': [
+            (r'"""', String.Double, '#pop'),
+            include('fstrings-double'),
+            (r'\n', String.Double)
+        ],
+        'tsqf': [
+            (r"'''", String.Single, '#pop'),
+            include('fstrings-single'),
+            (r'\n', String.Single)
+        ],
+        'tdqs': [
+            (r'"""', String.Double, '#pop'),
+            include('strings-double'),
+            (r'\n', String.Double)
+        ],
+        'tsqs': [
+            (r"'''", String.Single, '#pop'),
+            include('strings-single'),
+            (r'\n', String.Single)
+        ],
+    }
+
+    def analyse_text(text):
+        return shebang_matches(text, r'pythonw?(3(\.\d)?)?')
+
+
+Python3Lexer = PythonLexer
+
+
+class Python2Lexer(RegexLexer):
+    """
+    For `Python 2.x <http://www.python.org>`_ source code.
+
+    .. versionchanged:: 2.5
+       This class has been renamed from ``PythonLexer``.  ``PythonLexer`` now
+       refers to the Python 3 variant.  File name patterns like ``*.py`` have
+       been moved to Python 3 as well.
+    """
+
+    name = 'Python 2.x'
+    aliases = ['python2', 'py2']
+    filenames = []  # now taken over by PythonLexer (3.x)
+    mimetypes = ['text/x-python2', 'application/x-python2']
 
     def innerstring_rules(ttype):
         return [
@@ -124,15 +482,15 @@
                 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit',
                 'IOError', 'ImportError', 'ImportWarning', 'IndentationError',
                 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError',
-                'MemoryError', 'ModuleNotFoundError', 'NameError', 'NotImplemented', 'NotImplementedError',
-                'OSError', 'OverflowError', 'OverflowWarning', 'PendingDeprecationWarning',
-                'RecursionError', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError',
-                'StopIteration', 'StopAsyncIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError',
-                'SystemExit', 'TabError', 'TypeError', 'UnboundLocalError',
-                'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError',
-                'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning',
-                'ValueError', 'VMSError', 'Warning', 'WindowsError',
-                'ZeroDivisionError'), prefix=r'(?<!\.)', suffix=r'\b'),
+                'MemoryError', 'NameError',
+                'NotImplementedError', 'OSError', 'OverflowError', 'OverflowWarning',
+                'PendingDeprecationWarning', 'ReferenceError',
+                'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration',
+                'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit',
+                'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
+                'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
+                'UnicodeWarning', 'UserWarning', 'ValueError', 'VMSError', 'Warning',
+                'WindowsError', 'ZeroDivisionError'), prefix=r'(?<!\.)', suffix=r'\b'),
              Name.Exception),
         ],
         'magicfuncs': [
@@ -238,169 +596,10 @@
     }
 
     def analyse_text(text):
-        return shebang_matches(text, r'pythonw?(2(\.\d)?)?') or \
+        return shebang_matches(text, r'pythonw?2(\.\d)?') or \
             'import ' in text[:1000]
 
 
-class Python3Lexer(RegexLexer):
-    """
-    For `Python <http://www.python.org>`_ source code (version 3.0).
-
-    .. versionadded:: 0.10
-    """
-
-    name = 'Python 3'
-    aliases = ['python3', 'py3']
-    filenames = []  # Nothing until Python 3 gets widespread
-    mimetypes = ['text/x-python3', 'application/x-python3']
-
-    flags = re.MULTILINE | re.UNICODE
-
-    uni_name = "[%s][%s]*" % (uni.xid_start, uni.xid_continue)
-
-    def innerstring_rules(ttype):
-        return [
-            # the old style '%s' % (...) string formatting (still valid in Py3)
-            (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
-             '[hlL]?[E-GXc-giorsaux%]', String.Interpol),
-            # the new style '{}'.format(...) string formatting
-            (r'\{'
-             r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?'  # field name
-             r'(\![sra])?'                       # conversion
-             r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?'
-             r'\}', String.Interpol),
-
-            # backslashes, quotes and formatting signs must be parsed one at a time
-            (r'[^\\\'"%{\n]+', ttype),
-            (r'[\'"\\]', ttype),
-            # unhandled string formatting sign
-            (r'%|(\{{1,2})', ttype)
-            # newlines are an error (use "nl" state)
-        ]
-
-    tokens = PythonLexer.tokens.copy()
-    tokens['keywords'] = [
-        (words((
-            'assert', 'async', 'await', 'break', 'continue', 'del', 'elif',
-            'else', 'except', 'finally', 'for', 'global', 'if', 'lambda', 'pass',
-            'raise', 'nonlocal', 'return', 'try', 'while', 'yield', 'yield from',
-            'as', 'with'), suffix=r'\b'),
-         Keyword),
-        (words((
-            'True', 'False', 'None'), suffix=r'\b'),
-         Keyword.Constant),
-    ]
-    tokens['builtins'] = [
-        (words((
-            '__import__', 'abs', 'all', 'any', 'bin', 'bool', 'bytearray', 'bytes',
-            'chr', 'classmethod', 'cmp', 'compile', 'complex', 'delattr', 'dict',
-            'dir', 'divmod', 'enumerate', 'eval', 'filter', 'float', 'format',
-            'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'hex', 'id',
-            'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list',
-            'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct',
-            'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed',
-            'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str',
-            'sum', 'super', 'tuple', 'type', 'vars', 'zip'), prefix=r'(?<!\.)',
-            suffix=r'\b'),
-         Name.Builtin),
-        (r'(?<!\.)(self|Ellipsis|NotImplemented|cls)\b', Name.Builtin.Pseudo),
-        (words((
-            'ArithmeticError', 'AssertionError', 'AttributeError',
-            'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning',
-            'EOFError', 'EnvironmentError', 'Exception', 'FloatingPointError',
-            'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',
-            'ImportWarning', 'IndentationError', 'IndexError', 'KeyError',
-            'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError',
-            'NotImplementedError', 'OSError', 'OverflowError',
-            'PendingDeprecationWarning', 'ReferenceError', 'ResourceWarning',
-            'RuntimeError', 'RuntimeWarning', 'StopIteration',
-            'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError',
-            'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
-            'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
-            'UnicodeWarning', 'UserWarning', 'ValueError', 'VMSError', 'Warning',
-            'WindowsError', 'ZeroDivisionError',
-            # new builtin exceptions from PEP 3151
-            'BlockingIOError', 'ChildProcessError', 'ConnectionError',
-            'BrokenPipeError', 'ConnectionAbortedError', 'ConnectionRefusedError',
-            'ConnectionResetError', 'FileExistsError', 'FileNotFoundError',
-            'InterruptedError', 'IsADirectoryError', 'NotADirectoryError',
-            'PermissionError', 'ProcessLookupError', 'TimeoutError'),
-            prefix=r'(?<!\.)', suffix=r'\b'),
-         Name.Exception),
-    ]
-    tokens['magicfuncs'] = [
-        (words((
-            '__abs__', '__add__', '__aenter__', '__aexit__', '__aiter__', '__and__',
-            '__anext__', '__await__', '__bool__', '__bytes__', '__call__',
-            '__complex__', '__contains__', '__del__', '__delattr__', '__delete__',
-            '__delitem__', '__dir__', '__divmod__', '__enter__', '__eq__', '__exit__',
-            '__float__', '__floordiv__', '__format__', '__ge__', '__get__',
-            '__getattr__', '__getattribute__', '__getitem__', '__gt__', '__hash__',
-            '__iadd__', '__iand__', '__ifloordiv__', '__ilshift__', '__imatmul__',
-            '__imod__', '__import__', '__imul__', '__index__', '__init__',
-            '__instancecheck__', '__int__', '__invert__', '__ior__', '__ipow__',
-            '__irshift__', '__isub__', '__iter__', '__itruediv__', '__ixor__',
-            '__le__', '__len__', '__length_hint__', '__lshift__', '__lt__',
-            '__matmul__', '__missing__', '__mod__', '__mul__', '__ne__', '__neg__',
-            '__new__', '__next__', '__or__', '__pos__', '__pow__', '__prepare__',
-            '__radd__', '__rand__', '__rdivmod__', '__repr__', '__reversed__',
-            '__rfloordiv__', '__rlshift__', '__rmatmul__', '__rmod__', '__rmul__',
-            '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__',
-            '__rsub__', '__rtruediv__', '__rxor__', '__set__', '__setattr__',
-            '__setitem__', '__str__', '__sub__', '__subclasscheck__', '__truediv__',
-            '__xor__'), suffix=r'\b'),
-         Name.Function.Magic),
-    ]
-    tokens['magicvars'] = [
-        (words((
-            '__annotations__', '__bases__', '__class__', '__closure__', '__code__',
-            '__defaults__', '__dict__', '__doc__', '__file__', '__func__',
-            '__globals__', '__kwdefaults__', '__module__', '__mro__', '__name__',
-            '__objclass__', '__qualname__', '__self__', '__slots__', '__weakref__'),
-            suffix=r'\b'),
-         Name.Variable.Magic),
-    ]
-    tokens['numbers'] = [
-        (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?', Number.Float),
-        (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float),
-        (r'0[oO](?:_?[0-7])+', Number.Oct),
-        (r'0[bB](?:_?[01])+', Number.Bin),
-        (r'0[xX](?:_?[a-fA-F0-9])+', Number.Hex),
-        (r'\d(?:_?\d)*', Number.Integer)
-    ]
-    tokens['backtick'] = []
-    tokens['name'] = [
-        (r'@\w+', Name.Decorator),
-        (r'@', Operator),  # new matrix multiplication operator
-        (uni_name, Name),
-    ]
-    tokens['funcname'] = [
-        (uni_name, Name.Function, '#pop')
-    ]
-    tokens['classname'] = [
-        (uni_name, Name.Class, '#pop')
-    ]
-    tokens['import'] = [
-        (r'(\s+)(as)(\s+)', bygroups(Text, Keyword, Text)),
-        (r'\.', Name.Namespace),
-        (uni_name, Name.Namespace),
-        (r'(\s*)(,)(\s*)', bygroups(Text, Operator, Text)),
-        default('#pop')  # all else: go back
-    ]
-    tokens['fromimport'] = [
-        (r'(\s+)(import)\b', bygroups(Text, Keyword), '#pop'),
-        (r'\.', Name.Namespace),
-        (uni_name, Name.Namespace),
-        default('#pop'),
-    ]
-    tokens['strings-single'] = innerstring_rules(String.Single)
-    tokens['strings-double'] = innerstring_rules(String.Double)
-
-
-    def analyse_text(text):
-        return shebang_matches(text, r'pythonw?3(\.\d)?')
-
-
 class PythonConsoleLexer(Lexer):
     """
     For Python console output or doctests, such as:
@@ -418,25 +617,27 @@
     Additional options:
 
     `python3`
-        Use Python 3 lexer for code.  Default is ``False``.
+        Use Python 3 lexer for code.  Default is ``True``.
 
         .. versionadded:: 1.0
+        .. versionchanged:: 2.5
+           Now defaults to ``True``.
     """
     name = 'Python console session'
     aliases = ['pycon']
     mimetypes = ['text/x-python-doctest']
 
     def __init__(self, **options):
-        self.python3 = get_bool_opt(options, 'python3', False)
+        self.python3 = get_bool_opt(options, 'python3', True)
         Lexer.__init__(self, **options)
 
     def get_tokens_unprocessed(self, text):
         if self.python3:
-            pylexer = Python3Lexer(**self.options)
-            tblexer = Python3TracebackLexer(**self.options)
-        else:
             pylexer = PythonLexer(**self.options)
             tblexer = PythonTracebackLexer(**self.options)
+        else:
+            pylexer = Python2Lexer(**self.options)
+            tblexer = Python2TracebackLexer(**self.options)
 
         curcode = ''
         insertions = []
@@ -491,23 +692,28 @@
 
 class PythonTracebackLexer(RegexLexer):
     """
-    For Python tracebacks.
+    For Python 3.x tracebacks, with support for chained exceptions.
+
+    .. versionadded:: 1.0
 
-    .. versionadded:: 0.7
+    .. versionchanged:: 2.5
+       This is now the default ``PythonTracebackLexer``.  It is still available
+       as the alias ``Python3TracebackLexer``.
     """
 
     name = 'Python Traceback'
-    aliases = ['pytb']
-    filenames = ['*.pytb']
-    mimetypes = ['text/x-python-traceback']
+    aliases = ['pytb', 'py3tb']
+    filenames = ['*.pytb', '*.py3tb']
+    mimetypes = ['text/x-python-traceback', 'text/x-python3-traceback']
 
     tokens = {
         'root': [
-            # Cover both (most recent call last) and (innermost last)
-            # The optional ^C allows us to catch keyboard interrupt signals.
-            (r'^(\^C)?(Traceback.*\n)',
-             bygroups(Text, Generic.Traceback), 'intb'),
-            # SyntaxError starts with this.
+            (r'\n', Text),
+            (r'^Traceback \(most recent call last\):\n', Generic.Traceback, 'intb'),
+            (r'^During handling of the above exception, another '
+             r'exception occurred:\n\n', Generic.Traceback),
+            (r'^The above exception was the direct cause of the '
+             r'following exception:\n\n', Generic.Traceback),
             (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
             (r'^.*\n', Other),
         ],
@@ -528,27 +734,34 @@
     }
 
 
-class Python3TracebackLexer(RegexLexer):
+Python3TracebackLexer = PythonTracebackLexer
+
+
+class Python2TracebackLexer(RegexLexer):
     """
-    For Python 3.0 tracebacks, with support for chained exceptions.
+    For Python tracebacks.
+
+    .. versionadded:: 0.7
 
-    .. versionadded:: 1.0
+    .. versionchanged:: 2.5
+       This class has been renamed from ``PythonTracebackLexer``.
+       ``PythonTracebackLexer`` now refers to the Python 3 variant.
     """
 
-    name = 'Python 3.0 Traceback'
-    aliases = ['py3tb']
-    filenames = ['*.py3tb']
-    mimetypes = ['text/x-python3-traceback']
+    name = 'Python 2.x Traceback'
+    aliases = ['py2tb']
+    filenames = ['*.py2tb']
+    mimetypes = ['text/x-python2-traceback']
 
     tokens = {
         'root': [
-            (r'\n', Text),
-            (r'^Traceback \(most recent call last\):\n', Generic.Traceback, 'intb'),
-            (r'^During handling of the above exception, another '
-             r'exception occurred:\n\n', Generic.Traceback),
-            (r'^The above exception was the direct cause of the '
-             r'following exception:\n\n', Generic.Traceback),
+            # Cover both (most recent call last) and (innermost last)
+            # The optional ^C allows us to catch keyboard interrupt signals.
+            (r'^(\^C)?(Traceback.*\n)',
+             bygroups(Text, Generic.Traceback), 'intb'),
+            # SyntaxError starts with this.
             (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
+            (r'^.*\n', Other),
         ],
         'intb': [
             (r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
@@ -556,7 +769,7 @@
             (r'^(  File )("[^"]+")(, line )(\d+)(\n)',
              bygroups(Text, Name.Builtin, Text, Number, Text)),
             (r'^(    )(.+)(\n)',
-             bygroups(Text, using(Python3Lexer), Text)),
+             bygroups(Text, using(Python2Lexer), Text)),
             (r'^([ \t]*)(\.\.\.)(\n)',
              bygroups(Text, Comment, Text)),  # for doctests...
             (r'^([^:]+)(: )(.+)(\n)',
@@ -859,7 +1072,7 @@
     mimetypes = []
     filenames = []
 
-    EXTRA_KEYWORDS = set((
+    EXTRA_KEYWORDS = {
         'abs', 'absolute', 'accumulate', 'add', 'alen', 'all', 'allclose',
         'alltrue', 'alterdot', 'amax', 'amin', 'angle', 'any', 'append',
         'apply_along_axis', 'apply_over_axes', 'arange', 'arccos', 'arccosh',
@@ -924,7 +1137,7 @@
         'typename', 'uniform', 'union1d', 'unique', 'unique1d', 'unravel_index',
         'unwrap', 'vander', 'var', 'vdot', 'vectorize', 'view', 'vonmises',
         'vsplit', 'vstack', 'weibull', 'where', 'who', 'zeros', 'zeros_like'
-    ))
+    }
 
     def get_tokens_unprocessed(self, text):
         for index, token, value in \
@@ -935,6 +1148,6 @@
                 yield index, token, value
 
     def analyse_text(text):
-        return (shebang_matches(text, r'pythonw?(2(\.\d)?)?') or
+        return (shebang_matches(text, r'pythonw?(3(\.\d)?)?') or
                 'import ' in text[:1000]) \
             and ('import numpy' in text or 'from numpy import' in text)
--- a/eric6/ThirdParty/Pygments/pygments/lexers/qvt.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/qvt.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for QVT Operational language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -18,7 +18,7 @@
 
 
 class QVToLexer(RegexLexer):
-    """
+    u"""
     For the `QVT Operational Mapping language <http://www.omg.org/spec/QVT/1.1/>`_.
 
     Reference for implementing this: «Meta Object Facility (MOF) 2.0
--- a/eric6/ThirdParty/Pygments/pygments/lexers/r.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/r.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the R/S languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -80,7 +80,7 @@
     mimetypes = ['text/S-plus', 'text/S', 'text/x-r-source', 'text/x-r',
                  'text/x-R', 'text/x-r-history', 'text/x-r-profile']
 
-    valid_name = r'(?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*)'
+    valid_name = r'`[^`\\]*(?:\\.[^`\\]*)*`|(?:[a-zA-Z]|\.[A-Za-z_.])[\w_.]*|\.'
     tokens = {
         'comments': [
             (r'#.*$', Comment.Single),
@@ -161,7 +161,7 @@
     This is a very minimal implementation, highlighting little more
     than the macros. A description of Rd syntax is found in `Writing R
     Extensions <http://cran.r-project.org/doc/manuals/R-exts.html>`_
-    and `Parsing Rd files <developer.r-project.org/parseRd.pdf>`_.
+    and `Parsing Rd files <http://developer.r-project.org/parseRd.pdf>`_.
 
     .. versionadded:: 1.6
     """
--- a/eric6/ThirdParty/Pygments/pygments/lexers/rdf.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/rdf.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for semantic web and RDF query languages and markup.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -15,7 +15,7 @@
 from pygments.token import Keyword, Punctuation, String, Number, Operator, Generic, \
     Whitespace, Name, Literal, Comment, Text
 
-__all__ = ['SparqlLexer', 'TurtleLexer']
+__all__ = ['SparqlLexer', 'TurtleLexer', 'ShExCLexer']
 
 
 class SparqlLexer(RegexLexer):
@@ -268,3 +268,156 @@
 
         ],
     }
+
+    # Turtle and Tera Term macro files share the same file extension
+    # but each has a recognizable and distinct syntax.
+    def analyse_text(text):
+        for t in ('@base ', 'BASE ', '@prefix ', 'PREFIX '):
+            if re.search(r'^\s*%s' % t, text):
+                return 0.80
+
+
+class ShExCLexer(RegexLexer):
+    """
+    Lexer for `ShExC <https://shex.io/shex-semantics/#shexc>`_ shape expressions language syntax.
+    """
+    name = 'ShExC'
+    aliases = ['shexc', 'shex']
+    filenames = ['*.shex']
+    mimetypes = ['text/shex']
+
+    # character group definitions ::
+
+    PN_CHARS_BASE_GRP = (u'a-zA-Z'
+                         u'\u00c0-\u00d6'
+                         u'\u00d8-\u00f6'
+                         u'\u00f8-\u02ff'
+                         u'\u0370-\u037d'
+                         u'\u037f-\u1fff'
+                         u'\u200c-\u200d'
+                         u'\u2070-\u218f'
+                         u'\u2c00-\u2fef'
+                         u'\u3001-\ud7ff'
+                         u'\uf900-\ufdcf'
+                         u'\ufdf0-\ufffd')
+
+    PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_')
+
+    PN_CHARS_GRP = (PN_CHARS_U_GRP +
+                    r'\-' +
+                    r'0-9' +
+                    u'\u00b7' +
+                    u'\u0300-\u036f' +
+                    u'\u203f-\u2040')
+
+    HEX_GRP = '0-9A-Fa-f'
+
+    PN_LOCAL_ESC_CHARS_GRP = r"_~.\-!$&'()*+,;=/?#@%"
+
+    # terminal productions ::
+
+    PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']'
+
+    PN_CHARS_U = '[' + PN_CHARS_U_GRP + ']'
+
+    PN_CHARS = '[' + PN_CHARS_GRP + ']'
+
+    HEX = '[' + HEX_GRP + ']'
+
+    PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']'
+
+    UCHAR_NO_BACKSLASH = '(?:u' + HEX + '{4}|U' + HEX + '{8})'
+
+    UCHAR = r'\\' + UCHAR_NO_BACKSLASH
+
+    IRIREF = r'<(?:[^\x00-\x20<>"{}|^`\\]|' + UCHAR + ')*>'
+
+    BLANK_NODE_LABEL = '_:[0-9' + PN_CHARS_U_GRP + '](?:[' + PN_CHARS_GRP + \
+                       '.]*' + PN_CHARS + ')?'
+
+    PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?'
+
+    PERCENT = '%' + HEX + HEX
+
+    PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS
+
+    PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')'
+
+    PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' +
+                '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' +
+                PN_CHARS_GRP + ':]|' + PLX + '))?')
+
+    EXPONENT = r'[eE][+-]?\d+'
+
+    # Lexer token definitions ::
+
+    tokens = {
+        'root': [
+            (r'\s+', Text),
+            # keywords ::
+            (r'(?i)(base|prefix|start|external|'
+             r'literal|iri|bnode|nonliteral|length|minlength|maxlength|'
+             r'mininclusive|minexclusive|maxinclusive|maxexclusive|'
+             r'totaldigits|fractiondigits|'
+             r'closed|extra)\b', Keyword),
+            (r'(a)\b', Keyword),
+            # IRIs ::
+            ('(' + IRIREF + ')', Name.Label),
+            # blank nodes ::
+            ('(' + BLANK_NODE_LABEL + ')', Name.Label),
+            # prefixed names ::
+            (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + ')?',
+             bygroups(Name.Namespace, Punctuation, Name.Tag)),
+            # boolean literals ::
+            (r'(true|false)', Keyword.Constant),
+            # double literals ::
+            (r'[+\-]?(\d+\.\d*' + EXPONENT + r'|\.?\d+' + EXPONENT + ')', Number.Float),
+            # decimal literals ::
+            (r'[+\-]?(\d+\.\d*|\.\d+)', Number.Float),
+            # integer literals ::
+            (r'[+\-]?\d+', Number.Integer),
+            # operators ::
+            (r'[@|$&=*+?^\-~]', Operator),
+            # operator keywords ::
+            (r'(?i)(and|or|not)\b', Operator.Word),
+            # punctuation characters ::
+            (r'[(){}.;,:^\[\]]', Punctuation),
+            # line comments ::
+            (r'#[^\n]*', Comment),
+            # strings ::
+            (r'"""', String, 'triple-double-quoted-string'),
+            (r'"', String, 'single-double-quoted-string'),
+            (r"'''", String, 'triple-single-quoted-string'),
+            (r"'", String, 'single-single-quoted-string'),
+        ],
+        'triple-double-quoted-string': [
+            (r'"""', String, 'end-of-string'),
+            (r'[^\\]+', String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'single-double-quoted-string': [
+            (r'"', String, 'end-of-string'),
+            (r'[^"\\\n]+', String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'triple-single-quoted-string': [
+            (r"'''", String, 'end-of-string'),
+            (r'[^\\]+', String),
+            (r'\\', String.Escape, 'string-escape'),
+        ],
+        'single-single-quoted-string': [
+            (r"'", String, 'end-of-string'),
+            (r"[^'\\\n]+", String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'string-escape': [
+            (UCHAR_NO_BACKSLASH, String.Escape, '#pop'),
+            (r'.', String.Escape, '#pop'),
+        ],
+        'end-of-string': [
+            (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)',
+             bygroups(Operator, Name.Function), '#pop:2'),
+            (r'\^\^', Operator, '#pop:2'),
+            default('#pop:2'),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/rebol.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/rebol.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the REBOL and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -239,7 +239,7 @@
         if re.match(r'^\s*REBOL\s*\[', text, re.IGNORECASE):
             # The code starts with REBOL header
             return 1.0
-        elif re.search(r'\s*REBOL\s*[', text, re.IGNORECASE):
+        elif re.search(r'\s*REBOL\s*\[', text, re.IGNORECASE):
             # The code contains REBOL header but also some text before it
             return 0.5
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/resource.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/resource.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for resource definition files.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -26,7 +26,7 @@
     """
     name = 'ResourceBundle'
     aliases = ['resource', 'resourcebundle']
-    filenames = ['*.txt']
+    filenames = []
 
     _types = (':table', ':array', ':string', ':bin', ':import', ':intvector',
               ':int', ':alias')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ride.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,139 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.ride
+    ~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for the Ride programming language.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, words, include
+from pygments.token import Comment, Keyword, Name, Number, Punctuation, String, Text
+
+__all__ = ['RideLexer']
+
+
+class RideLexer(RegexLexer):
+    """
+    For `Ride <https://docs.wavesplatform.com/en/ride/about-ride.html>`_
+    source code.
+
+    .. versionadded:: 2.6
+    """
+
+    name = 'Ride'
+    aliases = ['ride']
+    filenames = ['*.ride']
+    mimetypes = ['text/x-ride']
+
+    validName = r'[a-zA-Z_][a-zA-Z0-9_\']*'
+
+    builtinOps = (
+        '||', '|', '>=', '>', '==', '!',
+        '=', '<=', '<', '::', ':+', ':', '!=', '/',
+        '.', '=>', '-', '+', '*', '&&', '%', '++',
+    )
+
+    globalVariablesName = (
+        'NOALG', 'MD5', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512',
+        'SHA3224', 'SHA3256', 'SHA3384', 'SHA3512', 'nil', 'this', 'unit',
+        'height', 'lastBlock', 'Buy', 'Sell', 'CEILING', 'FLOOR', 'DOWN',
+        'HALFDOWN', 'HALFEVEN', 'HALFUP', 'UP',
+    )
+
+    typesName = (
+        'Unit', 'Int', 'Boolean', 'ByteVector', 'String', 'Address', 'Alias',
+        'Transfer', 'AssetPair', 'DataEntry', 'Order', 'Transaction',
+        'GenesisTransaction', 'PaymentTransaction', 'ReissueTransaction',
+        'BurnTransaction', 'MassTransferTransaction', 'ExchangeTransaction',
+        'TransferTransaction', 'SetAssetScriptTransaction',
+        'InvokeScriptTransaction', 'IssueTransaction', 'LeaseTransaction',
+        'LeaseCancelTransaction', 'CreateAliasTransaction',
+        'SetScriptTransaction', 'SponsorFeeTransaction', 'DataTransaction',
+        'WriteSet', 'AttachedPayment', 'ScriptTransfer', 'TransferSet',
+        'ScriptResult', 'Invocation', 'Asset', 'BlockInfo', 'Issue', 'Reissue',
+        'Burn', 'NoAlg', 'Md5', 'Sha1', 'Sha224', 'Sha256', 'Sha384', 'Sha512',
+        'Sha3224', 'Sha3256', 'Sha3384', 'Sha3512', 'BinaryEntry',
+        'BooleanEntry', 'IntegerEntry', 'StringEntry', 'List', 'Ceiling',
+        'Down', 'Floor', 'HalfDown', 'HalfEven', 'HalfUp', 'Up',
+    )
+
+    functionsName = (
+        'fraction', 'size', 'toBytes', 'take', 'drop', 'takeRight', 'dropRight',
+        'toString', 'isDefined', 'extract', 'throw', 'getElement', 'value',
+        'cons', 'toUtf8String', 'toInt', 'indexOf', 'lastIndexOf', 'split',
+        'parseInt', 'parseIntValue', 'keccak256', 'blake2b256', 'sha256',
+        'sigVerify', 'toBase58String', 'fromBase58String', 'toBase64String',
+        'fromBase64String', 'transactionById', 'transactionHeightById',
+        'getInteger', 'getBoolean', 'getBinary', 'getString',
+        'addressFromPublicKey', 'addressFromString', 'addressFromRecipient',
+        'assetBalance', 'wavesBalance', 'getIntegerValue', 'getBooleanValue',
+        'getBinaryValue', 'getStringValue', 'addressFromStringValue',
+        'assetInfo', 'rsaVerify', 'checkMerkleProof', 'median',
+        'valueOrElse', 'valueOrErrorMessage', 'contains', 'log', 'pow',
+        'toBase16String', 'fromBase16String', 'blockInfoByHeight',
+        'transferTransactionById',
+    )
+
+    reservedWords = words((
+        'match', 'case', 'else', 'func', 'if',
+        'let', 'then', '@Callable', '@Verifier',
+    ), suffix=r'\b')
+
+    tokens = {
+        'root': [
+            # Comments
+            (r'#.*', Comment.Single),
+            # Whitespace
+            (r'\s+', Text),
+            # Strings
+            (r'"', String, 'doublequote'),
+            (r'utf8\'', String, 'utf8quote'),
+            (r'base(58|64|16)\'', String, 'singlequote'),
+            # Keywords
+            (reservedWords, Keyword.Reserved),
+            (r'\{-#.*?#-\}', Keyword.Reserved),
+            (r'FOLD<\d+>', Keyword.Reserved),
+            # Types
+            (words(typesName), Keyword.Type),
+            # Main
+            # (specialName, Keyword.Reserved),
+            # Prefix Operators
+            (words(builtinOps, prefix=r'\(', suffix=r'\)'), Name.Function),
+            # Infix Operators
+            (words(builtinOps), Name.Function),
+            (words(globalVariablesName), Name.Function),
+            (words(functionsName), Name.Function),
+            # Numbers
+            include('numbers'),
+            # Variable Names
+            (validName, Name.Variable),
+            # Parens
+            (r'[,()\[\]{}]', Punctuation),
+        ],
+
+        'doublequote': [
+            (r'\\u[0-9a-fA-F]{4}', String.Escape),
+            (r'\\[nrfvb\\"]', String.Escape),
+            (r'[^"]', String),
+            (r'"', String, '#pop'),
+        ],
+
+        'utf8quote': [
+            (r'\\u[0-9a-fA-F]{4}', String.Escape),
+            (r'\\[nrfvb\\\']', String.Escape),
+            (r'[^\']', String),
+            (r'\'', String, '#pop'),
+        ],
+
+        'singlequote': [
+            (r'[^\']', String),
+            (r'\'', String, '#pop'),
+        ],
+
+        'numbers': [
+            (r'_?\d+', Number.Integer),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/rnc.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/rnc.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for Relax-NG Compact syntax
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/roboconf.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/roboconf.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Roboconf DSL.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/robotframework.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/robotframework.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for Robot Framework.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -27,7 +27,6 @@
 
 from pygments.lexer import Lexer
 from pygments.token import Token
-from pygments.util import text_type
 
 __all__ = ['RobotFrameworkLexer']
 
@@ -64,7 +63,7 @@
     """
     name = 'RobotFramework'
     aliases = ['robotframework']
-    filenames = ['*.txt', '*.robot']
+    filenames = ['*.robot']
     mimetypes = ['text/x-robotframework']
 
     def __init__(self, **options):
@@ -80,11 +79,11 @@
             for value, token in row_tokenizer.tokenize(row):
                 for value, token in var_tokenizer.tokenize(value, token):
                     if value:
-                        yield index, token, text_type(value)
+                        yield index, token, str(value)
                         index += len(value)
 
 
-class VariableTokenizer(object):
+class VariableTokenizer:
 
     def tokenize(self, string, token):
         var = VariableSplitter(string, identifiers='$@%&')
@@ -111,7 +110,7 @@
             yield value, token
 
 
-class RowTokenizer(object):
+class RowTokenizer:
 
     def __init__(self):
         self._table = UnknownTable()
@@ -159,7 +158,7 @@
                 yield value, token
 
 
-class RowSplitter(object):
+class RowSplitter:
     _space_splitter = re.compile('( {2,})')
     _pipe_splitter = re.compile(r'((?:^| +)\|(?: +|$))')
 
@@ -185,7 +184,7 @@
         yield rest
 
 
-class Tokenizer(object):
+class Tokenizer:
     _tokens = None
 
     def __init__(self):
@@ -292,7 +291,7 @@
         return GherkinTokenizer().tokenize(value, KEYWORD)
 
 
-class GherkinTokenizer(object):
+class GherkinTokenizer:
     _gherkin_prefix = re.compile('^(Given|When|Then|And) ', re.IGNORECASE)
 
     def tokenize(self, value, token):
@@ -320,7 +319,7 @@
         return token
 
 
-class _Table(object):
+class _Table:
     _tokenizer_class = None
 
     def __init__(self, prev_tokenizer=None):
--- a/eric6/ThirdParty/Pygments/pygments/lexers/ruby.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/ruby.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Ruby and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -43,17 +43,17 @@
 
     def heredoc_callback(self, match, ctx):
         # okay, this is the hardest part of parsing Ruby...
-        # match: 1 = <<-?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
+        # match: 1 = <<[-~]?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
 
         start = match.start(1)
-        yield start, Operator, match.group(1)        # <<-?
+        yield start, Operator, match.group(1)        # <<[-~]?
         yield match.start(2), String.Heredoc, match.group(2)   # quote ", ', `
         yield match.start(3), String.Delimiter, match.group(3) # heredoc name
         yield match.start(4), String.Heredoc, match.group(4)   # quote again
 
         heredocstack = ctx.__dict__.setdefault('heredocstack', [])
         outermost = not bool(heredocstack)
-        heredocstack.append((match.group(1) == '<<-', match.group(3)))
+        heredocstack.append((match.group(1) in ('<<-', '<<~'), match.group(3)))
 
         ctx.pos = match.start(5)
         ctx.end = match.end(5)
@@ -247,10 +247,10 @@
              Name.Builtin),
             (r'__(FILE|LINE)__\b', Name.Builtin.Pseudo),
             # normal heredocs
-            (r'(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
+            (r'(?<!\w)(<<[-~]?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
              heredoc_callback),
             # empty string heredocs
-            (r'(<<-?)("|\')()(\2)(.*?\n)', heredoc_callback),
+            (r'(<<[-~]?)("|\')()(\2)(.*?\n)', heredoc_callback),
             (r'__END__', Comment.Preproc, 'end-part'),
             # multiline regex (after keywords or assignments)
             (r'(?:^|(?<=[=<>~!:])|'
--- a/eric6/ThirdParty/Pygments/pygments/lexers/rust.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/rust.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Rust language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -18,48 +18,47 @@
 
 class RustLexer(RegexLexer):
     """
-    Lexer for the Rust programming language (version 1.10).
+    Lexer for the Rust programming language (version 1.40).
 
     .. versionadded:: 1.6
     """
     name = 'Rust'
     filenames = ['*.rs', '*.rs.in']
     aliases = ['rust', 'rs']
-    mimetypes = ['text/rust']
+    mimetypes = ['text/rust', 'text/x-rust']
 
-    keyword_types = (
-        words(('u8', 'u16', 'u32', 'u64', 'i8', 'i16', 'i32', 'i64',
-               'usize', 'isize', 'f32', 'f64', 'str', 'bool'),
-              suffix=r'\b'),
-        Keyword.Type)
+    keyword_types = (words((
+        'u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128',
+        'usize', 'isize', 'f32', 'f64', 'char', 'str', 'bool',
+    ), suffix=r'\b'), Keyword.Type)
 
     builtin_types = (words((
-        # Reexported core operators
-        'Copy', 'Send', 'Sized', 'Sync',
+        'Send', 'Sized', 'Sync', 'Unpin',
         'Drop', 'Fn', 'FnMut', 'FnOnce',
-
-        # Reexported types and traits
-        'Box',
-        'ToOwned',
-        'Clone',
-        'PartialEq', 'PartialOrd', 'Eq', 'Ord',
         'AsRef', 'AsMut', 'Into', 'From',
-        'Default',
-        'Iterator', 'Extend', 'IntoIterator',
-        'DoubleEndedIterator', 'ExactSizeIterator',
-        'Option',
-        'Some', 'None',
-        'Result',
-        'Ok', 'Err',
-        'SliceConcatExt',
-        'String', 'ToString',
-        'Vec'), suffix=r'\b'),
-        Name.Builtin)
+        'Iterator', 'Extend', 'IntoIterator', 'DoubleEndedIterator',
+        'ExactSizeIterator', 'Option', 'Result',
+        'Box', 'ToOwned', 'String', 'ToString', 'Vec',
+        'Clone', 'Copy', 'Default', 'Eq', 'Hash', 'Ord', 'PartialEq',
+        'PartialOrd', 'Eq', 'Ord',
+    ), suffix=r'\b'), Name.Builtin)
+
+    builtin_funcs_macros = (words((
+        'drop', 'Some', 'None', 'Ok', 'Err',
+        'asm!', 'assert!', 'assert_eq!', 'assert_ne!', 'cfg!', 'column!',
+        'compile_error!', 'concat!', 'concat_idents!', 'dbg!', 'debug_assert!',
+        'debug_assert_eq!', 'debug_assert_ne!', 'env!', 'eprint!', 'eprintln!',
+        'file!', 'format_args!', 'format_args_nl!', 'global_asm!', 'include!',
+        'include_bytes!', 'include_str!', 'line!', 'log_syntax!',
+        'module_path!', 'option_env!', 'panic!', 'print!', 'println!',
+        'stringify!', 'thread_local!', 'todo!', 'trace_macros!',
+        'unimplemented!', 'unreachable!', 'vec!', 'write!', 'writeln!',
+    ), suffix=r'\b'), Name.Builtin)
 
     tokens = {
         'root': [
             # rust allows a file to start with a shebang, but if the first line
-            # starts with #![ then it’s not a shebang but a crate attribute.
+            # starts with #![ then it's not a shebang but a crate attribute.
             (r'#![^[\r\n].*$', Comment.Preproc),
             default('base'),
         ],
@@ -78,11 +77,11 @@
             (r"""\$([a-zA-Z_]\w*|\(,?|\),?|,?)""", Comment.Preproc),
             # Keywords
             (words((
-                'as', 'box', 'const', 'crate', 'else', 'extern',
-                'for', 'if', 'impl', 'in', 'loop', 'match', 'move',
-                'mut', 'pub', 'ref', 'return', 'static', 'super',
-                'trait', 'unsafe', 'use', 'where', 'while'), suffix=r'\b'),
-             Keyword),
+                'as', 'async', 'await', 'box', 'const', 'crate', 'dyn', 'else',
+                'extern', 'for', 'if', 'impl', 'in', 'loop', 'match', 'move',
+                'mut', 'pub', 'ref', 'return', 'static', 'super', 'trait',
+                'try', 'unsafe', 'use', 'where', 'while', 'macro_rules!',
+            ), suffix=r'\b'), Keyword),
             (words(('abstract', 'alignof', 'become', 'do', 'final', 'macro',
                     'offsetof', 'override', 'priv', 'proc', 'pure', 'sizeof',
                     'typeof', 'unsized', 'virtual', 'yield'), suffix=r'\b'),
@@ -94,9 +93,10 @@
             (r'(struct|enum|type|union)\b', Keyword, 'typename'),
             (r'(default)(\s+)(type|fn)\b', bygroups(Keyword, Text, Keyword)),
             keyword_types,
-            (r'self\b', Name.Builtin.Pseudo),
-            # Prelude (taken from Rust’s src/libstd/prelude.rs)
+            (r'[sS]elf\b', Name.Builtin.Pseudo),
+            # Prelude (taken from Rust's src/libstd/prelude.rs)
             builtin_types,
+            builtin_funcs_macros,
             # Path seperators, so types don't catch them.
             (r'::\b', Text),
             # Types in positions.
@@ -104,49 +104,48 @@
             # Labels
             (r'(break|continue)(\s*)(\'[A-Za-z_]\w*)?',
              bygroups(Keyword, Text.Whitespace, Name.Label)),
-            # Character Literal
+
+            # Character literals
             (r"""'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
              r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
              String.Char),
             (r"""b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0"""
              r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
              String.Char),
-            # Binary Literal
+
+            # Binary literals
             (r'0b[01_]+', Number.Bin, 'number_lit'),
-            # Octal Literal
+            # Octal literals
             (r'0o[0-7_]+', Number.Oct, 'number_lit'),
-            # Hexadecimal Literal
+            # Hexadecimal literals
             (r'0[xX][0-9a-fA-F_]+', Number.Hex, 'number_lit'),
-            # Decimal Literal
+            # Decimal literals
             (r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|'
              r'\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)', Number.Float,
              'number_lit'),
             (r'[0-9][0-9_]*', Number.Integer, 'number_lit'),
-            # String Literal
+
+            # String literals
             (r'b"', String, 'bytestring'),
             (r'"', String, 'string'),
             (r'b?r(#*)".*?"\1', String),
 
-            # Lifetime
-            (r"""'static""", Name.Builtin),
-            (r"""'[a-zA-Z_]\w*""", Name.Attribute),
+            # Lifetime names
+            (r"'(static|_)", Name.Builtin),
+            (r"'[a-zA-Z_]\w*", Name.Attribute),
 
             # Operators and Punctuation
+            (r'\.\.=?', Operator),
             (r'[{}()\[\],.;]', Punctuation),
             (r'[+\-*/%&|<>^!~@=:?]', Operator),
 
-            # Identifier
+            # Identifiers
             (r'[a-zA-Z_]\w*', Name),
+            # Raw identifiers
+            (r'r#[a-zA-Z_]\w*', Name),
 
             # Attributes
             (r'#!?\[', Comment.Preproc, 'attribute['),
-            # Macros
-            (r'([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\s*)(\{)',
-             bygroups(Comment.Preproc, Punctuation, Whitespace, Name,
-                      Whitespace, Punctuation), 'macro{'),
-            (r'([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\()',
-             bygroups(Comment.Preproc, Punctuation, Whitespace, Name,
-                      Punctuation), 'macro('),
         ],
         'comment': [
             (r'[^*/]+', Comment.Multiline),
@@ -194,14 +193,6 @@
             (r"""\\x[89a-fA-F][0-9a-fA-F]""", String.Escape),
             include('string'),
         ],
-        'macro{': [
-            (r'\{', Operator, '#push'),
-            (r'\}', Operator, '#pop'),
-        ],
-        'macro(': [
-            (r'\(', Operator, '#push'),
-            (r'\)', Operator, '#pop'),
-        ],
         'attribute_common': [
             (r'"', String, 'string'),
             (r'\[', Comment.Preproc, 'attribute['),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/sas.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/sas.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for SAS.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/scdoc.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.scdoc
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for scdoc, a simple man page generator.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, bygroups, \
+    using, this
+from pygments.token import Text, Comment, Keyword, String, \
+    Generic
+
+
+__all__ = ['ScdocLexer']
+
+
+class ScdocLexer(RegexLexer):
+    """
+    `scdoc` is a simple man page generator for POSIX systems written in C99.
+    https://git.sr.ht/~sircmpwn/scdoc
+
+    .. versionadded:: 2.5
+    """
+    name = 'scdoc'
+    aliases = ['scdoc', 'scd']
+    filenames = ['*.scd', '*.scdoc']
+    flags = re.MULTILINE
+
+    tokens = {
+        'root': [
+            # comment
+            (r'^(;.+\n)', bygroups(Comment)),
+
+            # heading with pound prefix
+            (r'^(#)([^#].+\n)', bygroups(Generic.Heading, Text)),
+            (r'^(#{2})(.+\n)', bygroups(Generic.Subheading, Text)),
+            # bulleted lists
+            (r'^(\s*)([*-])(\s)(.+\n)',
+            bygroups(Text, Keyword, Text, using(this, state='inline'))),
+            # numbered lists
+            (r'^(\s*)(\.+\.)( .+\n)',
+            bygroups(Text, Keyword, using(this, state='inline'))),
+            # quote
+            (r'^(\s*>\s)(.+\n)', bygroups(Keyword, Generic.Emph)),
+            # text block
+            (r'^(```\n)([\w\W]*?)(^```$)', bygroups(String, Text, String)),
+
+            include('inline'),
+        ],
+        'inline': [
+            # escape
+            (r'\\.', Text),
+            # underlines
+            (r'(\s)(_[^_]+_)(\W|\n)', bygroups(Text, Generic.Emph, Text)),
+            # bold
+            (r'(\s)(\*[^\*]+\*)(\W|\n)', bygroups(Text, Generic.Strong, Text)),
+            # inline code
+            (r'`[^`]+`', String.Backtick),
+
+            # general text, must come last!
+            (r'[^\\\s]+', Text),
+            (r'.', Text),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/scripting.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/scripting.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for scripting and embedded languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -15,11 +15,11 @@
     words
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
     Number, Punctuation, Error, Whitespace, Other
-from pygments.util import get_bool_opt, get_list_opt, iteritems
+from pygments.util import get_bool_opt, get_list_opt
 
 __all__ = ['LuaLexer', 'MoonScriptLexer', 'ChaiscriptLexer', 'LSLLexer',
            'AppleScriptLexer', 'RexxLexer', 'MOOCodeLexer', 'HybrisLexer',
-           'EasytrieveLexer', 'JclLexer']
+           'EasytrieveLexer', 'JclLexer', 'MiniScriptLexer']
 
 
 class LuaLexer(RegexLexer):
@@ -142,7 +142,7 @@
         self._functions = set()
         if self.func_name_highlighting:
             from pygments.lexers._lua_builtins import MODULES
-            for mod, func in iteritems(MODULES):
+            for mod, func in MODULES.items():
                 if mod not in self.disabled_modules:
                     self._functions.update(func)
         RegexLexer.__init__(self, **options)
@@ -162,7 +162,6 @@
                     continue
             yield index, token, value
 
-
 class MoonScriptLexer(LuaLexer):
     """
     For `MoonScript <http://moonscript.org>`_ source code.
@@ -1220,3 +1219,57 @@
                 result = 1.0
         assert 0.0 <= result <= 1.0
         return result
+
+
+class MiniScriptLexer(RegexLexer):
+    """
+    For `MiniScript <https://miniscript.org>`_ source code.
+
+    .. versionadded:: 2.6
+    """
+
+    name = "MiniScript"
+    aliases = ["ms", "miniscript"]
+    filenames = ["*.ms"]
+    mimetypes = ['text/x-minicript', 'application/x-miniscript']
+
+    tokens = {
+        'root': [
+            (r'#!(.*?)$', Comment.Preproc),
+            default('base'),
+        ],
+        'base': [
+            ('//.*$', Comment.Single),
+            (r'(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?', Number),
+            (r'(?i)\d+e[+-]?\d+', Number),
+            (r'\d+', Number),
+            (r'\n', Text),
+            (r'[^\S\n]+', Text),
+            (r'"', String, 'string_double'),
+            (r'(==|!=|<=|>=|[=+\-*/%^<>.:])', Operator),
+            (r'[;,\[\]{}()]', Punctuation),
+            (words((
+                'break', 'continue', 'else', 'end', 'for', 'function', 'if',
+                'in', 'isa', 'then', 'repeat', 'return', 'while'), suffix=r'\b'),
+             Keyword),
+            (words((
+            	'abs', 'acos', 'asin', 'atan', 'ceil', 'char', 'cos', 'floor',
+            	'log', 'round', 'rnd', 'pi', 'sign', 'sin', 'sqrt', 'str', 'tan',
+            	'hasIndex', 'indexOf', 'len', 'val', 'code', 'remove', 'lower',
+            	'upper', 'replace', 'split', 'indexes', 'values', 'join', 'sum',
+            	'sort', 'shuffle', 'push', 'pop', 'pull', 'range',
+            	'print', 'input', 'time', 'wait', 'locals', 'globals', 'outer',
+            	'yield'), suffix=r'\b'),
+             Name.Builtin),
+            (r'(true|false|null)\b', Keyword.Constant),
+            (r'(and|or|not|new)\b', Operator.Word),
+            (r'(self|super|__isa)\b', Name.Builtin.Pseudo),
+            (r'[a-zA-Z_]\w*', Name.Variable)
+        ],
+        'string_double': [
+            (r'[^"\n]+', String),
+            (r'""', String),
+            (r'"', String, '#pop'),
+            (r'\n', Text, '#pop'),  # Stray linefeed also terminates strings.
+        ]
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/sgf.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.sgf
+    ~~~~~~~~~~~~~~~~~~~
+
+    Lexer for Smart Game Format (sgf) file format.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups
+from pygments.token import Name, Literal, String, Text, Punctuation
+
+__all__ = ["SmartGameFormatLexer"]
+
+
+class SmartGameFormatLexer(RegexLexer):
+    """
+    Lexer for Smart Game Format (sgf) file format.
+
+    The format is used to store game records of board games for two players
+    (mainly Go game).
+    For more information about the definition of the format, see:
+    https://www.red-bean.com/sgf/
+
+    .. versionadded:: 2.4
+    """
+    name = 'SmartGameFormat'
+    aliases = ['sgf']
+    filenames = ['*.sgf']
+
+    tokens = {
+        'root': [
+            (r'[\s():;]', Punctuation),
+            # tokens:
+            (r'(A[BW]|AE|AN|AP|AR|AS|[BW]L|BM|[BW]R|[BW]S|[BW]T|CA|CH|CP|CR|'
+             r'DD|DM|DO|DT|EL|EV|EX|FF|FG|G[BW]|GC|GM|GN|HA|HO|ID|IP|IT|IY|KM|'
+             r'KO|LB|LN|LT|L|MA|MN|M|N|OB|OM|ON|OP|OT|OV|P[BW]|PC|PL|PM|RE|RG|'
+             r'RO|RU|SO|SC|SE|SI|SL|SO|SQ|ST|SU|SZ|T[BW]|TC|TE|TM|TR|UC|US|VW|'
+             r'V|[BW]|C)',
+             Name.Builtin),
+            # number:
+            (r'(\[)([0-9.]+)(\])',
+             bygroups(Punctuation, Literal.Number, Punctuation)),
+            # date:
+            (r'(\[)([0-9]{4}-[0-9]{2}-[0-9]{2})(\])',
+             bygroups(Punctuation, Literal.Date, Punctuation)),
+            # point:
+            (r'(\[)([a-z]{2})(\])',
+             bygroups(Punctuation, String, Punctuation)),
+            # double points:
+            (r'(\[)([a-z]{2})(:)([a-z]{2})(\])',
+             bygroups(Punctuation, String, Punctuation, String, Punctuation)),
+
+            (r'(\[)([\w\s#()+,\-.:?]+)(\])',
+             bygroups(Punctuation, String, Punctuation)),
+            (r'(\[)(\s.*)(\])',
+             bygroups(Punctuation, Text, Punctuation)),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/shell.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/shell.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for various shells.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -19,7 +19,7 @@
 
 
 __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer',
-           'MSDOSSessionLexer', 'PowerShellLexer',
+           'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer',
            'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer']
 
 line_re = re.compile('.*?\n')
@@ -38,7 +38,7 @@
                  '*.exheres-0', '*.exlib', '*.zsh',
                  '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc',
                  'PKGBUILD']
-    mimetypes = ['application/x-sh', 'application/x-shellscript']
+    mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript']
 
     tokens = {
         'root': [
@@ -76,7 +76,7 @@
             (r'&&|\|\|', Operator),
         ],
         'data': [
-            (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double),
+            (r'(?s)\$?"(\\.|[^"\\$])*"', String.Double),
             (r'"', String.Double, 'string'),
             (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
             (r"(?s)'.*?'", String.Single),
@@ -126,12 +126,37 @@
             return 0.2
 
 
+class SlurmBashLexer(BashLexer):
+    """
+    Lexer for (ba|k|z|)sh Slurm scripts.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'Slurm'
+    aliases = ['slurm', 'sbatch']
+    filenames = ['*.sl']
+    mimetypes = []
+    EXTRA_KEYWORDS = {'srun'}
+
+    def get_tokens_unprocessed(self, text):
+        for index, token, value in BashLexer.get_tokens_unprocessed(self, text):
+            if token is Text and value in self.EXTRA_KEYWORDS:
+                yield index, Name.Builtin, value
+            elif token is Comment.Single and 'SBATCH' in value:
+                yield index, Keyword.Pseudo, value
+            else:
+                yield index, token, value
+
 class ShellSessionBaseLexer(Lexer):
     """
     Base lexer for simplistic shell sessions.
 
     .. versionadded:: 2.1
     """
+
+    _venv = re.compile(r'^(\([^)]*\))(\s*)')
+
     def get_tokens_unprocessed(self, text):
         innerlexer = self._innerLexerCls(**self.options)
 
@@ -142,11 +167,24 @@
 
         for match in line_re.finditer(text):
             line = match.group()
-            m = re.match(self._ps1rgx, line)
             if backslash_continuation:
                 curcode += line
                 backslash_continuation = curcode.endswith('\\\n')
-            elif m:
+                continue
+            
+            venv_match = self._venv.match(line)
+            if venv_match:
+                venv = venv_match.group(1)
+                venv_whitespace = venv_match.group(2)
+                insertions.append((len(curcode),
+                    [(0, Generic.Prompt.VirtualEnv, venv)]))
+                if venv_whitespace:
+                    insertions.append((len(curcode),
+                        [(0, Text, venv_whitespace)]))
+                line = line[venv_match.end():]
+
+            m = self._ps1rgx.match(line)
+            if m:
                 # To support output lexers (say diff output), the output
                 # needs to be broken by prompts whenever the output lexer
                 # changes.
@@ -189,9 +227,9 @@
     mimetypes = ['application/x-shell-session', 'application/x-sh-session']
 
     _innerLexerCls = BashLexer
-    _ps1rgx = \
+    _ps1rgx = re.compile(
         r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
-        r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)'
+        r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)')
     _ps2 = '>'
 
 
@@ -518,7 +556,7 @@
     mimetypes = []
 
     _innerLexerCls = BatchLexer
-    _ps1rgx = r'^([^>]+>)(.*\n?)'
+    _ps1rgx = re.compile(r'^([^>]*>)(.*\n?)')
     _ps2 = 'More? '
 
 
@@ -603,7 +641,7 @@
     mimetypes = []
 
     _innerLexerCls = TcshLexer
-    _ps1rgx = r'^([^>]+>)(.*\n?)'
+    _ps1rgx = re.compile(r'^([^>]+>)(.*\n?)')
     _ps2 = '? '
 
 
@@ -650,7 +688,7 @@
         'convertfrom convert connect confirm compress complete compare close '
         'clear checkpoint block backup assert approve aggregate add').split()
 
-    aliases = (
+    aliases_ = (
         'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn '
         'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal '
         'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm '
@@ -688,7 +726,7 @@
             (r'(%s)\b' % '|'.join(keywords), Keyword),
             (r'-(%s)\b' % '|'.join(operators), Operator),
             (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin),
-            (r'(%s)\s' % '|'.join(aliases), Name.Builtin),
+            (r'(%s)\s' % '|'.join(aliases_), Name.Builtin),
             (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant),  # .net [type]s
             (r'-[a-z_]\w*', Name),
             (r'\w+', Name),
@@ -734,7 +772,7 @@
     mimetypes = []
 
     _innerLexerCls = PowerShellLexer
-    _ps1rgx = r'^(PS [^>]+> )(.*\n?)'
+    _ps1rgx = re.compile(r'^(PS [^>]+> )(.*\n?)')
     _ps2 = '>> '
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/sieve.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.sieve
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for Sieve file format.
+
+    https://tools.ietf.org/html/rfc5228
+    https://tools.ietf.org/html/rfc5173
+    https://tools.ietf.org/html/rfc5229
+    https://tools.ietf.org/html/rfc5230
+    https://tools.ietf.org/html/rfc5232
+    https://tools.ietf.org/html/rfc5235
+    https://tools.ietf.org/html/rfc5429
+    https://tools.ietf.org/html/rfc8580
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups
+from pygments.token import Comment, Name, Literal, String, Text, Punctuation, Keyword
+
+__all__ = ["SieveLexer"]
+
+
+class SieveLexer(RegexLexer):
+    """
+    Lexer for sieve format.
+    """
+    name = 'Sieve'
+    filenames = ['*.siv', '*.sieve']
+    aliases = ['sieve']
+
+    tokens = {
+        'root': [
+            (r'\s+', Text),
+            (r'[();,{}\[\]]', Punctuation),
+            # import:
+            (r'(?i)require',
+             Keyword.Namespace),
+            # tags:
+            (r'(?i)(:)(addresses|all|contains|content|create|copy|comparator|count|days|detail|domain|fcc|flags|from|handle|importance|is|localpart|length|lowerfirst|lower|matches|message|mime|options|over|percent|quotewildcard|raw|regex|specialuse|subject|text|under|upperfirst|upper|value)',
+             bygroups(Name.Tag, Name.Tag)),
+            # tokens:
+            (r'(?i)(address|addflag|allof|anyof|body|discard|elsif|else|envelope|ereject|exists|false|fileinto|if|hasflag|header|keep|notify_method_capability|notify|not|redirect|reject|removeflag|setflag|size|spamtest|stop|string|true|vacation|virustest)',
+             Name.Builtin),
+            (r'(?i)set',
+             Keyword.Declaration),
+            # number:
+            (r'([0-9.]+)([kmgKMG])?',
+             bygroups(Literal.Number, Literal.Number)),
+            # comment:
+            (r'#.*$',
+             Comment.Single),
+            (r'/\*.*\*/',
+             Comment.Multiline),
+            # string:
+            (r'"[^"]*?"',
+             String),
+            # text block:
+            (r'text:',
+             Name.Tag, 'text'),
+        ],
+        'text': [
+            (r'[^.].*?\n', String),
+            (r'^\.', Punctuation, "#pop"),
+        ]
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/slash.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,185 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.slash
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for the `Slash <https://github.com/arturadib/Slash-A>`_ programming
+    language.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import ExtendedRegexLexer, bygroups, DelegatingLexer
+from pygments.token import Name, Number, String, Comment, Punctuation, \
+    Other, Keyword, Operator, Whitespace
+
+__all__ = ['SlashLexer']
+
+
+class SlashLanguageLexer(ExtendedRegexLexer):
+    _nkw = r'(?=[^a-zA-Z_0-9])'
+
+    def move_state(new_state):
+        return ("#pop", new_state)
+
+    def right_angle_bracket(lexer, match, ctx):
+        if len(ctx.stack) > 1 and ctx.stack[-2] == "string":
+            ctx.stack.pop()
+        yield match.start(), String.Interpol, u"}"
+        ctx.pos = match.end()
+        pass
+
+    tokens = {
+        "root": [
+            (r"<%=",        Comment.Preproc,    move_state("slash")),
+            (r"<%!!",       Comment.Preproc,    move_state("slash")),
+            (r"<%#.*?%>",   Comment.Multiline),
+            (r"<%",         Comment.Preproc,    move_state("slash")),
+            (r".|\n",       Other),
+        ],
+        "string": [
+            (r"\\",         String.Escape,      move_state("string_e")),
+            (r"\"",         String,             move_state("slash")),
+            (r"#\{",        String.Interpol,    "slash"),
+            (r'.|\n',       String),
+        ],
+        "string_e": [
+            (r'n',                  String.Escape,      move_state("string")),
+            (r't',                  String.Escape,      move_state("string")),
+            (r'r',                  String.Escape,      move_state("string")),
+            (r'e',                  String.Escape,      move_state("string")),
+            (r'x[a-fA-F0-9]{2}',    String.Escape,      move_state("string")),
+            (r'.',                  String.Escape,      move_state("string")),
+        ],
+        "regexp": [
+            (r'}[a-z]*',            String.Regex,       move_state("slash")),
+            (r'\\(.|\n)',           String.Regex),
+            (r'{',                  String.Regex,       "regexp_r"),
+            (r'.|\n',               String.Regex),
+        ],
+        "regexp_r": [
+            (r'}[a-z]*',            String.Regex,       "#pop"),
+            (r'\\(.|\n)',           String.Regex),
+            (r'{',                  String.Regex,       "regexp_r"),
+        ],
+        "slash": [
+            (r"%>",                     Comment.Preproc,    move_state("root")),
+            (r"\"",                     String,             move_state("string")),
+            (r"'[a-zA-Z0-9_]+",         String),
+            (r'%r{',                    String.Regex,       move_state("regexp")),
+            (r'/\*.*?\*/',              Comment.Multiline),
+            (r"(#|//).*?\n",            Comment.Single),
+            (r'-?[0-9]+e[+-]?[0-9]+',   Number.Float),
+            (r'-?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?', Number.Float),
+            (r'-?[0-9]+',               Number.Integer),
+            (r'nil'+_nkw,               Name.Builtin),
+            (r'true'+_nkw,              Name.Builtin),
+            (r'false'+_nkw,             Name.Builtin),
+            (r'self'+_nkw,              Name.Builtin),
+            (r'(class)(\s+)([A-Z][a-zA-Z0-9_\']*)',
+                bygroups(Keyword, Whitespace, Name.Class)),
+            (r'class'+_nkw,             Keyword),
+            (r'extends'+_nkw,           Keyword),
+            (r'(def)(\s+)(self)(\s*)(\.)(\s*)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)',
+                bygroups(Keyword, Whitespace, Name.Builtin, Whitespace, Punctuation, Whitespace, Name.Function)),
+            (r'(def)(\s+)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)',
+                bygroups(Keyword, Whitespace, Name.Function)),
+            (r'def'+_nkw,               Keyword),
+            (r'if'+_nkw,                Keyword),
+            (r'elsif'+_nkw,             Keyword),
+            (r'else'+_nkw,              Keyword),
+            (r'unless'+_nkw,            Keyword),
+            (r'for'+_nkw,               Keyword),
+            (r'in'+_nkw,                Keyword),
+            (r'while'+_nkw,             Keyword),
+            (r'until'+_nkw,             Keyword),
+            (r'and'+_nkw,               Keyword),
+            (r'or'+_nkw,                Keyword),
+            (r'not'+_nkw,               Keyword),
+            (r'lambda'+_nkw,            Keyword),
+            (r'try'+_nkw,               Keyword),
+            (r'catch'+_nkw,             Keyword),
+            (r'return'+_nkw,            Keyword),
+            (r'next'+_nkw,              Keyword),
+            (r'last'+_nkw,              Keyword),
+            (r'throw'+_nkw,             Keyword),
+            (r'use'+_nkw,               Keyword),
+            (r'switch'+_nkw,            Keyword),
+            (r'\\',                     Keyword),
+            (r'λ',                      Keyword),
+            (r'__FILE__'+_nkw,          Name.Builtin.Pseudo),
+            (r'__LINE__'+_nkw,          Name.Builtin.Pseudo),
+            (r'[A-Z][a-zA-Z0-9_\']*'+_nkw, Name.Constant),
+            (r'[a-z_][a-zA-Z0-9_\']*'+_nkw, Name),
+            (r'@[a-z_][a-zA-Z0-9_\']*'+_nkw, Name.Variable.Instance),
+            (r'@@[a-z_][a-zA-Z0-9_\']*'+_nkw, Name.Variable.Class),
+            (r'\(',                     Punctuation),
+            (r'\)',                     Punctuation),
+            (r'\[',                     Punctuation),
+            (r'\]',                     Punctuation),
+            (r'\{',                     Punctuation),
+            (r'\}',                     right_angle_bracket),
+            (r';',                      Punctuation),
+            (r',',                      Punctuation),
+            (r'<<=',                    Operator),
+            (r'>>=',                    Operator),
+            (r'<<',                     Operator),
+            (r'>>',                     Operator),
+            (r'==',                     Operator),
+            (r'!=',                     Operator),
+            (r'=>',                     Operator),
+            (r'=',                      Operator),
+            (r'<=>',                    Operator),
+            (r'<=',                     Operator),
+            (r'>=',                     Operator),
+            (r'<',                      Operator),
+            (r'>',                      Operator),
+            (r'\+\+',                   Operator),
+            (r'\+=',                    Operator),
+            (r'-=',                     Operator),
+            (r'\*\*=',                  Operator),
+            (r'\*=',                    Operator),
+            (r'\*\*',                   Operator),
+            (r'\*',                     Operator),
+            (r'/=',                     Operator),
+            (r'\+',                     Operator),
+            (r'-',                      Operator),
+            (r'/',                      Operator),
+            (r'%=',                     Operator),
+            (r'%',                      Operator),
+            (r'^=',                     Operator),
+            (r'&&=',                    Operator),
+            (r'&=',                     Operator),
+            (r'&&',                     Operator),
+            (r'&',                      Operator),
+            (r'\|\|=',                  Operator),
+            (r'\|=',                    Operator),
+            (r'\|\|',                   Operator),
+            (r'\|',                     Operator),
+            (r'!',                      Operator),
+            (r'\.\.\.',                 Operator),
+            (r'\.\.',                   Operator),
+            (r'\.',                     Operator),
+            (r'::',                     Operator),
+            (r':',                      Operator),
+            (r'(\s|\n)+',               Whitespace),
+            (r'[a-z_][a-zA-Z0-9_\']*',  Name.Variable),
+        ],
+    }
+
+
+class SlashLexer(DelegatingLexer):
+    """
+    Lexer for the Slash programming language.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'Slash'
+    aliases = ['slash']
+    filenames = ['*.sl']
+
+    def __init__(self, **options):
+        from pygments.lexers.web import HtmlLexer
+        super(SlashLexer, self).__init__(HtmlLexer, SlashLanguageLexer, **options)
--- a/eric6/ThirdParty/Pygments/pygments/lexers/smalltalk.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/smalltalk.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Smalltalk and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/smv.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/smv.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,13 +5,13 @@
 
     Lexers for the SMV languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words
-from pygments.token import Comment, Generic, Keyword, Name, Number, \
-    Operator, Punctuation, Text
+from pygments.token import Comment, Keyword, Name, Number, Operator, \
+    Punctuation, Text
 
 __all__ = ['NuSMVLexer']
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/snobol.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/snobol.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the SNOBOL language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/solidity.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,93 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.solidity
+    ~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for Solidity.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, bygroups, include, words
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation
+
+__all__ = ['SolidityLexer']
+
+
+class SolidityLexer(RegexLexer):
+    """
+    For Solidity source code.
+
+    .. versionadded:: 2.5
+    """
+
+    name = 'Solidity'
+    aliases = ['solidity']
+    filenames = ['*.sol']
+    mimetypes = []
+
+    flags = re.MULTILINE | re.UNICODE
+
+    datatype = (
+        r'\b(address|bool|((bytes|hash|int|string|uint)(8|16|24|32|40|48|56|64'
+        r'|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208'
+        r'|216|224|232|240|248|256)?))\b'
+    )
+
+    tokens = {
+        'root': [
+            include('whitespace'),
+            include('comments'),
+            (r'\bpragma\s+solidity\b', Keyword, 'pragma'),
+            (r'\b(contract)(\s+)([a-zA-Z_]\w*)',
+             bygroups(Keyword, Text.WhiteSpace, Name.Entity)),
+            (datatype + r'(\s+)((external|public|internal|private)\s+)?' +
+             r'([a-zA-Z_]\w*)',
+             bygroups(Keyword.Type, None, None, None, Text.WhiteSpace, Keyword,
+                      None, Name.Variable)),
+            (r'\b(enum|event|function|struct)(\s+)([a-zA-Z_]\w*)',
+             bygroups(Keyword.Type, Text.WhiteSpace, Name.Variable)),
+            (r'\b(msg|block|tx)\.([A-Za-z_][A-Za-z0-9_]*)\b', Keyword),
+            (words((
+                'block', 'break', 'constant', 'constructor', 'continue',
+                'contract', 'do', 'else', 'external', 'false', 'for',
+                'function', 'if', 'import', 'inherited', 'internal', 'is',
+                'library', 'mapping', 'memory', 'modifier', 'msg', 'new',
+                'payable', 'private', 'public', 'require', 'return',
+                'returns', 'struct', 'suicide', 'throw', 'this', 'true',
+                'tx', 'var', 'while'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Type),
+            (words(('keccak256',), prefix=r'\b', suffix=r'\b'), Name.Builtin),
+            (datatype, Keyword.Type),
+            include('constants'),
+            (r'[a-zA-Z_]\w*', Text),
+            (r'[!<=>+*/-]', Operator),
+            (r'[.;:{}(),\[\]]', Punctuation)
+        ],
+        'comments': [
+            (r'//(\n|[\w\W]*?[^\\]\n)', Comment.Single),
+            (r'/(\\\n)?[*][\w\W]*?[*](\\\n)?/', Comment.Multiline),
+            (r'/(\\\n)?[*][\w\W]*', Comment.Multiline)
+        ],
+        'constants': [
+            (r'("([\\]"|.)*?")', String.Double),
+            (r"('([\\]'|.)*?')", String.Single),
+            (r'\b0[xX][0-9a-fA-F]+\b', Number.Hex),
+            (r'\b\d+\b', Number.Decimal),
+        ],
+        'pragma': [
+            include('whitespace'),
+            include('comments'),
+            (r'(\^|>=|<)(\s*)(\d+\.\d+\.\d+)',
+             bygroups(Operator, Text.WhiteSpace, Keyword)),
+            (r';', Punctuation, '#pop')
+        ],
+        'whitespace': [
+            (r'\s+', Text.WhiteSpace),
+            (r'\n', Text.WhiteSpace)
+        ]
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/special.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/special.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,15 +5,16 @@
 
     Special lexers.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
+from io import BytesIO
 
 from pygments.lexer import Lexer
 from pygments.token import Token, Error, Text
-from pygments.util import get_choice_opt, text_type, BytesIO
+from pygments.util import get_choice_opt
 
 
 __all__ = ['TextLexer', 'RawTokenLexer']
@@ -35,6 +36,7 @@
     def analyse_text(text):
         return TextLexer.priority
 
+
 _ttype_cache = {}
 
 line_re = re.compile(b'.*?\n')
@@ -63,7 +65,7 @@
         Lexer.__init__(self, **options)
 
     def get_tokens(self, text):
-        if isinstance(text, text_type):
+        if isinstance(text, str):
             # raw token stream never has any non-ASCII characters
             text = text.encode('ascii')
         if self.compress == 'gz':
--- a/eric6/ThirdParty/Pygments/pygments/lexers/sql.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/sql.py	Tue Apr 21 19:47:10 2020 +0200
@@ -34,17 +34,16 @@
     The ``tests/examplefiles`` contains a few test files with data to be
     parsed by these lexers.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, words
-from pygments.token import Punctuation, Whitespace, Error, \
-    Text, Comment, Operator, Keyword, Name, String, Number, Generic
+from pygments.token import Punctuation, Whitespace, Text, Comment, Operator, \
+    Keyword, Name, String, Number, Generic
 from pygments.lexers import get_lexer_by_name, ClassNotFound
-from pygments.util import iteritems
 
 from pygments.lexers._postgres_builtins import KEYWORDS, DATATYPES, \
     PSEUDO_TYPES, PLPGSQL_KEYWORDS
@@ -59,7 +58,14 @@
 
 language_re = re.compile(r"\s+LANGUAGE\s+'?(\w+)'?", re.IGNORECASE)
 
-do_re = re.compile(r'\bDO\b', re.IGNORECASE) 
+do_re = re.compile(r'\bDO\b', re.IGNORECASE)
+
+# Regular expressions for analyse_text()
+name_between_bracket_re = re.compile(r'\[[a-zA-Z_]\w*\]')
+name_between_backtick_re = re.compile(r'`[a-zA-Z_]\w*`')
+tsql_go_re = re.compile(r'\bgo\b', re.IGNORECASE)
+tsql_declare_re = re.compile(r'\bdeclare\s+@', re.IGNORECASE)
+tsql_variable_re = re.compile(r'@[a-zA-Z_]\w*\b')
 
 
 def language_callback(lexer, match):
@@ -68,28 +74,28 @@
     The lexer is chosen looking for a nearby LANGUAGE or assumed as
     plpgsql if inside a DO statement and no LANGUAGE has been found.
     """
-    l = None
+    lx = None
     m = language_re.match(lexer.text[match.end():match.end()+100])
     if m is not None:
-        l = lexer._get_lexer(m.group(1))
+        lx = lexer._get_lexer(m.group(1))
     else:
         m = list(language_re.finditer(
             lexer.text[max(0, match.start()-100):match.start()]))
         if m:
-            l = lexer._get_lexer(m[-1].group(1))
+            lx = lexer._get_lexer(m[-1].group(1))
         else:
             m = list(do_re.finditer(
                 lexer.text[max(0, match.start()-25):match.start()]))
             if m:
-                l = lexer._get_lexer('plpgsql')
-    
+                lx = lexer._get_lexer('plpgsql')
+
     # 1 = $, 2 = delimiter, 3 = $
     yield (match.start(1), String, match.group(1))
     yield (match.start(2), String.Delimiter, match.group(2))
     yield (match.start(3), String, match.group(3))
     # 4 = string contents
-    if l:
-        for x in l.get_tokens_unprocessed(match.group(4)):
+    if lx:
+        for x in lx.get_tokens_unprocessed(match.group(4)):
             yield x
     else:
         yield (match.start(4), String, match.group(4))
@@ -99,7 +105,7 @@
     yield (match.start(7), String, match.group(7))
 
 
-class PostgresBase(object):
+class PostgresBase:
     """Base class for Postgres-related lexers.
 
     This is implemented as a mixin to avoid the Lexer metaclass kicking in.
@@ -127,9 +133,9 @@
         if lang.startswith('pl') and lang.endswith('u'):
             tries.append(lang[2:-1])
 
-        for l in tries:
+        for lx in tries:
             try:
-                return get_lexer_by_name(l, **self.options)
+                return get_lexer_by_name(lx, **self.options)
             except ClassNotFound:
                 pass
         else:
@@ -156,8 +162,8 @@
             (r'--.*\n?', Comment.Single),
             (r'/\*', Comment.Multiline, 'multiline-comments'),
             (r'(' + '|'.join(s.replace(" ", r"\s+")
-                             for s in DATATYPES + PSEUDO_TYPES)
-             + r')\b', Name.Builtin),
+                             for s in DATATYPES + PSEUDO_TYPES) + r')\b',
+             Name.Builtin),
             (words(KEYWORDS, suffix=r'\b'), Keyword),
             (r'[+*/<>=~!@#%^&|`?-]+', Operator),
             (r'::', Operator),  # cast
@@ -205,7 +211,7 @@
     mimetypes = ['text/x-plpgsql']
 
     flags = re.IGNORECASE
-    tokens = dict((k, l[:]) for (k, l) in iteritems(PostgresLexer.tokens))
+    tokens = {k: l[:] for (k, l) in PostgresLexer.tokens.items()}
 
     # extend the keywords list
     for i, pattern in enumerate(tokens['root']):
@@ -239,7 +245,7 @@
     aliases = []    # not public
 
     flags = re.IGNORECASE
-    tokens = dict((k, l[:]) for (k, l) in iteritems(PostgresLexer.tokens))
+    tokens = {k: l[:] for (k, l) in PostgresLexer.tokens.items()}
 
     tokens['root'].append(
         (r'\\[^\s]+', Keyword.Pseudo, 'psql-command'))
@@ -253,6 +259,7 @@
         (r"[^\s]+", String.Symbol),
     ]
 
+
 re_prompt = re.compile(r'^(\S.*?)??[=\-\(\$\'\"][#>]')
 re_psql_command = re.compile(r'\s*\\')
 re_end_command = re.compile(r';\s*(--.*?)?$')
@@ -263,7 +270,7 @@
     r'FATAL|HINT|DETAIL|CONTEXT|LINE [0-9]+):)(.*?\n)')
 
 
-class lookahead(object):
+class lookahead:
     """Wrap an iterator and allow pushing back an item."""
     def __init__(self, x):
         self.iter = iter(x)
@@ -377,86 +384,99 @@
             (r'--.*\n?', Comment.Single),
             (r'/\*', Comment.Multiline, 'multiline-comments'),
             (words((
-                'ABORT', 'ABS', 'ABSOLUTE', 'ACCESS', 'ADA', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE',
-                'ALIAS', 'ALL', 'ALLOCATE', 'ALTER', 'ANALYSE', 'ANALYZE', 'AND', 'ANY', 'ARE', 'AS',
-                'ASC', 'ASENSITIVE', 'ASSERTION', 'ASSIGNMENT', 'ASYMMETRIC', 'AT', 'ATOMIC',
-                'AUTHORIZATION', 'AVG', 'BACKWARD', 'BEFORE', 'BEGIN', 'BETWEEN', 'BITVAR',
-                'BIT_LENGTH', 'BOTH', 'BREADTH', 'BY', 'C', 'CACHE', 'CALL', 'CALLED', 'CARDINALITY',
-                'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATALOG_NAME', 'CHAIN',
+                'ABORT', 'ABS', 'ABSOLUTE', 'ACCESS', 'ADA', 'ADD', 'ADMIN', 'AFTER',
+                'AGGREGATE', 'ALIAS', 'ALL', 'ALLOCATE', 'ALTER', 'ANALYSE', 'ANALYZE',
+                'AND', 'ANY', 'ARE', 'AS', 'ASC', 'ASENSITIVE', 'ASSERTION', 'ASSIGNMENT',
+                'ASYMMETRIC', 'AT', 'ATOMIC', 'AUTHORIZATION', 'AVG', 'BACKWARD',
+                'BEFORE', 'BEGIN', 'BETWEEN', 'BITVAR', 'BIT_LENGTH', 'BOTH', 'BREADTH',
+                'BY', 'C', 'CACHE', 'CALL', 'CALLED', 'CARDINALITY', 'CASCADE',
+                'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATALOG_NAME', 'CHAIN',
                 'CHARACTERISTICS', 'CHARACTER_LENGTH', 'CHARACTER_SET_CATALOG',
                 'CHARACTER_SET_NAME', 'CHARACTER_SET_SCHEMA', 'CHAR_LENGTH', 'CHECK',
-                'CHECKED', 'CHECKPOINT', 'CLASS', 'CLASS_ORIGIN', 'CLOB', 'CLOSE', 'CLUSTER',
-                'COALSECE', 'COBOL', 'COLLATE', 'COLLATION', 'COLLATION_CATALOG',
-                'COLLATION_NAME', 'COLLATION_SCHEMA', 'COLUMN', 'COLUMN_NAME',
-                'COMMAND_FUNCTION', 'COMMAND_FUNCTION_CODE', 'COMMENT', 'COMMIT',
-                'COMMITTED', 'COMPLETION', 'CONDITION_NUMBER', 'CONNECT', 'CONNECTION',
-                'CONNECTION_NAME', 'CONSTRAINT', 'CONSTRAINTS', 'CONSTRAINT_CATALOG',
-                'CONSTRAINT_NAME', 'CONSTRAINT_SCHEMA', 'CONSTRUCTOR', 'CONTAINS',
-                'CONTINUE', 'CONVERSION', 'CONVERT', 'COPY', 'CORRESPONTING', 'COUNT',
-                'CREATE', 'CREATEDB', 'CREATEUSER', 'CROSS', 'CUBE', 'CURRENT', 'CURRENT_DATE',
-                'CURRENT_PATH', 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP',
-                'CURRENT_USER', 'CURSOR', 'CURSOR_NAME', 'CYCLE', 'DATA', 'DATABASE',
+                'CHECKED', 'CHECKPOINT', 'CLASS', 'CLASS_ORIGIN', 'CLOB', 'CLOSE',
+                'CLUSTER', 'COALSECE', 'COBOL', 'COLLATE', 'COLLATION',
+                'COLLATION_CATALOG', 'COLLATION_NAME', 'COLLATION_SCHEMA', 'COLUMN',
+                'COLUMN_NAME', 'COMMAND_FUNCTION', 'COMMAND_FUNCTION_CODE', 'COMMENT',
+                'COMMIT', 'COMMITTED', 'COMPLETION', 'CONDITION_NUMBER', 'CONNECT',
+                'CONNECTION', 'CONNECTION_NAME', 'CONSTRAINT', 'CONSTRAINTS',
+                'CONSTRAINT_CATALOG', 'CONSTRAINT_NAME', 'CONSTRAINT_SCHEMA',
+                'CONSTRUCTOR', 'CONTAINS', 'CONTINUE', 'CONVERSION', 'CONVERT',
+                'COPY', 'CORRESPONTING', 'COUNT', 'CREATE', 'CREATEDB', 'CREATEUSER',
+                'CROSS', 'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH',
+                'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
+                'CURSOR', 'CURSOR_NAME', 'CYCLE', 'DATA', 'DATABASE',
                 'DATETIME_INTERVAL_CODE', 'DATETIME_INTERVAL_PRECISION', 'DAY',
-                'DEALLOCATE', 'DECLARE', 'DEFAULT', 'DEFAULTS', 'DEFERRABLE', 'DEFERRED',
-                'DEFINED', 'DEFINER', 'DELETE', 'DELIMITER', 'DELIMITERS', 'DEREF', 'DESC',
-                'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC',
-                'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISPATCH', 'DISTINCT', 'DO',
-                'DOMAIN', 'DROP', 'DYNAMIC', 'DYNAMIC_FUNCTION', 'DYNAMIC_FUNCTION_CODE', 'EACH',
-                'ELSE', 'ELSIF', 'ENCODING', 'ENCRYPTED', 'END', 'END-EXEC', 'EQUALS', 'ESCAPE', 'EVERY',
-                'EXCEPTION', 'EXCEPT', 'EXCLUDING', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTING',
-                'EXISTS', 'EXPLAIN', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FETCH', 'FINAL', 'FIRST', 'FOR',
-                'FORCE', 'FOREIGN', 'FORTRAN', 'FORWARD', 'FOUND', 'FREE', 'FREEZE', 'FROM', 'FULL',
-                'FUNCTION', 'G', 'GENERAL', 'GENERATED', 'GET', 'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GRANTED',
-                'GROUP', 'GROUPING', 'HANDLER', 'HAVING', 'HIERARCHY', 'HOLD', 'HOST', 'IDENTITY', 'IF',
-                'IGNORE', 'ILIKE', 'IMMEDIATE', 'IMMUTABLE', 'IMPLEMENTATION', 'IMPLICIT', 'IN',
-                'INCLUDING', 'INCREMENT', 'INDEX', 'INDITCATOR', 'INFIX', 'INHERITS', 'INITIALIZE',
-                'INITIALLY', 'INNER', 'INOUT', 'INPUT', 'INSENSITIVE', 'INSERT', 'INSTANTIABLE',
-                'INSTEAD', 'INTERSECT', 'INTO', 'INVOKER', 'IS', 'ISNULL', 'ISOLATION', 'ITERATE', 'JOIN',
-                'KEY', 'KEY_MEMBER', 'KEY_TYPE', 'LANCOMPILER', 'LANGUAGE', 'LARGE', 'LAST',
-                'LATERAL', 'LEADING', 'LEFT', 'LENGTH', 'LESS', 'LEVEL', 'LIKE', 'LIMIT', 'LISTEN', 'LOAD',
-                'LOCAL', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATION', 'LOCATOR', 'LOCK', 'LOWER',
-                'MAP', 'MATCH', 'MAX', 'MAXVALUE', 'MESSAGE_LENGTH', 'MESSAGE_OCTET_LENGTH',
-                'MESSAGE_TEXT', 'METHOD', 'MIN', 'MINUTE', 'MINVALUE', 'MOD', 'MODE', 'MODIFIES',
-                'MODIFY', 'MONTH', 'MORE', 'MOVE', 'MUMPS', 'NAMES', 'NATIONAL', 'NATURAL', 'NCHAR',
-                'NCLOB', 'NEW', 'NEXT', 'NO', 'NOCREATEDB', 'NOCREATEUSER', 'NONE', 'NOT', 'NOTHING',
-                'NOTIFY', 'NOTNULL', 'NULL', 'NULLABLE', 'NULLIF', 'OBJECT', 'OCTET_LENGTH', 'OF', 'OFF',
-                'OFFSET', 'OIDS', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPERATION', 'OPERATOR', 'OPTION', 'OPTIONS',
-                'OR', 'ORDER', 'ORDINALITY', 'OUT', 'OUTER', 'OUTPUT', 'OVERLAPS', 'OVERLAY', 'OVERRIDING',
-                'OWNER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARAMETER_MODE', 'PARAMATER_NAME',
-                'PARAMATER_ORDINAL_POSITION', 'PARAMETER_SPECIFIC_CATALOG',
-                'PARAMETER_SPECIFIC_NAME', 'PARAMATER_SPECIFIC_SCHEMA', 'PARTIAL',
-                'PASCAL', 'PENDANT', 'PLACING', 'PLI', 'POSITION', 'POSTFIX', 'PRECISION', 'PREFIX',
-                'PREORDER', 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRIOR', 'PRIVILEGES', 'PROCEDURAL',
-                'PROCEDURE', 'PUBLIC', 'READ', 'READS', 'RECHECK', 'RECURSIVE', 'REF', 'REFERENCES',
-                'REFERENCING', 'REINDEX', 'RELATIVE', 'RENAME', 'REPEATABLE', 'REPLACE', 'RESET',
-                'RESTART', 'RESTRICT', 'RESULT', 'RETURN', 'RETURNED_LENGTH',
-                'RETURNED_OCTET_LENGTH', 'RETURNED_SQLSTATE', 'RETURNS', 'REVOKE', 'RIGHT',
-                'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROUTINE_CATALOG', 'ROUTINE_NAME',
-                'ROUTINE_SCHEMA', 'ROW', 'ROWS', 'ROW_COUNT', 'RULE', 'SAVE_POINT', 'SCALE', 'SCHEMA',
-                'SCHEMA_NAME', 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECURITY', 'SELECT', 'SELF',
-                'SENSITIVE', 'SERIALIZABLE', 'SERVER_NAME', 'SESSION', 'SESSION_USER', 'SET',
-                'SETOF', 'SETS', 'SHARE', 'SHOW', 'SIMILAR', 'SIMPLE', 'SIZE', 'SOME', 'SOURCE', 'SPACE',
-                'SPECIFIC', 'SPECIFICTYPE', 'SPECIFIC_NAME', 'SQL', 'SQLCODE', 'SQLERROR',
-                'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNINIG', 'STABLE', 'START', 'STATE', 'STATEMENT',
-                'STATIC', 'STATISTICS', 'STDIN', 'STDOUT', 'STORAGE', 'STRICT', 'STRUCTURE', 'STYPE',
-                'SUBCLASS_ORIGIN', 'SUBLIST', 'SUBSTRING', 'SUM', 'SYMMETRIC', 'SYSID', 'SYSTEM',
-                'SYSTEM_USER', 'TABLE', 'TABLE_NAME', ' TEMP', 'TEMPLATE', 'TEMPORARY', 'TERMINATE',
-                'THAN', 'THEN', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE', 'TO', 'TOAST',
-                'TRAILING', 'TRANSATION', 'TRANSACTIONS_COMMITTED',
-                'TRANSACTIONS_ROLLED_BACK', 'TRANSATION_ACTIVE', 'TRANSFORM',
-                'TRANSFORMS', 'TRANSLATE', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRIGGER_CATALOG',
-                'TRIGGER_NAME', 'TRIGGER_SCHEMA', 'TRIM', 'TRUE', 'TRUNCATE', 'TRUSTED', 'TYPE',
-                'UNCOMMITTED', 'UNDER', 'UNENCRYPTED', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNLISTEN',
-                'UNNAMED', 'UNNEST', 'UNTIL', 'UPDATE', 'UPPER', 'USAGE', 'USER',
-                'USER_DEFINED_TYPE_CATALOG', 'USER_DEFINED_TYPE_NAME',
-                'USER_DEFINED_TYPE_SCHEMA', 'USING', 'VACUUM', 'VALID', 'VALIDATOR', 'VALUES',
-                'VARIABLE', 'VERBOSE', 'VERSION', 'VIEW', 'VOLATILE', 'WHEN', 'WHENEVER', 'WHERE',
-                'WITH', 'WITHOUT', 'WORK', 'WRITE', 'YEAR', 'ZONE'), suffix=r'\b'),
+                'DEALLOCATE', 'DECLARE', 'DEFAULT', 'DEFAULTS', 'DEFERRABLE',
+                'DEFERRED', 'DEFINED', 'DEFINER', 'DELETE', 'DELIMITER', 'DELIMITERS',
+                'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR',
+                'DETERMINISTIC', 'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISPATCH',
+                'DISTINCT', 'DO', 'DOMAIN', 'DROP', 'DYNAMIC', 'DYNAMIC_FUNCTION',
+                'DYNAMIC_FUNCTION_CODE', 'EACH', 'ELSE', 'ELSIF', 'ENCODING',
+                'ENCRYPTED', 'END', 'END-EXEC', 'EQUALS', 'ESCAPE', 'EVERY', 'EXCEPTION',
+                'EXCEPT', 'EXCLUDING', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTING',
+                'EXISTS', 'EXPLAIN', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FETCH', 'FINAL',
+                'FIRST', 'FOR', 'FORCE', 'FOREIGN', 'FORTRAN', 'FORWARD', 'FOUND', 'FREE',
+                'FREEZE', 'FROM', 'FULL', 'FUNCTION', 'G', 'GENERAL', 'GENERATED', 'GET',
+                'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GRANTED', 'GROUP', 'GROUPING',
+                'HANDLER', 'HAVING', 'HIERARCHY', 'HOLD', 'HOST', 'IDENTITY', 'IF',
+                'IGNORE', 'ILIKE', 'IMMEDIATE', 'IMMEDIATELY', 'IMMUTABLE', 'IMPLEMENTATION', 'IMPLICIT',
+                'IN', 'INCLUDING', 'INCREMENT', 'INDEX', 'INDITCATOR', 'INFIX',
+                'INHERITS', 'INITIALIZE', 'INITIALLY', 'INNER', 'INOUT', 'INPUT',
+                'INSENSITIVE', 'INSERT', 'INSTANTIABLE', 'INSTEAD', 'INTERSECT', 'INTO',
+                'INVOKER', 'IS', 'ISNULL', 'ISOLATION', 'ITERATE', 'JOIN', 'KEY',
+                'KEY_MEMBER', 'KEY_TYPE', 'LANCOMPILER', 'LANGUAGE', 'LARGE', 'LAST',
+                'LATERAL', 'LEADING', 'LEFT', 'LENGTH', 'LESS', 'LEVEL', 'LIKE', 'LIMIT',
+                'LISTEN', 'LOAD', 'LOCAL', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATION',
+                'LOCATOR', 'LOCK', 'LOWER', 'MAP', 'MATCH', 'MAX', 'MAXVALUE',
+                'MESSAGE_LENGTH', 'MESSAGE_OCTET_LENGTH', 'MESSAGE_TEXT', 'METHOD', 'MIN',
+                'MINUTE', 'MINVALUE', 'MOD', 'MODE', 'MODIFIES', 'MODIFY', 'MONTH',
+                'MORE', 'MOVE', 'MUMPS', 'NAMES', 'NATIONAL', 'NATURAL', 'NCHAR', 'NCLOB',
+                'NEW', 'NEXT', 'NO', 'NOCREATEDB', 'NOCREATEUSER', 'NONE', 'NOT',
+                'NOTHING', 'NOTIFY', 'NOTNULL', 'NULL', 'NULLABLE', 'NULLIF', 'OBJECT',
+                'OCTET_LENGTH', 'OF', 'OFF', 'OFFSET', 'OIDS', 'OLD', 'ON', 'ONLY',
+                'OPEN', 'OPERATION', 'OPERATOR', 'OPTION', 'OPTIONS', 'OR', 'ORDER',
+                'ORDINALITY', 'OUT', 'OUTER', 'OUTPUT', 'OVERLAPS', 'OVERLAY',
+                'OVERRIDING', 'OWNER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARAMETER_MODE',
+                'PARAMATER_NAME', 'PARAMATER_ORDINAL_POSITION',
+                'PARAMETER_SPECIFIC_CATALOG', 'PARAMETER_SPECIFIC_NAME',
+                'PARAMATER_SPECIFIC_SCHEMA', 'PARTIAL', 'PASCAL', 'PENDANT', 'PERIOD', 'PLACING',
+                'PLI', 'POSITION', 'POSTFIX', 'PRECEEDS', 'PRECISION', 'PREFIX', 'PREORDER',
+                'PREPARE', 'PRESERVE', 'PRIMARY', 'PRIOR', 'PRIVILEGES', 'PROCEDURAL',
+                'PROCEDURE', 'PUBLIC', 'READ', 'READS', 'RECHECK', 'RECURSIVE', 'REF',
+                'REFERENCES', 'REFERENCING', 'REINDEX', 'RELATIVE', 'RENAME',
+                'REPEATABLE', 'REPLACE', 'RESET', 'RESTART', 'RESTRICT', 'RESULT',
+                'RETURN', 'RETURNED_LENGTH', 'RETURNED_OCTET_LENGTH', 'RETURNED_SQLSTATE',
+                'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE',
+                'ROUTINE_CATALOG', 'ROUTINE_NAME', 'ROUTINE_SCHEMA', 'ROW', 'ROWS',
+                'ROW_COUNT', 'RULE', 'SAVE_POINT', 'SCALE', 'SCHEMA', 'SCHEMA_NAME',
+                'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECURITY', 'SELECT', 'SELF',
+                'SENSITIVE', 'SERIALIZABLE', 'SERVER_NAME', 'SESSION', 'SESSION_USER',
+                'SET', 'SETOF', 'SETS', 'SHARE', 'SHOW', 'SIMILAR', 'SIMPLE', 'SIZE',
+                'SOME', 'SOURCE', 'SPACE', 'SPECIFIC', 'SPECIFICTYPE', 'SPECIFIC_NAME',
+                'SQL', 'SQLCODE', 'SQLERROR', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNINIG',
+                'STABLE', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STDIN',
+                'STDOUT', 'STORAGE', 'STRICT', 'STRUCTURE', 'STYPE', 'SUBCLASS_ORIGIN',
+                'SUBLIST', 'SUBSTRING', 'SUCCEEDS', 'SUM', 'SYMMETRIC', 'SYSID', 'SYSTEM',
+                'SYSTEM_USER', 'TABLE', 'TABLE_NAME', ' TEMP', 'TEMPLATE', 'TEMPORARY',
+                'TERMINATE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR',
+                'TIMEZONE_MINUTE', 'TO', 'TOAST', 'TRAILING', 'TRANSATION',
+                'TRANSACTIONS_COMMITTED', 'TRANSACTIONS_ROLLED_BACK', 'TRANSATION_ACTIVE',
+                'TRANSFORM', 'TRANSFORMS', 'TRANSLATE', 'TRANSLATION', 'TREAT', 'TRIGGER',
+                'TRIGGER_CATALOG', 'TRIGGER_NAME', 'TRIGGER_SCHEMA', 'TRIM', 'TRUE',
+                'TRUNCATE', 'TRUSTED', 'TYPE', 'UNCOMMITTED', 'UNDER', 'UNENCRYPTED',
+                'UNION', 'UNIQUE', 'UNKNOWN', 'UNLISTEN', 'UNNAMED', 'UNNEST', 'UNTIL',
+                'UPDATE', 'UPPER', 'USAGE', 'USER', 'USER_DEFINED_TYPE_CATALOG',
+                'USER_DEFINED_TYPE_NAME', 'USER_DEFINED_TYPE_SCHEMA', 'USING', 'VACUUM',
+                'VALID', 'VALIDATOR', 'VALUES', 'VARIABLE', 'VERBOSE',
+                'VERSION', 'VERSIONS', 'VERSIONING', 'VIEW',
+                'VOLATILE', 'WHEN', 'WHENEVER', 'WHERE', 'WITH', 'WITHOUT', 'WORK',
+                'WRITE', 'YEAR', 'ZONE'), suffix=r'\b'),
              Keyword),
             (words((
-                'ARRAY', 'BIGINT', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'CHAR', 'CHARACTER', 'DATE',
-                'DEC', 'DECIMAL', 'FLOAT', 'INT', 'INTEGER', 'INTERVAL', 'NUMBER', 'NUMERIC', 'REAL',
-                'SERIAL', 'SMALLINT', 'VARCHAR', 'VARYING', 'INT8', 'SERIAL8', 'TEXT'), suffix=r'\b'),
+                'ARRAY', 'BIGINT', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'CHAR',
+                'CHARACTER', 'DATE', 'DEC', 'DECIMAL', 'FLOAT', 'INT', 'INTEGER',
+                'INTERVAL', 'NUMBER', 'NUMERIC', 'REAL', 'SERIAL', 'SMALLINT',
+                'VARCHAR', 'VARYING', 'INT8', 'SERIAL8', 'TEXT'), suffix=r'\b'),
              Name.Builtin),
             (r'[+*/<>=~!@#%^&|`?-]', Operator),
             (r'[0-9]+', Number.Integer),
@@ -474,6 +494,9 @@
         ]
     }
 
+    def analyse_text(text):
+        return 0.01
+
 
 class TransactSqlLexer(RegexLexer):
     """
@@ -530,6 +553,34 @@
         ]
     }
 
+    def analyse_text(text):
+        rating = 0
+        if tsql_declare_re.search(text):
+            # Found T-SQL variable declaration.
+            rating = 1.0
+        else:
+            name_between_backtick_count = len(
+                name_between_backtick_re.findall(text))
+            name_between_bracket_count = len(
+                name_between_bracket_re.findall(text))
+            # We need to check if there are any names using
+            # backticks or brackets, as otherwise both are 0
+            # and 0 >= 2 * 0, so we would always assume it's true
+            dialect_name_count = name_between_backtick_count + name_between_bracket_count
+            if dialect_name_count >= 1 and \
+               name_between_bracket_count >= 2 * name_between_backtick_count:
+                # Found at least twice as many [name] as `name`.
+                rating += 0.5
+            elif name_between_bracket_count > name_between_backtick_count:
+                rating += 0.2
+            elif name_between_bracket_count > 0:
+                rating += 0.1
+            if tsql_variable_re.search(text) is not None:
+                rating += 0.1
+            if tsql_go_re.search(text) is not None:
+                rating += 0.1
+        return rating
+
 
 class MySqlLexer(RegexLexer):
     """
@@ -603,6 +654,24 @@
         ]
     }
 
+    def analyse_text(text):
+        rating = 0
+        name_between_backtick_count = len(
+            name_between_backtick_re.findall(text))
+        name_between_bracket_count = len(
+            name_between_bracket_re.findall(text))
+        # Same logic as above in the TSQL analysis
+        dialect_name_count = name_between_backtick_count + name_between_bracket_count
+        if dialect_name_count >= 1 and \
+           name_between_backtick_count >= 2 * name_between_bracket_count:
+            # Found at least twice as many `name` as [name].
+            rating += 0.5
+        elif name_between_backtick_count > name_between_bracket_count:
+            rating += 0.2
+        elif name_between_backtick_count > 0:
+            rating += 0.1
+        return rating
+
 
 class SqliteConsoleLexer(Lexer):
     """
--- a/eric6/ThirdParty/Pygments/pygments/lexers/stata.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/stata.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,10 +5,11 @@
 
     Lexer for Stata
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
+import re
 from pygments.lexer import RegexLexer, include, words
 from pygments.token import Comment, Keyword, Name, Number, \
     String, Text, Operator
@@ -26,63 +27,125 @@
     """
     # Syntax based on
     # - http://fmwww.bc.edu/RePEc/bocode/s/synlightlist.ado
-    # - http://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
-    # - http://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
+    # - https://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
+    # - https://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
 
     name      = 'Stata'
     aliases   = ['stata', 'do']
     filenames = ['*.do', '*.ado']
     mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
+    flags     = re.MULTILINE | re.DOTALL
 
     tokens = {
         'root': [
             include('comments'),
-            include('vars-strings'),
+            include('strings'),
+            include('macros'),
             include('numbers'),
             include('keywords'),
+            include('operators'),
+            include('format'),
             (r'.', Text),
         ],
-        # Global and local macros; regular and special strings
-        'vars-strings': [
-            (r'\$[\w{]', Name.Variable.Global, 'var_validglobal'),
-            (r'`\w{0,31}\'', Name.Variable),
-            (r'"', String, 'string_dquote'),
-            (r'`"', String, 'string_mquote'),
+        # Comments are a complicated beast in Stata because they can be
+        # nested and there are a few corner cases with that. See:
+        # - github.com/kylebarron/language-stata/issues/90
+        # - statalist.org/forums/forum/general-stata-discussion/general/1448244
+        'comments': [
+            (r'(^//|(?<=\s)//)(?!/)', Comment.Single, 'comments-double-slash'),
+            (r'^\s*\*', Comment.Single, 'comments-star'),
+            (r'/\*', Comment.Multiline, 'comments-block'),
+            (r'(^///|(?<=\s)///)', Comment.Special, 'comments-triple-slash')
+        ],
+        'comments-block': [
+            (r'/\*', Comment.Multiline, '#push'),
+            # this ends and restarts a comment block. but need to catch this so
+            # that it doesn\'t start _another_ level of comment blocks
+            (r'\*/\*', Comment.Multiline),
+            (r'(\*/\s+\*(?!/)[^\n]*)|(\*/)', Comment.Multiline, '#pop'),
+            # Match anything else as a character inside the comment
+            (r'.', Comment.Multiline),
         ],
-        # For either string type, highlight macros as macros
-        'string_dquote': [
-            (r'"', String, '#pop'),
-            (r'\\\\|\\"|\\\n', String.Escape),
-            (r'\$', Name.Variable.Global, 'var_validglobal'),
-            (r'`', Name.Variable, 'var_validlocal'),
-            (r'[^$`"\\]+', String),
-            (r'[$"\\]', String),
+        'comments-star': [
+            (r'///.*?\n', Comment.Single,
+                ('#pop', 'comments-triple-slash')),
+            (r'(^//|(?<=\s)//)(?!/)', Comment.Single,
+                ('#pop', 'comments-double-slash')),
+            (r'/\*', Comment.Multiline, 'comments-block'),
+            (r'.(?=\n)', Comment.Single, '#pop'),
+            (r'.', Comment.Single),
         ],
-        'string_mquote': [
+        'comments-triple-slash': [
+            (r'\n', Comment.Special, '#pop'),
+            # A // breaks out of a comment for the rest of the line
+            (r'//.*?(?=\n)', Comment.Single, '#pop'),
+            (r'.', Comment.Special),
+        ],
+        'comments-double-slash': [
+            (r'\n', Text, '#pop'),
+            (r'.', Comment.Single),
+        ],
+        # `"compound string"' and regular "string"; note the former are
+        # nested.
+        'strings': [
+            (r'`"', String, 'string-compound'),
+            (r'(?<!`)"', String, 'string-regular'),
+        ],
+        'string-compound': [
+            (r'`"', String, '#push'),
             (r'"\'', String, '#pop'),
-            (r'\\\\|\\"|\\\n', String.Escape),
-            (r'\$', Name.Variable.Global, 'var_validglobal'),
-            (r'`', Name.Variable, 'var_validlocal'),
-            (r'[^$`"\\]+', String),
-            (r'[$"\\]', String),
+            (r'\\\\|\\"|\\\$|\\`|\\\n', String.Escape),
+            include('macros'),
+            (r'.', String)
         ],
-        'var_validglobal': [
-            (r'\{\w{0,32}\}', Name.Variable.Global, '#pop'),
-            (r'\w{1,32}', Name.Variable.Global, '#pop'),
+        'string-regular': [
+            (r'(")(?!\')|(?=\n)', String, '#pop'),
+            (r'\\\\|\\"|\\\$|\\`|\\\n', String.Escape),
+            include('macros'),
+            (r'.', String)
         ],
-        'var_validlocal': [
-            (r'\w{0,31}\'', Name.Variable, '#pop'),
+        # A local is usually
+        #     `\w{0,31}'
+        #     `:extended macro'
+        #     `=expression'
+        #     `[rsen](results)'
+        #     `(++--)scalar(++--)'
+        #
+        # However, there are all sorts of weird rules wrt edge
+        # cases. Instead of writing 27 exceptions, anything inside
+        # `' is a local.
+        #
+        # A global is more restricted, so we do follow rules. Note only
+        # locals explicitly enclosed ${} can be nested.
+        'macros': [
+            (r'\$(\{|(?=[\$`]))', Name.Variable.Global, 'macro-global-nested'),
+            (r'\$', Name.Variable.Global,  'macro-global-name'),
+            (r'`', Name.Variable, 'macro-local'),
         ],
-        # * only OK at line start, // OK anywhere
-        'comments': [
-            (r'^\s*\*.*$', Comment),
-            (r'//.*', Comment.Single),
-            (r'/\*.*?\*/', Comment.Multiline),
-            (r'/[*](.|\n)*?[*]/', Comment.Multiline),
+        'macro-local': [
+            (r'`', Name.Variable, '#push'),
+            (r"'", Name.Variable, '#pop'),
+            (r'\$(\{|(?=[\$`]))', Name.Variable.Global, 'macro-global-nested'),
+            (r'\$', Name.Variable.Global, 'macro-global-name'),
+            (r'.', Name.Variable),  # fallback
+        ],
+        'macro-global-nested': [
+            (r'\$(\{|(?=[\$`]))', Name.Variable.Global, '#push'),
+            (r'\}', Name.Variable.Global, '#pop'),
+            (r'\$', Name.Variable.Global, 'macro-global-name'),
+            (r'`', Name.Variable, 'macro-local'),
+            (r'\w', Name.Variable.Global),  # fallback
+            (r'(?!\w)', Name.Variable.Global, '#pop'),
+        ],
+        'macro-global-name': [
+            (r'\$(\{|(?=[\$`]))', Name.Variable.Global, 'macro-global-nested', '#pop'),
+            (r'\$', Name.Variable.Global, 'macro-global-name', '#pop'),
+            (r'`', Name.Variable, 'macro-local', '#pop'),
+            (r'\w{1,32}', Name.Variable.Global, '#pop'),
         ],
         # Built in functions and statements
         'keywords': [
-            (words(builtins_functions, prefix = r'\b', suffix = r'\('),
+            (words(builtins_functions, prefix = r'\b', suffix = r'(?=\()'),
              Name.Function),
             (words(builtins_base, prefix = r'(^\s*|\s)', suffix = r'\b'),
              Keyword),
@@ -100,9 +163,9 @@
         ],
         # Stata formats
         'format': [
-            (r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.Variable),
-            (r'%(21x|16H|16L|8H|8L)', Name.Variable),
-            (r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg).{0,32}', Name.Variable),
-            (r'%[-~]?\d{1,4}s', Name.Variable),
+            (r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.Other),
+            (r'%(21x|16H|16L|8H|8L)', Name.Other),
+            (r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg)\S{0,32}', Name.Other),
+            (r'%[-~]?\d{1,4}s', Name.Other),
         ]
     }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/supercollider.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/supercollider.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for SuperCollider
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/tcl.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/tcl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Tcl and related languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/templates.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/templates.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for various template engines' markup.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -226,7 +226,7 @@
              'directiveparams'),
             (r'(#\{?)(' + identifier + r')(\}|\b)',
              bygroups(Comment.Preproc, Name.Function, Comment.Preproc)),
-            (r'\$\{?', Punctuation, 'variable')
+            (r'\$!?\{?', Punctuation, 'variable')
         ],
         'variable': [
             (identifier, Name.Variable),
@@ -249,7 +249,7 @@
             (r'\]', Operator, '#pop')
         ],
         'funcparams': [
-            (r'\$\{?', Punctuation, 'variable'),
+            (r'\$!?\{?', Punctuation, 'variable'),
             (r'\s+', Text),
             (r'[,:]', Punctuation),
             (r'"(\\\\|\\"|[^"])*"', String.Double),
@@ -274,7 +274,7 @@
             rv += 0.15
         if re.search(r'#\{?foreach\}?\(.+?\).*?#\{?end\}?', text):
             rv += 0.15
-        if re.search(r'\$\{?[a-zA-Z_]\w*(\([^)]*\))?'
+        if re.search(r'\$!?\{?[a-zA-Z_]\w*(\([^)]*\))?'
                      r'(\.\w+(\([^)]*\))?)*\}?', text):
             rv += 0.01
         return rv
@@ -323,7 +323,7 @@
 class DjangoLexer(RegexLexer):
     """
     Generic `django <http://www.djangoproject.com/documentation/templates/>`_
-    and `jinja <http://wsgiarea.pocoo.org/jinja/>`_ template lexer.
+    and `jinja <https://jinja.pocoo.org/jinja/>`_ template lexer.
 
     It just highlights django/jinja code between the preprocessor directives,
     other data is left untouched by the lexer.
@@ -375,7 +375,7 @@
             (r'\.\w+', Name.Variable),
             (r':?"(\\\\|\\"|[^"])*"', String.Double),
             (r":?'(\\\\|\\'|[^'])*'", String.Single),
-            (r'([{}()\[\]+\-*/,:~]|[><=]=?)', Operator),
+            (r'([{}()\[\]+\-*/%,:~]|[><=]=?|!=)', Operator),
             (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
              r"0[xX][0-9a-fA-F]+[Ll]?", Number),
         ],
@@ -1802,27 +1802,27 @@
         'root': [
             (r'[^{]+', Other),
 
+            # Comment start {{!  }} or {{!--
             (r'\{\{!.*\}\}', Comment),
 
+            # HTML Escaping open {{{expression
             (r'(\{\{\{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
+
+            # {{blockOpen {{#blockOpen {{/blockClose with optional tilde ~
+            (r'(\{\{)([#~/]+)([^\s}]*)',
+             bygroups(Comment.Preproc, Number.Attribute, Number.Attribute), 'tag'),
             (r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
         ],
 
         'tag': [
             (r'\s+', Text),
+            # HTML Escaping close }}}
             (r'\}\}\}', Comment.Special, '#pop'),
-            (r'\}\}', Comment.Preproc, '#pop'),
-
-            # Handlebars
-            (r'([#/]*)(each|if|unless|else|with|log|in(line)?)', bygroups(Keyword,
-             Keyword)),
-            (r'#\*inline', Keyword),
-
-            # General {{#block}}
-            (r'([#/])([\w-]+)', bygroups(Name.Function, Name.Function)),
+            # blockClose}}, includes optional tilde ~
+            (r'(~?)(\}\})', bygroups(Number, Comment.Preproc), '#pop'),
 
             # {{opt=something}}
-            (r'([\w-]+)(=)', bygroups(Name.Attribute, Operator)),
+            (r'([^\s}]+)(=)', bygroups(Name.Attribute, Operator)),
 
             # Partials {{> ...}}
             (r'(>)(\s*)(@partial-block)', bygroups(Keyword, Text, Keyword)),
@@ -1845,7 +1845,7 @@
             include('generic'),
         ],
         'variable': [
-            (r'[a-zA-Z][\w-]*', Name.Variable),
+            (r'[()/@a-zA-Z][\w-]*', Name.Variable),
             (r'\.[\w-]+', Name.Variable),
             (r'(this\/|\.\/|(\.\.\/)+)[\w-]+', Name.Variable),
         ],
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,158 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.teraterm
+    ~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for Tera Term macro files.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, bygroups
+from pygments.token import Text, Comment, Operator, Name, String, \
+    Number, Keyword
+
+__all__ = ['TeraTermLexer']
+
+
+class TeraTermLexer(RegexLexer):
+    """
+    For `Tera Term <https://ttssh2.osdn.jp/>`_ macro source code.
+
+    .. versionadded:: 2.4
+    """
+    name = 'Tera Term macro'
+    aliases = ['ttl', 'teraterm', 'teratermmacro']
+    filenames = ['*.ttl']
+    mimetypes = ['text/x-teratermmacro']
+
+    tokens = {
+        'root': [
+            include('comments'),
+            include('labels'),
+            include('commands'),
+            include('builtin-variables'),
+            include('user-variables'),
+            include('operators'),
+            include('numeric-literals'),
+            include('string-literals'),
+            include('all-whitespace'),
+            (r'[^\s]', Text),
+        ],
+        'comments': [
+            (r';[^\r\n]*', Comment.Single),
+            (r'/\*', Comment.Multiline, 'in-comment'),
+        ],
+        'in-comment': [
+            (r'\*/', Comment.Multiline, '#pop'),
+            (r'[^*/]+', Comment.Multiline),
+            (r'[*/]', Comment.Multiline)
+        ],
+        'labels': [
+            (r'(?i)^(\s*)(:[0-9a-z_]+)', bygroups(Text, Name.Label)),
+        ],
+        'commands': [
+            (
+                r'(?i)\b('
+                r'basename|beep|bplusrecv|bplussend|break|bringupbox|'
+                r'callmenu|changedir|checksum16|checksum16file|'
+                r'checksum32|checksum32file|checksum8|checksum8file|'
+                r'clearscreen|clipb2var|closesbox|closett|code2str|'
+                r'connect|continue|crc16|crc16file|crc32|crc32file|'
+                r'cygconnect|delpassword|dirname|dirnamebox|disconnect|'
+                r'dispstr|do|else|elseif|enablekeyb|end|endif|enduntil|'
+                r'endwhile|exec|execcmnd|exit|expandenv|fileclose|'
+                r'fileconcat|filecopy|filecreate|filedelete|filelock|'
+                r'filemarkptr|filenamebox|fileopen|fileread|filereadln|'
+                r'filerename|filesearch|fileseek|fileseekback|filestat|'
+                r'filestrseek|filestrseek2|filetruncate|fileunlock|'
+                r'filewrite|filewriteln|findclose|findfirst|findnext|'
+                r'flushrecv|foldercreate|folderdelete|foldersearch|for|'
+                r'getdate|getdir|getenv|getfileattr|gethostname|'
+                r'getipv4addr|getipv6addr|getmodemstatus|getpassword|'
+                r'getspecialfolder|gettime|gettitle|getttdir|getver|'
+                r'if|ifdefined|include|inputbox|int2str|intdim|'
+                r'ispassword|kmtfinish|kmtget|kmtrecv|kmtsend|listbox|'
+                r'loadkeymap|logautoclosemode|logclose|loginfo|logopen|'
+                r'logpause|logrotate|logstart|logwrite|loop|makepath|'
+                r'messagebox|mpause|next|passwordbox|pause|quickvanrecv|'
+                r'quickvansend|random|recvln|regexoption|restoresetup|'
+                r'return|rotateleft|rotateright|scprecv|scpsend|send|'
+                r'sendbreak|sendbroadcast|sendfile|sendkcode|sendln|'
+                r'sendlnbroadcast|sendlnmulticast|sendmulticast|setbaud|'
+                r'setdate|setdebug|setdir|setdlgpos|setdtr|setecho|'
+                r'setenv|setexitcode|setfileattr|setflowctrl|'
+                r'setmulticastname|setpassword|setrts|setsync|settime|'
+                r'settitle|show|showtt|sprintf|sprintf2|statusbox|'
+                r'str2code|str2int|strcompare|strconcat|strcopy|strdim|'
+                r'strinsert|strjoin|strlen|strmatch|strremove|'
+                r'strreplace|strscan|strspecial|strsplit|strtrim|'
+                r'testlink|then|tolower|toupper|unlink|until|uptime|'
+                r'var2clipb|wait|wait4all|waitevent|waitln|waitn|'
+                r'waitrecv|waitregex|while|xmodemrecv|xmodemsend|'
+                r'yesnobox|ymodemrecv|ymodemsend|zmodemrecv|zmodemsend'
+                r')\b',
+                Keyword,
+            ),
+            (
+                r'(?i)(call|goto)([ \t]+)([0-9a-z_]+)',
+                bygroups(Keyword, Text, Name.Label),
+            )
+        ],
+        'builtin-variables': [
+            (
+                r'(?i)('
+                r'groupmatchstr1|groupmatchstr2|groupmatchstr3|'
+                r'groupmatchstr4|groupmatchstr5|groupmatchstr6|'
+                r'groupmatchstr7|groupmatchstr8|groupmatchstr9|'
+                r'param1|param2|param3|param4|param5|param6|'
+                r'param7|param8|param9|paramcnt|params|'
+                r'inputstr|matchstr|mtimeout|result|timeout'
+                r')\b',
+                Name.Builtin
+            ),
+        ],
+        'user-variables': [
+            (r'(?i)[A-Z_][A-Z0-9_]*', Name.Variable),
+        ],
+        'numeric-literals': [
+            (r'(-?)([0-9]+)', bygroups(Operator, Number.Integer)),
+            (r'(?i)\$[0-9a-f]+', Number.Hex),
+        ],
+        'string-literals': [
+            (r'(?i)#(?:[0-9]+|\$[0-9a-f]+)', String.Char),
+            (r"'", String.Single, 'in-single-string'),
+            (r'"', String.Double, 'in-double-string'),
+        ],
+        'in-general-string': [
+            (r'[\\][\\nt]', String.Escape),  # Only three escapes are supported.
+            (r'.', String),
+        ],
+        'in-single-string': [
+            (r"'", String.Single, '#pop'),
+            include('in-general-string'),
+        ],
+        'in-double-string': [
+            (r'"', String.Double, '#pop'),
+            include('in-general-string'),
+        ],
+        'operators': [
+            (r'and|not|or|xor', Operator.Word),
+            (r'[!%&*+<=>^~\|\/-]+', Operator),
+            (r'[()]', String.Symbol),
+        ],
+        'all-whitespace': [
+            (r'[\s]+', Text),
+        ],
+    }
+
+    # Turtle and Tera Term macro files share the same file extension
+    # but each has a recognizable and distinct syntax.
+    def analyse_text(text):
+        result = 0.0
+        if re.search(TeraTermLexer.tokens['commands'][0][0], text):
+            result += 0.01
+        return result
--- a/eric6/ThirdParty/Pygments/pygments/lexers/testing.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/testing.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for testing languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -17,7 +17,7 @@
 
 class GherkinLexer(RegexLexer):
     """
-    For `Gherkin <http://github.com/aslakhellesoy/gherkin/>` syntax.
+    For `Gherkin <https://github.com/aslakhellesoy/gherkin/>` syntax.
 
     .. versionadded:: 1.2
     """
--- a/eric6/ThirdParty/Pygments/pygments/lexers/text.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/text.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for non-source code file types.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -18,6 +18,7 @@
 from pygments.lexers.installers import DebianControlLexer, SourcesListLexer
 from pygments.lexers.make import MakefileLexer, BaseMakefileLexer, CMakeLexer
 from pygments.lexers.haxe import HxmlLexer
+from pygments.lexers.sgf import SmartGameFormatLexer
 from pygments.lexers.diff import DiffLexer, DarcsPatchLexer
 from pygments.lexers.data import YamlLexer
 from pygments.lexers.textfmts import IrcLogsLexer, GettextLexer, HttpLexer
--- a/eric6/ThirdParty/Pygments/pygments/lexers/textedit.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/textedit.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for languages related to text processing.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -102,9 +102,9 @@
 
             (r'[ \t]+', Text),
             # TODO: regexes can have other delims
-            (r'/(\\\\|\\/|[^\n/])*/', String.Regex),
-            (r'"(\\\\|\\"|[^\n"])*"', String.Double),
-            (r"'(''|[^\n'])*'", String.Single),
+            (r'/[^/\\\n]*(?:\\[\s\S][^/\\\n]*)*/', String.Regex),
+            (r'"[^"\\\n]*(?:\\[\s\S][^"\\\n]*)*"', String.Double),
+            (r"'[^\n']*(?:''[^\n']*)*'", String.Single),
 
             # Who decided that doublequote was a good comment character??
             (r'(?<=\s)"[^\-:.%#=*].*', Comment),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/textfmts.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/textfmts.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,18 +5,20 @@
 
     Lexers for various text formats.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import RegexLexer, bygroups
+from pygments.lexers import guess_lexer, get_lexer_by_name
+from pygments.lexer import RegexLexer, bygroups, default, include
 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Generic, Literal
+    Number, Generic, Literal, Punctuation
 from pygments.util import ClassNotFound
 
-__all__ = ['IrcLogsLexer', 'TodotxtLexer', 'HttpLexer', 'GettextLexer']
+__all__ = ['IrcLogsLexer', 'TodotxtLexer', 'HttpLexer', 'GettextLexer',
+           'NotmuchLexer', 'KernelLogLexer']
 
 
 class IrcLogsLexer(RegexLexer):
@@ -173,13 +175,13 @@
     tokens = {
         'root': [
             (r'(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH)( +)([^ ]+)( +)'
-             r'(HTTP)(/)(1\.[01])(\r?\n|\Z)',
+             r'(HTTP)(/)(1\.[01]|2|3)(\r?\n|\Z)',
              bygroups(Name.Function, Text, Name.Namespace, Text,
                       Keyword.Reserved, Operator, Number, Text),
              'headers'),
-            (r'(HTTP)(/)(1\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)',
-             bygroups(Keyword.Reserved, Operator, Number, Text, Number,
-                      Text, Name.Exception, Text),
+            (r'(HTTP)(/)(1\.[01]|2|3)( +)(\d{3})(?:( +)([^\r\n]+))?(\r?\n|\Z)',
+             bygroups(Keyword.Reserved, Operator, Number, Text, Number, Text,
+                      Name.Exception, Text),
              'headers'),
         ],
         'headers': [
@@ -295,3 +297,135 @@
             (r'\s+', IncompleteTaskText),
         ],
     }
+
+
+class NotmuchLexer(RegexLexer):
+    """
+    For `Notmuch <https://notmuchmail.org/>`_ email text format.
+
+    .. versionadded:: 2.5
+
+    Additional options accepted:
+
+    `body_lexer`
+        If given, highlight the contents of the message body with the specified
+        lexer, else guess it according to the body content (default: ``None``).
+    """
+
+    name = 'Notmuch'
+    aliases = ['notmuch']
+
+    def _highlight_code(self, match):
+        code = match.group(1)
+
+        try:
+            if self.body_lexer:
+                lexer = get_lexer_by_name(self.body_lexer)
+            else:
+                lexer = guess_lexer(code.strip())
+        except ClassNotFound:
+            lexer = get_lexer_by_name('text')
+
+        for item in lexer.get_tokens_unprocessed(code):
+            yield item
+
+    tokens = {
+        'root': [
+            (r'\fmessage{\s*', Keyword, ('message', 'message-attr')),
+        ],
+        'message-attr': [
+            (r'(\s*id:\s*)([^\s]+)', bygroups(Name.Attribute, String)),
+            (r'(\s*(?:depth|match|excluded):\s*)(\d+)',
+             bygroups(Name.Attribute, Number.Integer)),
+            (r'(\s*filename:\s*)(.+\n)',
+             bygroups(Name.Attribute, String)),
+            default('#pop'),
+        ],
+        'message': [
+            (r'\fmessage}\n', Keyword, '#pop'),
+            (r'\fheader{\n', Keyword, 'header'),
+            (r'\fbody{\n', Keyword, 'body'),
+        ],
+        'header': [
+            (r'\fheader}\n', Keyword, '#pop'),
+            (r'((?:Subject|From|To|Cc|Date):\s*)(.*\n)',
+             bygroups(Name.Attribute, String)),
+            (r'(.*)(\s*\(.*\))(\s*\(.*\)\n)',
+             bygroups(Generic.Strong, Literal, Name.Tag)),
+        ],
+        'body': [
+            (r'\fpart{\n', Keyword, 'part'),
+            (r'\f(part|attachment){\s*', Keyword, ('part', 'part-attr')),
+            (r'\fbody}\n', Keyword, '#pop'),
+        ],
+        'part-attr': [
+            (r'(ID:\s*)(\d+)', bygroups(Name.Attribute, Number.Integer)),
+            (r'(,\s*)((?:Filename|Content-id):\s*)([^,]+)',
+             bygroups(Punctuation, Name.Attribute, String)),
+            (r'(,\s*)(Content-type:\s*)(.+\n)',
+             bygroups(Punctuation, Name.Attribute, String)),
+            default('#pop'),
+        ],
+        'part': [
+            (r'\f(?:part|attachment)}\n', Keyword, '#pop'),
+            (r'\f(?:part|attachment){\s*', Keyword, ('#push', 'part-attr')),
+            (r'^Non-text part: .*\n', Comment),
+            (r'(?s)(.*?(?=\f(?:part|attachment)}\n))', _highlight_code),
+        ],
+    }
+
+    def analyse_text(text):
+        return 1.0 if text.startswith('\fmessage{') else 0.0
+
+    def __init__(self, **options):
+        self.body_lexer = options.get('body_lexer', None)
+        RegexLexer.__init__(self, **options)
+
+
+class KernelLogLexer(RegexLexer):
+    """
+    For Linux Kernel log ("dmesg") output.
+
+    .. versionadded:: 2.6
+    """
+    name = 'Kernel log'
+    aliases = ['kmsg', 'dmesg']
+    filenames = ['*.kmsg', '*.dmesg']
+
+    tokens = {
+        'root': [
+            (r'^[^:]+:debug : (?=\[)', Text, 'debug'),
+            (r'^[^:]+:info  : (?=\[)', Text, 'info'),
+            (r'^[^:]+:warn  : (?=\[)', Text, 'warn'),
+            (r'^[^:]+:notice: (?=\[)', Text, 'warn'),
+            (r'^[^:]+:err   : (?=\[)', Text, 'error'),
+            (r'^[^:]+:crit  : (?=\[)', Text, 'error'),
+            (r'^(?=\[)', Text, 'unknown'),
+        ],
+        'unknown': [
+            (r'^(?=.+(warning|notice|audit|deprecated))', Text, 'warn'),
+            (r'^(?=.+(error|critical|fail|Bug))', Text, 'error'),
+            default('info'),
+        ],
+        'base': [
+            (r'\[[0-9\. ]+\] ', Number),
+            (r'(?<=\] ).+?:', Keyword),
+            (r'\n', Text, '#pop'),
+        ],
+        'debug': [
+            include('base'),
+            (r'.+\n', Comment, '#pop')
+        ],
+        'info': [
+            include('base'),
+            (r'.+\n', Text, '#pop')
+        ],
+        'warn': [
+            include('base'),
+            (r'.+\n', Generic.Strong, '#pop')
+        ],
+        'error': [
+            include('base'),
+            (r'.+\n', Generic.Error, '#pop')
+        ]
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/theorem.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/theorem.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for theorem-proving languages.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -98,7 +98,6 @@
     operators = r'[!$%&*+\./:<=>?@^|~-]'
     prefix_syms = r'[!?~]'
     infix_syms = r'[=<>@^|&+\*/$%-]'
-    primitives = ('unit', 'nat', 'bool', 'string', 'ascii', 'list')
 
     tokens = {
         'root': [
@@ -115,7 +114,6 @@
             (r'\b([A-Z][\w\']*)', Name),
             (r'(%s)' % '|'.join(keyopts[::-1]), Operator),
             (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
-            (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
 
             (r"[^\W\d][\w']*", Name),
 
@@ -420,7 +418,7 @@
         u'<-', u'=', u'==', u'>', u'_', u'|', u'||', u'~', u'=>', u'<=', u'>=',
         u'/\\', u'\\/', u'∀', u'Π', u'λ', u'↔', u'∧', u'∨', u'≠', u'≤', u'≥',
         u'¬', u'⁻¹', u'⬝', u'▸', u'→', u'∃', u'ℕ', u'ℤ', u'≈', u'×', u'⌞',
-        u'⌟', u'≡', u'⟨', u'⟩',
+        u'⌟', u'≡', u'⟨', u'⟩', u'^',
     )
 
     punctuation = (u'(', u')', u':', u'{', u'}', u'[', u']', u'⦃', u'⦄',
--- a/eric6/ThirdParty/Pygments/pygments/lexers/trafficscript.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/trafficscript.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexer for RiverBed's TrafficScript (RTS) language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/typoscript.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/typoscript.py	Tue Apr 21 19:47:10 2020 +0200
@@ -14,7 +14,7 @@
     `TypoScriptHtmlDataLexer`
         Lexer that highlights markers, constants and registers within html tags.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -108,14 +108,11 @@
 
     name = 'TypoScript'
     aliases = ['typoscript']
-    filenames = ['*.ts', '*.txt']
+    filenames = ['*.typoscript']
     mimetypes = ['text/x-typoscript']
 
     flags = re.DOTALL | re.MULTILINE
 
-    # Slightly higher than TypeScript (which is 0).
-    priority = 0.1
-
     tokens = {
         'root': [
             include('comment'),
@@ -220,7 +217,3 @@
             (r'[\w"\-!/&;]+', Text),
         ],
     }
-
-    def analyse_text(text):
-        if '<INCLUDE_TYPOSCRIPT:' in text:
-            return 1.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/unicon.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,390 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.unicon
+    ~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for the Icon and Unicon languages, including ucode VM.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, bygroups, words, using, this
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation
+
+__all__ = ['IconLexer', 'UcodeLexer', 'UniconLexer']
+
+
+class UniconLexer(RegexLexer):
+    """
+    For Unicon source code.
+
+    .. versionadded:: 2.4
+    """
+
+    name = 'Unicon'
+    aliases = ['unicon']
+    filenames = ['*.icn']
+    mimetypes = ['text/unicon']
+
+    flags = re.MULTILINE
+
+    tokens = {
+        'root': [
+            (r'[^\S\n]+', Text),
+            (r'#.*?\n', Comment.Single),
+            (r'[^\S\n]+', Text),
+            (r'class|method|procedure', Keyword.Declaration, 'subprogram'),
+            (r'(record)(\s+)(\w+)',
+             bygroups(Keyword.Declaration, Text, Keyword.Type), 'type_def'),
+            (r'(#line|\$C|\$Cend|\$define|\$else|\$endif|\$error|\$ifdef|'
+             r'\$ifndef|\$include|\$line|\$undef)\b', Keyword.PreProc),
+            (r'(&null|&fail)\b', Keyword.Constant),
+            (r'&allocated|&ascii|&clock|&collections|&column|&col|&control|'
+             r'&cset|&current|&dateline|&date|&digits|&dump|'
+             r'&errno|&errornumber|&errortext|&errorvalue|&error|&errout|'
+             r'&eventcode|&eventvalue|&eventsource|&e|'
+             r'&features|&file|&host|&input|&interval|&lcase|&letters|'
+             r'&level|&line|&ldrag|&lpress|&lrelease|'
+             r'&main|&mdrag|&meta|&mpress|&mrelease|&now|&output|'
+             r'&phi|&pick|&pi|&pos|&progname|'
+             r'&random|&rdrag|&regions|&resize|&row|&rpress|&rrelease|'
+             r'&shift|&source|&storage|&subject|'
+             r'&time|&trace|&ucase|&version|'
+             r'&window|&x|&y', Keyword.Reserved),
+            (r'(by|of|not|to)\b', Keyword.Reserved),
+            (r'(global|local|static|abstract)\b', Keyword.Reserved),
+            (r'package|link|import', Keyword.Declaration),
+            (words((
+                'break', 'case', 'create', 'critical', 'default', 'end', 'all',
+                'do', 'else', 'every', 'fail', 'if', 'import', 'initial',
+                'initially', 'invocable', 'next',
+                'repeat', 'return', 'suspend',
+                'then', 'thread', 'until', 'while'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Reserved),
+            (words((
+                'Abort', 'abs', 'acos', 'Active', 'Alert', 'any', 'Any', 'Arb',
+                'Arbno', 'args', 'array', 'asin', 'atan', 'atanh', 'Attrib',
+                'Bal', 'bal', 'Bg', 'Break', 'Breakx',
+                'callout', 'center', 'char', 'chdir', 'chmod', 'chown', 'chroot',
+                'classname', 'Clip', 'Clone', 'close', 'cofail', 'collect',
+                'Color', 'ColorValue', 'condvar', 'constructor', 'copy',
+                'CopyArea', 'cos', 'Couple', 'crypt', 'cset', 'ctime',
+                'dbcolumns', 'dbdriver', 'dbkeys', 'dblimits', 'dbproduct',
+                'dbtables', 'delay', 'delete', 'detab', 'display', 'DrawArc',
+                'DrawCircle', 'DrawCube', 'DrawCurve', 'DrawCylinder',
+                'DrawDisk', 'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon',
+                'DrawRectangle', 'DrawSegment', 'DrawSphere', 'DrawString',
+                'DrawTorus', 'dtor',
+                'entab', 'EraseArea', 'errorclear', 'Event', 'eventmask',
+                'EvGet', 'EvSend', 'exec', 'exit', 'exp', 'Eye',
+                'Fail', 'fcntl', 'fdup', 'Fence', 'fetch', 'Fg', 'fieldnames',
+                'filepair', 'FillArc', 'FillCircle', 'FillPolygon',
+                'FillRectangle', 'find', 'flock', 'flush', 'Font', 'fork',
+                'FreeColor', 'FreeSpace', 'function',
+                'get', 'getch', 'getche', 'getegid', 'getenv', 'geteuid',
+                'getgid', 'getgr', 'gethost', 'getpgrp', 'getpid', 'getppid',
+                'getpw', 'getrusage', 'getserv', 'GetSpace', 'gettimeofday',
+                'getuid', 'globalnames', 'GotoRC', 'GotoXY', 'gtime', 'hardlink',
+                'iand', 'icom', 'IdentityMatrix', 'image', 'InPort', 'insert',
+                'Int86', 'integer', 'ioctl', 'ior', 'ishift', 'istate', 'ixor',
+                'kbhit', 'key', 'keyword', 'kill',
+                'left', 'Len', 'list', 'load', 'loadfunc', 'localnames',
+                'lock', 'log', 'Lower', 'lstat',
+                'many', 'map', 'match', 'MatrixMode', 'max', 'member',
+                'membernames', 'methodnames', 'methods', 'min', 'mkdir', 'move',
+                'MultMatrix', 'mutex',
+                'name', 'NewColor', 'Normals', 'NotAny', 'numeric',
+                'open', 'opencl', 'oprec', 'ord', 'OutPort',
+                'PaletteChars', 'PaletteColor', 'PaletteKey', 'paramnames',
+                'parent', 'Pattern', 'Peek', 'Pending', 'pipe', 'Pixel',
+                'PlayAudio', 'Poke', 'pop', 'PopMatrix', 'Pos', 'pos',
+                'proc', 'pull', 'push', 'PushMatrix', 'PushRotate', 'PushScale',
+                'PushTranslate', 'put',
+                'QueryPointer',
+                'Raise', 'read', 'ReadImage', 'readlink', 'reads', 'ready',
+                'real', 'receive', 'Refresh', 'Rem', 'remove', 'rename',
+                'repl', 'reverse', 'right', 'rmdir', 'Rotate', 'Rpos',
+                'Rtab', 'rtod', 'runerr',
+                'save', 'Scale', 'seek', 'select', 'send', 'seq',
+                'serial', 'set', 'setenv', 'setgid', 'setgrent',
+                'sethostent', 'setpgrp', 'setpwent', 'setservent',
+                'setuid', 'signal', 'sin', 'sort', 'sortf', 'Span',
+                'spawn', 'sql', 'sqrt', 'stat', 'staticnames', 'stop',
+                'StopAudio', 'string', 'structure', 'Succeed', 'Swi',
+                'symlink', 'sys_errstr', 'system', 'syswrite',
+                'Tab', 'tab', 'table', 'tan',
+                'Texcoord', 'Texture', 'TextWidth', 'Translate',
+                'trap', 'trim', 'truncate', 'trylock', 'type',
+                'umask', 'Uncouple', 'unlock', 'upto', 'utime',
+                'variable', 'VAttrib',
+                'wait', 'WAttrib', 'WDefault', 'WFlush', 'where',
+                'WinAssociate', 'WinButton', 'WinColorDialog', 'WindowContents',
+                'WinEditRegion', 'WinFontDialog', 'WinMenuBar', 'WinOpenDialog',
+                'WinPlayMedia', 'WinSaveDialog', 'WinScrollBar', 'WinSelectDialog',
+                'write', 'WriteImage', 'writes', 'WSection',
+                'WSync'), prefix=r'\b', suffix=r'\b'),
+             Name.Function),
+            include('numbers'),
+            (r'<@|<<@|>@|>>@|\.>|\->', Operator),
+            (r'\*\*|\+\+|\-\-|\.|\=|\~\=|<\=|>\=|\=\=|\~\=\=|<<|<<\=|>>|>>\=', Operator),
+            (r':\=|:\=:|\->|<\->|\+:\=|\|', Operator),
+            (r'\=\=\=|\~\=\=\=', Operator),
+            (r'"(?:[^\\"]|\\.)*"', String),
+            (r"'(?:[^\\']|\\.)*'", String.Character),
+            (r'[*<>+=/&!?@~\\-]', Operator),
+            (r'\^', Operator),
+            (r'(\w+)(\s*|[(,])', bygroups(Name, using(this))),
+            (r"([\[\]])", Punctuation),
+            (r"(<>|=>|[()|:;,.'`]|[{}]|[%]|[&?])", Punctuation),
+            (r'\n+', Text),
+        ],
+        'numbers': [
+            (r'\b([+-]?([2-9]|[12][0-9]|3[0-6])[rR][0-9a-zA-Z]+)\b', Number.Hex),
+            (r'[+-]?[0-9]*\.([0-9]*)([Ee][+-]?[0-9]*)?', Number.Float),
+            (r'\b([+-]?[0-9]+[KMGTPkmgtp]?)\b', Number.Integer),
+        ],
+        'subprogram': [
+            (r'\(', Punctuation, ('#pop', 'formal_part')),
+            (r';', Punctuation, '#pop'),
+            (r'"[^"]+"|\w+', Name.Function),
+            include('root'),
+        ],
+        'type_def': [
+            (r'\(', Punctuation, 'formal_part'),
+        ],
+        'formal_part': [
+            (r'\)', Punctuation, '#pop'),
+            (r'\w+', Name.Variable),
+            (r',', Punctuation),
+            (r'(:string|:integer|:real)\b', Keyword.Reserved),
+            include('root'),
+        ],
+    }
+
+
+class IconLexer(RegexLexer):
+    """
+    Lexer for Icon.
+
+    .. versionadded:: 1.6
+    """
+    name = 'Icon'
+    aliases = ['icon']
+    filenames = ['*.icon', '*.ICON']
+    mimetypes = []
+    flags = re.MULTILINE
+
+    tokens = {
+        'root': [
+            (r'[^\S\n]+', Text),
+            (r'#.*?\n', Comment.Single),
+            (r'[^\S\n]+', Text),
+            (r'class|method|procedure', Keyword.Declaration, 'subprogram'),
+            (r'(record)(\s+)(\w+)',
+             bygroups(Keyword.Declaration, Text, Keyword.Type), 'type_def'),
+            (r'(#line|\$C|\$Cend|\$define|\$else|\$endif|\$error|\$ifdef|'
+             r'\$ifndef|\$include|\$line|\$undef)\b', Keyword.PreProc),
+            (r'(&null|&fail)\b', Keyword.Constant),
+            (r'&allocated|&ascii|&clock|&collections|&column|&col|&control|'
+             r'&cset|&current|&dateline|&date|&digits|&dump|'
+             r'&errno|&errornumber|&errortext|&errorvalue|&error|&errout|'
+             r'&eventcode|&eventvalue|&eventsource|&e|'
+             r'&features|&file|&host|&input|&interval|&lcase|&letters|'
+             r'&level|&line|&ldrag|&lpress|&lrelease|'
+             r'&main|&mdrag|&meta|&mpress|&mrelease|&now|&output|'
+             r'&phi|&pick|&pi|&pos|&progname|'
+             r'&random|&rdrag|&regions|&resize|&row|&rpress|&rrelease|'
+             r'&shift|&source|&storage|&subject|'
+             r'&time|&trace|&ucase|&version|'
+             r'&window|&x|&y', Keyword.Reserved),
+            (r'(by|of|not|to)\b', Keyword.Reserved),
+            (r'(global|local|static)\b', Keyword.Reserved),
+            (r'link', Keyword.Declaration),
+            (words((
+                'break', 'case', 'create', 'default', 'end', 'all',
+                'do', 'else', 'every', 'fail', 'if', 'initial',
+                'invocable', 'next',
+                'repeat', 'return', 'suspend',
+                'then', 'until', 'while'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Reserved),
+            (words((
+                'abs', 'acos', 'Active', 'Alert', 'any',
+                'args', 'array', 'asin', 'atan', 'atanh', 'Attrib',
+                'bal', 'Bg',
+                'callout', 'center', 'char', 'chdir', 'chmod', 'chown', 'chroot',
+                'Clip', 'Clone', 'close', 'cofail', 'collect',
+                'Color', 'ColorValue', 'condvar', 'copy',
+                'CopyArea', 'cos', 'Couple', 'crypt', 'cset', 'ctime',
+                'delay', 'delete', 'detab', 'display', 'DrawArc',
+                'DrawCircle', 'DrawCube', 'DrawCurve', 'DrawCylinder',
+                'DrawDisk', 'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon',
+                'DrawRectangle', 'DrawSegment', 'DrawSphere', 'DrawString',
+                'DrawTorus', 'dtor',
+                'entab', 'EraseArea', 'errorclear', 'Event', 'eventmask',
+                'EvGet', 'EvSend', 'exec', 'exit', 'exp', 'Eye',
+                'fcntl', 'fdup', 'fetch', 'Fg', 'fieldnames',
+                'FillArc', 'FillCircle', 'FillPolygon',
+                'FillRectangle', 'find', 'flock', 'flush', 'Font',
+                'FreeColor', 'FreeSpace', 'function',
+                'get', 'getch', 'getche', 'getenv',
+                'GetSpace', 'gettimeofday',
+                'getuid', 'globalnames', 'GotoRC', 'GotoXY', 'gtime', 'hardlink',
+                'iand', 'icom', 'IdentityMatrix', 'image', 'InPort', 'insert',
+                'Int86', 'integer', 'ioctl', 'ior', 'ishift', 'istate', 'ixor',
+                'kbhit', 'key', 'keyword', 'kill',
+                'left', 'Len', 'list', 'load', 'loadfunc', 'localnames',
+                'lock', 'log', 'Lower', 'lstat',
+                'many', 'map', 'match', 'MatrixMode', 'max', 'member',
+                'membernames', 'methodnames', 'methods', 'min', 'mkdir', 'move',
+                'MultMatrix', 'mutex',
+                'name', 'NewColor', 'Normals', 'numeric',
+                'open', 'opencl', 'oprec', 'ord', 'OutPort',
+                'PaletteChars', 'PaletteColor', 'PaletteKey', 'paramnames',
+                'parent', 'Pattern', 'Peek', 'Pending', 'pipe', 'Pixel',
+                'Poke', 'pop', 'PopMatrix', 'Pos', 'pos',
+                'proc', 'pull', 'push', 'PushMatrix', 'PushRotate', 'PushScale',
+                'PushTranslate', 'put',
+                'QueryPointer',
+                'Raise', 'read', 'ReadImage', 'readlink', 'reads', 'ready',
+                'real', 'receive', 'Refresh', 'Rem', 'remove', 'rename',
+                'repl', 'reverse', 'right', 'rmdir', 'Rotate', 'Rpos',
+                'rtod', 'runerr',
+                'save', 'Scale', 'seek', 'select', 'send', 'seq',
+                'serial', 'set', 'setenv',
+                'setuid', 'signal', 'sin', 'sort', 'sortf',
+                'spawn', 'sql', 'sqrt', 'stat', 'staticnames', 'stop',
+                'string', 'structure', 'Swi',
+                'symlink', 'sys_errstr', 'system', 'syswrite',
+                'tab', 'table', 'tan',
+                'Texcoord', 'Texture', 'TextWidth', 'Translate',
+                'trap', 'trim', 'truncate', 'trylock', 'type',
+                'umask', 'Uncouple', 'unlock', 'upto', 'utime',
+                'variable',
+                'wait', 'WAttrib', 'WDefault', 'WFlush', 'where',
+                'WinAssociate', 'WinButton', 'WinColorDialog', 'WindowContents',
+                'WinEditRegion', 'WinFontDialog', 'WinMenuBar', 'WinOpenDialog',
+                'WinPlayMedia', 'WinSaveDialog', 'WinScrollBar', 'WinSelectDialog',
+                'write', 'WriteImage', 'writes', 'WSection',
+                'WSync'), prefix=r'\b', suffix=r'\b'),
+             Name.Function),
+            include('numbers'),
+            (r'\*\*|\+\+|\-\-|\.|\=|\~\=|<\=|>\=|\=\=|\~\=\=|<<|<<\=|>>|>>\=', Operator),
+            (r':\=|:\=:|<\-|<\->|\+:\=|\||\|\|', Operator),
+            (r'\=\=\=|\~\=\=\=', Operator),
+            (r'"(?:[^\\"]|\\.)*"', String),
+            (r"'(?:[^\\']|\\.)*'", String.Character),
+            (r'[*<>+=/&!?@~\\-]', Operator),
+            (r'(\w+)(\s*|[(,])', bygroups(Name, using(this))),
+            (r"([\[\]])", Punctuation),
+            (r"(<>|=>|[()|:;,.'`]|[{}]|[%^]|[&?])", Punctuation),
+            (r'\n+', Text),
+        ],
+        'numbers': [
+            (r'\b([+-]?([2-9]|[12][0-9]|3[0-6])[rR][0-9a-zA-Z]+)\b', Number.Hex),
+            (r'[+-]?[0-9]*\.([0-9]*)([Ee][+-]?[0-9]*)?', Number.Float),
+            (r'\b([+-]?[0-9]+[KMGTPkmgtp]?)\b', Number.Integer),
+        ],
+        'subprogram': [
+            (r'\(', Punctuation, ('#pop', 'formal_part')),
+            (r';', Punctuation, '#pop'),
+            (r'"[^"]+"|\w+', Name.Function),
+            include('root'),
+        ],
+        'type_def': [
+            (r'\(', Punctuation, 'formal_part'),
+        ],
+        'formal_part': [
+            (r'\)', Punctuation, '#pop'),
+            (r'\w+', Name.Variable),
+            (r',', Punctuation),
+            (r'(:string|:integer|:real)\b', Keyword.Reserved),
+            include('root'),
+        ],
+    }
+
+
+class UcodeLexer(RegexLexer):
+    """
+    Lexer for Icon ucode files.
+
+    .. versionadded:: 2.4
+    """
+    name = 'ucode'
+    aliases = ['ucode']
+    filenames = ['*.u', '*.u1', '*.u2']
+    mimetypes = []
+    flags = re.MULTILINE
+
+    tokens = {
+        'root': [
+            (r'(#.*\n)', Comment),
+            (words((
+                'con', 'declend', 'end',
+                'global',
+                'impl', 'invocable',
+                'lab', 'link', 'local',
+                'record',
+                'uid', 'unions',
+                'version'),
+                prefix=r'\b', suffix=r'\b'),
+             Name.Function),
+            (words((
+                'colm', 'filen', 'line', 'synt'),
+                prefix=r'\b', suffix=r'\b'),
+             Comment),
+            (words((
+                'asgn',
+                'bang', 'bscan',
+                'cat', 'ccase', 'chfail',
+                'coact', 'cofail', 'compl',
+                'coret', 'create', 'cset',
+                'diff', 'div', 'dup',
+                'efail', 'einit', 'end', 'eqv', 'eret',
+                'error', 'escan', 'esusp',
+                'field',
+                'goto',
+                'init', 'int', 'inter',
+                'invoke',
+                'keywd',
+                'lconcat', 'lexeq', 'lexge',
+                'lexgt', 'lexle', 'lexlt', 'lexne',
+                'limit', 'llist', 'lsusp',
+                'mark', 'mark0', 'minus', 'mod', 'mult',
+                'neg', 'neqv', 'nonnull', 'noop', 'null',
+                'number', 'numeq', 'numge', 'numgt',
+                'numle', 'numlt', 'numne',
+                'pfail', 'plus', 'pnull', 'pop', 'power',
+                'pret', 'proc', 'psusp', 'push1', 'pushn1',
+                'random', 'rasgn', 'rcv', 'rcvbk', 'real',
+                'refresh', 'rswap',
+                'sdup', 'sect', 'size', 'snd', 'sndbk',
+                'str', 'subsc', 'swap',
+                'tabmat', 'tally', 'toby', 'trace',
+                'unmark',
+                'value', 'var'), prefix=r'\b', suffix=r'\b'),
+             Keyword.Declaration),
+            (words((
+                'any',
+                'case',
+                'endcase', 'endevery', 'endif',
+                'endifelse', 'endrepeat', 'endsuspend',
+                'enduntil', 'endwhile', 'every',
+                'if', 'ifelse',
+                'repeat',
+                'suspend',
+                'until',
+                'while'),
+             prefix=r'\b', suffix=r'\b'),
+             Name.Constant),
+            (r'\d+(\s*|\.$|$)', Number.Integer),
+            (r'[+-]?\d*\.\d+(E[-+]?\d+)?', Number.Float),
+            (r'[+-]?\d+\.\d*(E[-+]?\d+)?', Number.Float),
+            (r"(<>|=>|[()|:;,.'`]|[{}]|[%^]|[&?])", Punctuation),
+            (r'\s+\b', Text),
+            (r'[\w-]+', Text),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/urbi.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/urbi.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for UrbiScript language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/usd.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.usd
+    ~~~~~~~~~~~~~~~~~~~
+
+    The module that parses Pixar's Universal Scene Description file format.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups
+from pygments.lexer import words as words_
+from pygments.lexers._usd_builtins import COMMON_ATTRIBUTES, KEYWORDS, \
+    OPERATORS, SPECIAL_NAMES, TYPES
+from pygments.token import Comment, Keyword, Name, Number, Operator, \
+    Punctuation, String, Text, Whitespace
+
+__all__ = ["UsdLexer"]
+
+
+def _keywords(words, type_):
+    return [(words_(words, prefix=r"\b", suffix=r"\b"), type_)]
+
+
+_TYPE = r"(\w+(?:\[\])?)"
+_BASE_ATTRIBUTE = r"([\w_]+(?:\:[\w_]+)*)(?:(\.)(timeSamples))?"
+_WHITESPACE = r"([ \t]+)"
+
+
+class UsdLexer(RegexLexer):
+    """
+    A lexer that parses Pixar's Universal Scene Description file format.
+
+    .. versionadded:: 2.6
+    """
+
+    name = "USD"
+    aliases = ["usd", "usda"]
+    filenames = ["*.usd", "*.usda"]
+
+    tokens = {
+        "root": [
+            (r"(custom){_WHITESPACE}(uniform)(\s+){}(\s+){}(\s*)(=)".format(
+                _TYPE, _BASE_ATTRIBUTE, _WHITESPACE=_WHITESPACE),
+             bygroups(Keyword.Token, Whitespace, Keyword.Token, Whitespace,
+                      Keyword.Type, Whitespace, Name.Attribute, Text,
+                      Name.Keyword.Tokens, Whitespace, Operator)),
+            (r"(custom){_WHITESPACE}{}(\s+){}(\s*)(=)".format(
+                _TYPE, _BASE_ATTRIBUTE, _WHITESPACE=_WHITESPACE),
+             bygroups(Keyword.Token, Whitespace, Keyword.Type, Whitespace,
+                      Name.Attribute, Text, Name.Keyword.Tokens, Whitespace,
+                      Operator)),
+            (r"(uniform){_WHITESPACE}{}(\s+){}(\s*)(=)".format(
+                _TYPE, _BASE_ATTRIBUTE, _WHITESPACE=_WHITESPACE),
+             bygroups(Keyword.Token, Whitespace, Keyword.Type, Whitespace,
+                      Name.Attribute, Text, Name.Keyword.Tokens, Whitespace,
+                      Operator)),
+            (r"{}{_WHITESPACE}{}(\s*)(=)".format(
+                _TYPE, _BASE_ATTRIBUTE, _WHITESPACE=_WHITESPACE),
+             bygroups(Keyword.Type, Whitespace, Name.Attribute, Text,
+                      Name.Keyword.Tokens, Whitespace, Operator)),
+        ] +
+        _keywords(KEYWORDS, Keyword.Tokens) +
+        _keywords(SPECIAL_NAMES, Name.Builtins) +
+        _keywords(COMMON_ATTRIBUTES, Name.Attribute) +
+        [(r"\b\w+:[\w:]+\b", Name.Attribute)] +
+        _keywords(OPERATORS, Operator) +  # more attributes
+        [(type_ + r"\[\]", Keyword.Type) for type_ in TYPES] +
+        _keywords(TYPES, Keyword.Type) +
+        [
+            (r"[\(\)\[\]{}]", Punctuation),
+            ("#.*?$", Comment.Single),
+            (",", Punctuation),
+            (";", Punctuation),  # ";"s are allowed to combine separate metadata lines
+            ("=", Operator),
+            (r"[-]*([0-9]*[.])?[0-9]+(?:e[+-]*\d+)?", Number),
+            (r"'''(?:.|\n)*?'''", String),
+            (r'"""(?:.|\n)*?"""', String),
+            (r"'.*?'", String),
+            (r'".*?"', String),
+            (r"<(\.\./)*([\w/]+|[\w/]+\.\w+[\w:]*)>", Name.Namespace),
+            (r"@.*?@", String.Interpol),
+            (r'\(.*"[.\\n]*".*\)', String.Doc),
+            (r"\A#usda .+$", Comment.Hashbang),
+            (r"\s+", Whitespace),
+            (r"[\w_]+", Text),
+            (r"[_:\.]+", Punctuation),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/varnish.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/varnish.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Varnish configuration
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/verification.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/verification.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,13 +5,13 @@
 
     Lexer for Intermediate Verification Languages (IVLs).
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, include, words
 from pygments.token import Comment, Operator, Keyword, Name, Number, \
-    Punctuation, Whitespace
+    Punctuation, Text, Generic
 
 __all__ = ['BoogieLexer', 'SilverLexer']
 
@@ -29,8 +29,9 @@
     tokens = {
         'root': [
             # Whitespace and Comments
-            (r'\n', Whitespace),
-            (r'\s+', Whitespace),
+            (r'\n', Text),
+            (r'\s+', Text),
+            (r'\\\n', Text),  # line continuation
             (r'//[/!](.*?)\n', Comment.Doc),
             (r'//(.*?)\n', Comment.Single),
             (r'/\*', Comment.Multiline, 'comment'),
@@ -45,6 +46,7 @@
             (words(('bool', 'int', 'ref'), suffix=r'\b'), Keyword.Type),
             include('numbers'),
             (r"(>=|<=|:=|!=|==>|&&|\|\||[+/\-=>*<\[\]])", Operator),
+            (r'\{.*?\}', Generic.Emph), #triggers
             (r"([{}():;,.])", Punctuation),
             # Identifier
             (r'[a-zA-Z_]\w*', Name),
@@ -74,8 +76,9 @@
     tokens = {
         'root': [
             # Whitespace and Comments
-            (r'\n', Whitespace),
-            (r'\s+', Whitespace),
+            (r'\n', Text),
+            (r'\s+', Text),
+            (r'\\\n', Text),  # line continuation
             (r'//[/!](.*?)\n', Comment.Doc),
             (r'//(.*?)\n', Comment.Single),
             (r'/\*', Comment.Multiline, 'comment'),
@@ -83,18 +86,18 @@
             (words((
                 'result', 'true', 'false', 'null', 'method', 'function',
                 'predicate', 'program', 'domain', 'axiom', 'var', 'returns',
-                'field', 'define', 'requires', 'ensures', 'invariant',
-                'fold', 'unfold', 'inhale', 'exhale', 'new', 'assert',
+                'field', 'define', 'fold', 'unfold', 'inhale', 'exhale', 'new', 'assert',
                 'assume', 'goto', 'while', 'if', 'elseif', 'else', 'fresh',
                 'constraining', 'Seq', 'Set', 'Multiset', 'union', 'intersection',
                 'setminus', 'subset', 'unfolding', 'in', 'old', 'forall', 'exists',
                 'acc', 'wildcard', 'write', 'none', 'epsilon', 'perm', 'unique',
                 'apply', 'package', 'folding', 'label', 'forperm'),
              suffix=r'\b'), Keyword),
-            (words(('Int', 'Perm', 'Bool', 'Ref'), suffix=r'\b'), Keyword.Type),
+            (words(('requires', 'ensures', 'invariant'), suffix=r'\b'), Name.Decorator),
+            (words(('Int', 'Perm', 'Bool', 'Ref', 'Rational'), suffix=r'\b'), Keyword.Type),
             include('numbers'),
-
             (r'[!%&*+=|?:<>/\-\[\]]', Operator),
+            (r'\{.*?\}', Generic.Emph), #triggers
             (r'([{}():;,.])', Punctuation),
             # Identifier
             (r'[\w$]\w*', Name),
--- a/eric6/ThirdParty/Pygments/pygments/lexers/web.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/web.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Just export previously exported lexers.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/webidl.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,297 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.webidl
+    ~~~~~~~~~~~~~~~~~~~
+
+    Lexers for Web IDL, including some extensions.
+
+    :copyright: Copyright 2006-2016 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, default, include, words
+from pygments.token import Comment, Keyword, Name, Number, Punctuation, \
+    String, Text
+
+__all__ = ['WebIDLLexer']
+
+_builtin_types = (
+    # primitive types
+    'byte', 'octet', 'boolean',
+    r'(?:unsigned\s+)?(?:short|long(?:\s+long)?)',
+    r'(?:unrestricted\s+)?(?:float|double)',
+    # string types
+    'DOMString', 'ByteString', 'USVString',
+    # exception types
+    'Error', 'DOMException',
+    # typed array types
+    'Uint8Array', 'Uint16Array', 'Uint32Array', 'Uint8ClampedArray',
+    'Float32Array', 'Float64Array',
+    # buffer source types
+    'ArrayBuffer', 'DataView', 'Int8Array', 'Int16Array', 'Int32Array',
+    # other
+    'any', 'void', 'object', 'RegExp',
+)
+_identifier = r'_?[A-Za-z][0-9A-Z_a-z-]*'
+_keyword_suffix = r'(?![\w-])'
+_string = r'"[^"]*"'
+
+class WebIDLLexer(RegexLexer):
+    """
+    For Web IDL.
+
+    .. versionadded:: 2.6
+    """
+
+    name = 'Web IDL'
+    aliases = ['webidl']
+    filenames = ['*.webidl']
+
+    tokens = {
+        'common': [
+            (r'\s+', Text),
+            (r'(?s)/\*.*?\*/', Comment.Multiline),
+            (r'//.*', Comment.Single),
+            (r'^#.*', Comment.Preproc),
+        ],
+        'root': [
+            include('common'),
+            (r'\[', Punctuation, 'extended_attributes'),
+            (r'partial' + _keyword_suffix, Keyword),
+            (r'typedef' + _keyword_suffix, Keyword, ('typedef', 'type')),
+            (r'interface' + _keyword_suffix, Keyword, 'interface_rest'),
+            (r'enum' + _keyword_suffix, Keyword, 'enum_rest'),
+            (r'callback' + _keyword_suffix, Keyword, 'callback_rest'),
+            (r'dictionary' + _keyword_suffix, Keyword, 'dictionary_rest'),
+            (r'namespace' + _keyword_suffix, Keyword, 'namespace_rest'),
+            (_identifier, Name.Class, 'implements_rest'),
+        ],
+        'extended_attributes': [
+            include('common'),
+            (r',', Punctuation),
+            (_identifier, Name.Decorator),
+            (r'=', Punctuation, 'extended_attribute_rest'),
+            (r'\(', Punctuation, 'argument_list'),
+            (r'\]', Punctuation, '#pop'),
+        ],
+        'extended_attribute_rest': [
+            include('common'),
+            (_identifier, Name, 'extended_attribute_named_rest'),
+            (_string, String),
+            (r'\(', Punctuation, 'identifier_list'),
+            default('#pop'),
+        ],
+        'extended_attribute_named_rest': [
+            include('common'),
+            (r'\(', Punctuation, 'argument_list'),
+            default('#pop'),
+        ],
+        'argument_list': [
+            include('common'),
+            (r'\)', Punctuation, '#pop'),
+            default('argument'),
+        ],
+        'argument': [
+            include('common'),
+            (r'optional' + _keyword_suffix, Keyword),
+            (r'\[', Punctuation, 'extended_attributes'),
+            (r',', Punctuation, '#pop'),
+            (r'\)', Punctuation, '#pop:2'),
+            default(('argument_rest', 'type'))
+        ],
+        'argument_rest': [
+            include('common'),
+            (_identifier, Name.Variable),
+            (r'\.\.\.', Punctuation),
+            (r'=', Punctuation, 'default_value'),
+            default('#pop'),
+        ],
+        'identifier_list': [
+            include('common'),
+            (_identifier, Name.Class),
+            (r',', Punctuation),
+            (r'\)', Punctuation, '#pop'),
+        ],
+        'type': [
+            include('common'),
+            (r'(?:' + r'|'.join(_builtin_types) + r')' + _keyword_suffix,
+             Keyword.Type, 'type_null'),
+            (words(('sequence', 'Promise', 'FrozenArray'),
+                   suffix=_keyword_suffix), Keyword.Type, 'type_identifier'),
+            (_identifier, Name.Class, 'type_identifier'),
+            (r'\(', Punctuation, 'union_type'),
+        ],
+        'union_type': [
+            include('common'),
+            (r'or' + _keyword_suffix, Keyword),
+            (r'\)', Punctuation, ('#pop', 'type_null')),
+            default('type'),
+        ],
+        'type_identifier': [
+            (r'<', Punctuation, 'type_list'),
+            default(('#pop', 'type_null'))
+        ],
+        'type_null': [
+            (r'\??', Punctuation, '#pop:2'),
+        ],
+        'default_value': [
+            include('common'),
+            include('const_value'),
+            (_string, String, '#pop'),
+            (r'\[\s*\]', Punctuation, '#pop'),
+        ],
+        'const_value': [
+            include('common'),
+            (words(('true', 'false', '-Infinity', 'Infinity', 'NaN', 'null'),
+                   suffix=_keyword_suffix), Keyword.Constant, '#pop'),
+            (r'-?(?:(?:[0-9]+\.[0-9]*|[0-9]*\.[0-9]+)(?:[Ee][+-]?[0-9]+)?' +
+             r'|[0-9]+[Ee][+-]?[0-9]+)', Number.Float, '#pop'),
+            (r'-?[1-9][0-9]*', Number.Integer, '#pop'),
+            (r'-?0[Xx][0-9A-Fa-f]+', Number.Hex, '#pop'),
+            (r'-?0[0-7]*', Number.Oct, '#pop'),
+        ],
+        'typedef': [
+            include('common'),
+            (_identifier, Name.Class),
+            (r';', Punctuation, '#pop'),
+        ],
+        'namespace_rest': [
+            include('common'),
+            (_identifier, Name.Namespace),
+            (r'\{', Punctuation, 'namespace_body'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'namespace_body': [
+            include('common'),
+            (r'\[', Punctuation, 'extended_attributes'),
+            (r'readonly' + _keyword_suffix, Keyword),
+            (r'attribute' + _keyword_suffix,
+             Keyword, ('attribute_rest', 'type')),
+            (r'const' + _keyword_suffix, Keyword, ('const_rest', 'type')),
+            (r'\}', Punctuation, '#pop'),
+            default(('operation_rest', 'type')),
+        ],
+        'interface_rest': [
+            include('common'),
+            (_identifier, Name.Class),
+            (r':', Punctuation),
+            (r'\{', Punctuation, 'interface_body'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'interface_body': [
+            (words(('iterable', 'maplike', 'setlike'), suffix=_keyword_suffix),
+             Keyword, 'iterable_maplike_setlike_rest'),
+            (words(('setter', 'getter', 'creator', 'deleter', 'legacycaller',
+                    'inherit', 'static', 'stringifier', 'jsonifier'),
+                   suffix=_keyword_suffix), Keyword),
+            (r'serializer' + _keyword_suffix, Keyword, 'serializer_rest'),
+            (r';', Punctuation),
+            include('namespace_body'),
+        ],
+        'attribute_rest': [
+            include('common'),
+            (_identifier, Name.Variable),
+            (r';', Punctuation, '#pop'),
+        ],
+        'const_rest': [
+            include('common'),
+            (_identifier, Name.Constant),
+            (r'=', Punctuation, 'const_value'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'operation_rest': [
+            include('common'),
+            (r';', Punctuation, '#pop'),
+            default('operation'),
+        ],
+        'operation': [
+            include('common'),
+            (_identifier, Name.Function),
+            (r'\(', Punctuation, 'argument_list'),
+            (r';', Punctuation, '#pop:2'),
+        ],
+        'iterable_maplike_setlike_rest': [
+            include('common'),
+            (r'<', Punctuation, 'type_list'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'type_list': [
+            include('common'),
+            (r',', Punctuation),
+            (r'>', Punctuation, '#pop'),
+            default('type'),
+        ],
+        'serializer_rest': [
+            include('common'),
+            (r'=', Punctuation, 'serialization_pattern'),
+            (r';', Punctuation, '#pop'),
+            default('operation'),
+        ],
+        'serialization_pattern': [
+            include('common'),
+            (_identifier, Name.Variable, '#pop'),
+            (r'\{', Punctuation, 'serialization_pattern_map'),
+            (r'\[', Punctuation, 'serialization_pattern_list'),
+        ],
+        'serialization_pattern_map': [
+            include('common'),
+            (words(('getter', 'inherit', 'attribute'),
+                   suffix=_keyword_suffix), Keyword),
+            (r',', Punctuation),
+            (_identifier, Name.Variable),
+            (r'\}', Punctuation, '#pop:2'),
+        ],
+        'serialization_pattern_list': [
+            include('common'),
+            (words(('getter', 'attribute'), suffix=_keyword_suffix), Keyword),
+            (r',', Punctuation),
+            (_identifier, Name.Variable),
+            (r']', Punctuation, '#pop:2'),
+        ],
+        'enum_rest': [
+            include('common'),
+            (_identifier, Name.Class),
+            (r'\{', Punctuation, 'enum_body'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'enum_body': [
+            include('common'),
+            (_string, String),
+            (r',', Punctuation),
+            (r'\}', Punctuation, '#pop'),
+        ],
+        'callback_rest': [
+            include('common'),
+            (r'interface' + _keyword_suffix,
+             Keyword, ('#pop', 'interface_rest')),
+            (_identifier, Name.Class),
+            (r'=', Punctuation, ('operation', 'type')),
+            (r';', Punctuation, '#pop'),
+        ],
+        'dictionary_rest': [
+            include('common'),
+            (_identifier, Name.Class),
+            (r':', Punctuation),
+            (r'\{', Punctuation, 'dictionary_body'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'dictionary_body': [
+            include('common'),
+            (r'\[', Punctuation, 'extended_attributes'),
+            (r'required' + _keyword_suffix, Keyword),
+            (r'\}', Punctuation, '#pop'),
+            default(('dictionary_item', 'type')),
+        ],
+        'dictionary_item': [
+            include('common'),
+            (_identifier, Name.Variable),
+            (r'=', Punctuation, 'default_value'),
+            (r';', Punctuation, '#pop'),
+        ],
+        'implements_rest': [
+            include('common'),
+            (r'implements' + _keyword_suffix, Keyword),
+            (_identifier, Name.Class),
+            (r';', Punctuation, '#pop'),
+        ],
+    }
--- a/eric6/ThirdParty/Pygments/pygments/lexers/webmisc.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/webmisc.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for misc. web stuff.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -158,6 +158,9 @@
         # state stack
         if len(lexer.xquery_parse_state) == 0:
             ctx.stack.pop()
+            if not ctx.stack:
+                # make sure we have at least the root state on invalid inputs
+                ctx.stack = ['root']
         elif len(ctx.stack) > 1:
             ctx.stack.append(lexer.xquery_parse_state.pop())
         else:
--- a/eric6/ThirdParty/Pygments/pygments/lexers/whiley.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/whiley.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the Whiley language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/x10.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/x10.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for the X10 programming language.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/lexers/xorg.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/xorg.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Lexers for Xorg configs.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/zig.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,129 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.zig
+    ~~~~~~~~~~~~~~~~~~~
+
+    Lexers for Zig.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, words
+from pygments.token import Comment, Operator, Keyword, Name, String, \
+    Number, Punctuation, Whitespace
+
+__all__ = ['ZigLexer']
+
+
+class ZigLexer(RegexLexer):
+    """
+    For `Zig <http://www.ziglang.org>`_ source code.
+
+    grammar: https://ziglang.org/documentation/master/#Grammar
+    """
+    name = 'Zig'
+    aliases = ['zig']
+    filenames = ['*.zig']
+    mimetypes = ['text/zig']
+
+    type_keywords = (
+        words(('bool', 'f16', 'f32', 'f64', 'f128', 'void', 'noreturn', 'type',
+               'anyerror', 'promise', 'i0', 'u0', 'isize',  'usize', 'comptime_int',
+               'comptime_float', 'c_short', 'c_ushort', 'c_int', 'c_uint', 'c_long',
+               'c_ulong', 'c_longlong', 'c_ulonglong', 'c_longdouble', 'c_void'
+               'i8', 'u8', 'i16', 'u16', 'i32', 'u32', 'i64', 'u64', 'i128',
+               'u128'), suffix=r'\b'),
+        Keyword.Type)
+
+    storage_keywords = (
+        words(('const', 'var', 'extern', 'packed', 'export', 'pub', 'noalias',
+               'inline', 'comptime', 'nakedcc', 'stdcallcc', 'volatile', 'allowzero',
+               'align', 'linksection', 'threadlocal'), suffix=r'\b'),
+        Keyword.Reserved)
+
+    structure_keywords = (
+        words(('struct', 'enum', 'union', 'error'), suffix=r'\b'),
+        Keyword)
+
+    statement_keywords = (
+        words(('break', 'return', 'continue', 'asm', 'defer', 'errdefer',
+               'unreachable', 'try', 'catch', 'async', 'await', 'suspend',
+               'resume', 'cancel'), suffix=r'\b'),
+        Keyword)
+
+    conditional_keywords = (
+        words(('if', 'else', 'switch', 'and', 'or', 'orelse'), suffix=r'\b'),
+        Keyword)
+
+    repeat_keywords = (
+        words(('while', 'for'), suffix=r'\b'),
+        Keyword)
+
+    other_keywords = (
+        words(('fn', 'usingnamespace', 'test'), suffix=r'\b'),
+        Keyword)
+
+    constant_keywords = (
+        words(('true', 'false', 'null', 'undefined'), suffix=r'\b'),
+        Keyword.Constant)
+
+    tokens = {
+        'root': [
+            (r'\n', Whitespace),
+            (r'\s+', Whitespace),
+            (r'//.*?\n', Comment.Single),
+
+            # Keywords
+            statement_keywords,
+            storage_keywords,
+            structure_keywords,
+            repeat_keywords,
+            type_keywords,
+            constant_keywords,
+            conditional_keywords,
+            other_keywords,
+
+            # Floats
+            (r'0x[0-9a-fA-F]+\.[0-9a-fA-F]+([pP][\-+]?[0-9a-fA-F]+)?', Number.Float),
+            (r'0x[0-9a-fA-F]+\.?[pP][\-+]?[0-9a-fA-F]+', Number.Float),
+            (r'[0-9]+\.[0-9]+([eE][-+]?[0-9]+)?', Number.Float),
+            (r'[0-9]+\.?[eE][-+]?[0-9]+', Number.Float),
+
+            # Integers
+            (r'0b[01]+', Number.Bin),
+            (r'0o[0-7]+', Number.Oct),
+            (r'0x[0-9a-fA-F]+', Number.Hex),
+            (r'[0-9]+', Number.Integer),
+
+            # Identifier
+            (r'@[a-zA-Z_]\w*', Name.Builtin),
+            (r'[a-zA-Z_]\w*', Name),
+
+            # Characters
+            (r'\'\\\'\'', String.Escape),
+            (r'\'\\(|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{6}|[nr\\t\'"])\'',
+             String.Escape),
+            (r'\'[^\\\']\'', String),
+
+            # Strings
+            (r'\\\\[^\n]*', String.Heredoc),
+            (r'c\\\\[^\n]*', String.Heredoc),
+            (r'c?"', String, 'string'),
+
+            # Operators, Punctuation
+            (r'[+%=><|^!?/\-*&~:]', Operator),
+            (r'[{}()\[\],.;]', Punctuation)
+        ],
+        'string': [
+            (r'\\(x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{6}|[nr\\t\'"])',
+             String.Escape),
+            (r'[^\\"\n]+', String),
+            (r'"', String, '#pop')
+        ]
+    }
+
+    def get_tokens_unprocessed(self, text):
+        for index, token, value in \
+                RegexLexer.get_tokens_unprocessed(self, text):
+            yield index, token, value
--- a/eric6/ThirdParty/Pygments/pygments/modeline.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/modeline.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A simple modeline parser (based on pymodeline).
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/plugin.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/plugin.py	Tue Apr 21 19:47:10 2020 +0200
@@ -32,7 +32,7 @@
         yourfilter = yourfilter:YourFilter
 
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 LEXER_ENTRY_POINT = 'pygments.lexers'
--- a/eric6/ThirdParty/Pygments/pygments/regexopt.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/regexopt.py	Tue Apr 21 19:47:10 2020 +0200
@@ -6,7 +6,7 @@
     An algorithm that generates optimized regexes for matching long lists of
     literal strings.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/scanner.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/scanner.py	Tue Apr 21 19:47:10 2020 +0200
@@ -12,7 +12,7 @@
     Have a look at the `DelphiLexer` to get an idea of how to use
     this scanner.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 import re
@@ -25,7 +25,7 @@
     """
 
 
-class Scanner(object):
+class Scanner:
     """
     Simple scanner
 
--- a/eric6/ThirdParty/Pygments/pygments/sphinxext.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/sphinxext.py	Tue Apr 21 19:47:10 2020 +0200
@@ -6,12 +6,10 @@
     Sphinx extension to generate automatic documentation of lexers,
     formatters and filters.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
-from __future__ import print_function
-
 import sys
 
 from docutils import nodes
--- a/eric6/ThirdParty/Pygments/pygments/style.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/style.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,33 +5,53 @@
 
     Basic style object.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 from pygments.token import Token, STANDARD_TYPES
-from pygments.util import add_metaclass
 
-# Default mapping of #ansixxx to RGB colors.
+# Default mapping of ansixxx to RGB colors.
 _ansimap = {
     # dark
-    '#ansiblack': '000000',
-    '#ansidarkred': '7f0000',
-    '#ansidarkgreen': '007f00',
-    '#ansibrown': '7f7fe0',
-    '#ansidarkblue': '00007f',
-    '#ansipurple': '7f007f',
-    '#ansiteal': '007f7f',
-    '#ansilightgray': 'e5e5e5',
+    'ansiblack': '000000',
+    'ansired': '7f0000',
+    'ansigreen': '007f00',
+    'ansiyellow': '7f7fe0',
+    'ansiblue': '00007f',
+    'ansimagenta': '7f007f',
+    'ansicyan': '007f7f',
+    'ansigray': 'e5e5e5',
     # normal
-    '#ansidarkgray': '555555',
-    '#ansired': 'ff0000',
-    '#ansigreen': '00ff00',
-    '#ansiyellow': 'ffff00',
-    '#ansiblue': '0000ff',
-    '#ansifuchsia': 'ff00ff',
-    '#ansiturquoise': '00ffff',
-    '#ansiwhite': 'ffffff',
+    'ansibrightblack': '555555',
+    'ansibrightred': 'ff0000',
+    'ansibrightgreen': '00ff00',
+    'ansibrightyellow': 'ffff00',
+    'ansibrightblue': '0000ff',
+    'ansibrightmagenta': 'ff00ff',
+    'ansibrightcyan': '00ffff',
+    'ansiwhite': 'ffffff',
+}
+# mapping of deprecated #ansixxx colors to new color names
+_deprecated_ansicolors = {
+    # dark
+    '#ansiblack': 'ansiblack',
+    '#ansidarkred': 'ansired',
+    '#ansidarkgreen': 'ansigreen',
+    '#ansibrown': 'ansiyellow',
+    '#ansidarkblue': 'ansiblue',
+    '#ansipurple': 'ansimagenta',
+    '#ansiteal': 'ansicyan',
+    '#ansilightgray': 'ansigray',
+    # normal
+    '#ansidarkgray': 'ansibrightblack',
+    '#ansired': 'ansibrightred',
+    '#ansigreen': 'ansibrightgreen',
+    '#ansiyellow': 'ansibrightyellow',
+    '#ansiblue': 'ansibrightblue',
+    '#ansifuchsia': 'ansibrightmagenta',
+    '#ansiturquoise': 'ansibrightcyan',
+    '#ansiwhite': 'ansiwhite',
 }
 ansicolors = set(_ansimap)
 
@@ -52,9 +72,11 @@
                 if len(col) == 6:
                     return col
                 elif len(col) == 3:
-                    return col[0]*2 + col[1]*2 + col[2]*2
+                    return col[0] * 2 + col[1] * 2 + col[2] * 2
             elif text == '':
                 return ''
+            elif text.startswith('var') or text.startswith('calc'):
+                return text
             assert False, "wrong color format %r" % text
 
         _styles = obj._styles = {}
@@ -106,11 +128,15 @@
         t = cls._styles[token]
         ansicolor = bgansicolor = None
         color = t[0]
-        if color.startswith('#ansi'):
+        if color in _deprecated_ansicolors:
+            color = _deprecated_ansicolors[color]
+        if color in ansicolors:
             ansicolor = color
             color = _ansimap[color]
         bgcolor = t[4]
-        if bgcolor.startswith('#ansi'):
+        if bgcolor in _deprecated_ansicolors:
+            bgcolor = _deprecated_ansicolors[color]
+        if bgcolor in ansicolors:
             bgansicolor = bgcolor
             bgcolor = _ansimap[bgcolor]
 
@@ -142,8 +168,7 @@
         return len(cls._styles)
 
 
-@add_metaclass(StyleMeta)
-class Style(object):
+class Style(metaclass=StyleMeta):
 
     #: overall background color (``None`` means transparent)
     background_color = '#ffffff'
--- a/eric6/ThirdParty/Pygments/pygments/styles/__init__.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/__init__.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Contains built-in styles.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -44,6 +44,13 @@
     'arduino':  'arduino::ArduinoStyle',
     'rainbow_dash': 'rainbow_dash::RainbowDashStyle',
     'abap':     'abap::AbapStyle',
+    'solarized-dark': 'solarized::SolarizedDarkStyle',
+    'solarized-light': 'solarized::SolarizedLightStyle',
+    'sas':         'sas::SasStyle',
+    'stata':       'stata_light::StataLightStyle',
+    'stata-light': 'stata_light::StataLightStyle',
+    'stata-dark':  'stata_dark::StataDarkStyle',
+    'inkpot':      'inkpot::InkPotStyle',
 }
 
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/abap.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/abap.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     ABAP workbench like style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/algol.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/algol.py	Tue Apr 21 19:47:10 2020 +0200
@@ -26,7 +26,7 @@
 
     [1] `Revised Report on the Algorithmic Language Algol-60 <http://www.masswerk.at/algol60/report.htm>`
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/algol_nu.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/algol_nu.py	Tue Apr 21 19:47:10 2020 +0200
@@ -26,7 +26,7 @@
 
     [1] `Revised Report on the Algorithmic Language Algol-60 <http://www.masswerk.at/algol60/report.htm>`
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/arduino.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/arduino.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,17 +5,17 @@
 
     Arduino® Syntax highlighting style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 from pygments.style import Style
 from pygments.token import Keyword, Name, Comment, String, Error, \
-     Number, Operator, Generic, Whitespace
+    Number, Operator, Generic, Whitespace
 
 
 class ArduinoStyle(Style):
-    """
+    u"""
     The Arduino® language style. This style is designed to highlight the
     Arduino source code, so exepect the best results with it.
     """
--- a/eric6/ThirdParty/Pygments/pygments/styles/autumn.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/autumn.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A colorful style, inspired by the terminal highlighting style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/borland.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/borland.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Style similar to the style used in the Borland IDEs.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/bw.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/bw.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Simple black/white only style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/colorful.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/colorful.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A colorful style, inspired by CodeRay.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/default.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/default.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     The default highlighting style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/emacs.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/emacs.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A highlighting style for Pygments, inspired by Emacs.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/friendly.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/friendly.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A modern style based on the VIM pyte theme.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/fruity.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/fruity.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     pygments version of my "fruity" vim theme.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/igor.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/igor.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Igor Pro default style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/styles/inkpot.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.styles.inkpot
+    ~~~~~~~~~~~~~~~~~~~~~~
+
+    A highlighting style for Pygments, inspired by the Inkpot theme for VIM.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.style import Style
+from pygments.token import Text, Other, Keyword, Name, Comment, String, \
+    Error, Number, Operator, Generic, Whitespace, Punctuation
+
+
+class InkPotStyle(Style):
+    background_color = "#1e1e27"
+    default_style = ""
+    styles = {
+        Text:                      "#cfbfad",
+        Other:                     "#cfbfad",
+        Whitespace:                "#434357",
+        Comment:                   "#cd8b00",
+        Comment.Preproc:           "#409090",
+        Comment.PreprocFile:       "bg:#404040 #ffcd8b",
+        Comment.Special:           "#808bed",
+
+        Keyword:                   "#808bed",
+        Keyword.Pseudo:            "nobold",
+        Keyword.Type:              "#ff8bff",
+
+        Operator:                  "#666666",
+
+        Punctuation:               "#cfbfad",
+
+        Name:                      "#cfbfad",
+        Name.Attribute:            "#cfbfad",
+        Name.Builtin.Pseudo:       '#ffff00',
+        Name.Builtin:              "#808bed",
+        Name.Class:                "#ff8bff",
+        Name.Constant:             "#409090",
+        Name.Decorator:            "#409090",
+        Name.Exception:            "#ff0000",
+        Name.Function:             "#c080d0",
+        Name.Label:                "#808bed",
+        Name.Namespace:            "#ff0000",
+        Name.Variable:             "#cfbfad",
+
+        String:                    "bg:#404040 #ffcd8b",
+        String.Doc:                "#808bed",
+
+        Number:                    "#f0ad6d",
+
+        Generic.Heading:           "bold #000080",
+        Generic.Subheading:        "bold #800080",
+        Generic.Deleted:           "#A00000",
+        Generic.Inserted:          "#00A000",
+        Generic.Error:             "#FF0000",
+        Generic.Emph:              "italic",
+        Generic.Strong:            "bold",
+        Generic.Prompt:            "bold #000080",
+        Generic.Output:            "#888",
+        Generic.Traceback:         "#04D",
+
+        Error:                     "bg:#6e2e2e #ffffff"
+    }
--- a/eric6/ThirdParty/Pygments/pygments/styles/lovelace.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/lovelace.py	Tue Apr 21 19:47:10 2020 +0200
@@ -9,7 +9,7 @@
     A desaturated, somewhat subdued style created for the Lovelace interactive
     learning environment.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/manni.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/manni.py	Tue Apr 21 19:47:10 2020 +0200
@@ -8,7 +8,7 @@
     This is a port of the style used in the `php port`_ of pygments
     by Manni. The style is called 'default' there.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/monokai.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/monokai.py	Tue Apr 21 19:47:10 2020 +0200
@@ -7,7 +7,7 @@
 
     http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -92,14 +92,15 @@
         String.Single:             "",        # class: 's1'
         String.Symbol:             "",        # class: 'ss'
 
+
         Generic:                   "",        # class: 'g'
         Generic.Deleted:           "#f92672", # class: 'gd',
         Generic.Emph:              "italic",  # class: 'ge'
         Generic.Error:             "",        # class: 'gr'
         Generic.Heading:           "",        # class: 'gh'
         Generic.Inserted:          "#a6e22e", # class: 'gi'
-        Generic.Output:            "",        # class: 'go'
-        Generic.Prompt:            "",        # class: 'gp'
+        Generic.Output:            "#66d9ef", # class: 'go'
+        Generic.Prompt:            "bold #f92672", # class: 'gp'
         Generic.Strong:            "bold",    # class: 'gs'
         Generic.Subheading:        "#75715e", # class: 'gu'
         Generic.Traceback:         "",        # class: 'gt'
--- a/eric6/ThirdParty/Pygments/pygments/styles/murphy.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/murphy.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Murphy's style from CodeRay.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/native.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/native.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     pygments version of my "native" vim theme.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/paraiso_dark.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/paraiso_dark.py	Tue Apr 21 19:47:10 2020 +0200
@@ -9,7 +9,7 @@
     Created with Base16 Builder by Chris Kempson
     (https://github.com/chriskempson/base16-builder).
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/paraiso_light.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/paraiso_light.py	Tue Apr 21 19:47:10 2020 +0200
@@ -9,7 +9,7 @@
     Created with Base16 Builder by Chris Kempson
     (https://github.com/chriskempson/base16-builder).
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/pastie.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/pastie.py	Tue Apr 21 19:47:10 2020 +0200
@@ -7,7 +7,7 @@
 
     .. _pastie: http://pastie.caboo.se/
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/perldoc.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/perldoc.py	Tue Apr 21 19:47:10 2020 +0200
@@ -7,7 +7,7 @@
 
     .. _perldoc: http://perldoc.perl.org/
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/rainbow_dash.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/rainbow_dash.py	Tue Apr 21 19:47:10 2020 +0200
@@ -7,7 +7,7 @@
 
     .. _theme: http://sanssecours.github.io/Rainbow-Dash.tmbundle
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/rrt.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/rrt.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     pygments "rrt" theme, based on Zap and Emacs defaults.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/sas.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/sas.py	Tue Apr 21 19:47:10 2020 +0200
@@ -7,7 +7,7 @@
     meant to be a complete style. It's merely meant to mimic SAS'
     program editor syntax highlighting.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/styles/solarized.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,130 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.styles.solarized
+    ~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Solarized by Camil Staps
+
+    A Pygments style for the Solarized themes (licensed under MIT).
+    See: https://github.com/altercation/solarized
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.style import Style
+from pygments.token import Comment, Error, Generic, Keyword, Name, Number, \
+    Operator, String, Token
+
+
+def make_style(colors):
+    return {
+        Token:               colors['base0'],
+
+        Comment:             'italic ' + colors['base01'],
+        Comment.Hashbang:    colors['base01'],
+        Comment.Multiline:   colors['base01'],
+        Comment.Preproc:     'noitalic ' + colors['magenta'],
+        Comment.PreprocFile: 'noitalic ' + colors['base01'],
+
+        Keyword:             colors['green'],
+        Keyword.Constant:    colors['cyan'],
+        Keyword.Declaration: colors['cyan'],
+        Keyword.Namespace:   colors['orange'],
+        Keyword.Type:        colors['yellow'],
+
+        Operator:            colors['base01'],
+        Operator.Word:       colors['green'],
+
+        Name.Builtin:        colors['blue'],
+        Name.Builtin.Pseudo: colors['blue'],
+        Name.Class:          colors['blue'],
+        Name.Constant:       colors['blue'],
+        Name.Decorator:      colors['blue'],
+        Name.Entity:         colors['blue'],
+        Name.Exception:      colors['blue'],
+        Name.Function:       colors['blue'],
+        Name.Function.Magic: colors['blue'],
+        Name.Label:          colors['blue'],
+        Name.Namespace:      colors['blue'],
+        Name.Tag:            colors['blue'],
+        Name.Variable:       colors['blue'],
+        Name.Variable.Global:colors['blue'],
+        Name.Variable.Magic: colors['blue'],
+
+        String:              colors['cyan'],
+        String.Doc:          colors['base01'],
+        String.Regex:        colors['orange'],
+
+        Number:              colors['cyan'],
+
+        Generic.Deleted:     colors['red'],
+        Generic.Emph:        'italic',
+        Generic.Error:       colors['red'],
+        Generic.Heading:     'bold',
+        Generic.Subheading:  'underline',
+        Generic.Inserted:    colors['green'],
+        Generic.Strong:      'bold',
+        Generic.Traceback:   colors['blue'],
+
+        Error:               'bg:' + colors['red'],
+    }
+
+
+DARK_COLORS = {
+    'base03':  '#002b36',
+    'base02':  '#073642',
+    'base01':  '#586e75',
+    'base00':  '#657b83',
+    'base0':   '#839496',
+    'base1':   '#93a1a1',
+    'base2':   '#eee8d5',
+    'base3':   '#fdf6e3',
+    'yellow':  '#b58900',
+    'orange':  '#cb4b16',
+    'red':     '#dc322f',
+    'magenta': '#d33682',
+    'violet':  '#6c71c4',
+    'blue':    '#268bd2',
+    'cyan':    '#2aa198',
+    'green':   '#859900',
+}
+
+LIGHT_COLORS = {
+    'base3':   '#002b36',
+    'base2':   '#073642',
+    'base1':   '#586e75',
+    'base0':   '#657b83',
+    'base00':  '#839496',
+    'base01':  '#93a1a1',
+    'base02':  '#eee8d5',
+    'base03':  '#fdf6e3',
+    'yellow':  '#b58900',
+    'orange':  '#cb4b16',
+    'red':     '#dc322f',
+    'magenta': '#d33682',
+    'violet':  '#6c71c4',
+    'blue':    '#268bd2',
+    'cyan':    '#2aa198',
+    'green':   '#859900',
+}
+
+
+class SolarizedDarkStyle(Style):
+    """
+    The solarized style, dark.
+    """
+
+    styles = make_style(DARK_COLORS)
+    background_color = DARK_COLORS['base03']
+    highlight_color = DARK_COLORS['base02']
+
+
+class SolarizedLightStyle(SolarizedDarkStyle):
+    """
+    The solarized style, light.
+    """
+
+    styles = make_style(LIGHT_COLORS)
+    background_color = LIGHT_COLORS['base03']
+    highlight_color = LIGHT_COLORS['base02']
--- a/eric6/ThirdParty/Pygments/pygments/styles/stata.py	Tue Apr 21 19:44:19 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    pygments.styles.stata
-    ~~~~~~~~~~~~~~~~~~~~~
-
-    Style inspired by Stata's do-file editor. Note this is not meant
-    to be a complete style. It's merely meant to mimic Stata's do file
-    editor syntax highlighting.
-
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
-"""
-
-from pygments.style import Style
-from pygments.token import Keyword, Name, Comment, String, Error, \
-    Number, Operator, Whitespace
-
-
-class StataStyle(Style):
-    """
-    Style inspired by Stata's do-file editor. Note this is not meant
-    to be a complete style. It's merely meant to mimic Stata's do file
-    editor syntax highlighting.
-    """
-
-    default_style = ''
-
-    styles = {
-        Whitespace:            '#bbbbbb',
-        Comment:               'italic #008800',
-        String:                '#7a2424',
-        Number:                '#2c2cff',
-        Operator:              '',
-        Keyword:               'bold #353580',
-        Keyword.Constant:      '',
-        Name.Function:         '#2c2cff',
-        Name.Variable:         'bold #35baba',
-        Name.Variable.Global:  'bold #b5565e',
-        Error:                 'bg:#e3d2d2 #a61717'
-    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/styles/stata_dark.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.styles.stata_dark
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Dark style inspired by Stata's do-file editor. Note this is not
+    meant to be a complete style, just for Stata's file formats.
+
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.style import Style
+from pygments.token import Keyword, Name, Comment, String, Error, \
+    Number, Operator, Whitespace, Generic, Text
+
+
+class StataDarkStyle(Style):
+
+    default_style = ''
+
+    background_color = "#232629"
+    highlight_color = "#49483e"
+
+    styles = {
+        Whitespace:            '#bbbbbb',
+        Error:                 'bg:#e3d2d2 #a61717',
+        Text:                  '#cccccc',
+        String:                '#51cc99',
+        Number:                '#4FB8CC',
+        Operator:              '',
+        Name.Function:         '#6a6aff',
+        Name.Other:            '#e2828e',
+        Keyword:               'bold #7686bb',
+        Keyword.Constant:      '',
+        Comment:               'italic #777777',
+        Name.Variable:         'bold #7AB4DB',
+        Name.Variable.Global:  'bold #BE646C',
+        Generic.Prompt:        '#ffffff',
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/ThirdParty/Pygments/pygments/styles/stata_light.py	Tue Apr 21 19:47:10 2020 +0200
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.styles.stata_light
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Light Style inspired by Stata's do-file editor. Note this is not
+    meant to be a complete style, just for Stata's file formats.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.style import Style
+from pygments.token import Keyword, Name, Comment, String, Error, \
+    Number, Operator, Whitespace, Text
+
+
+class StataLightStyle(Style):
+    """
+    Light mode style inspired by Stata's do-file editor. This is not
+    meant to be a complete style, just for use with Stata.
+    """
+
+    default_style = ''
+    styles = {
+        Text:                  '#111111',
+        Whitespace:            '#bbbbbb',
+        Error:                 'bg:#e3d2d2 #a61717',
+        String:                '#7a2424',
+        Number:                '#2c2cff',
+        Operator:              '',
+        Name.Function:         '#2c2cff',
+        Name.Other:            '#be646c',
+        Keyword:               'bold #353580',
+        Keyword.Constant:      '',
+        Comment:               'italic #008800',
+        Name.Variable:         'bold #35baba',
+        Name.Variable.Global:  'bold #b5565e',
+    }
--- a/eric6/ThirdParty/Pygments/pygments/styles/tango.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/tango.py	Tue Apr 21 19:47:10 2020 +0200
@@ -33,7 +33,7 @@
     have been chosen to have the same style.  Similarly, keywords (Keyword.*),
     and Operator.Word (and, or, in) have been assigned the same style.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/trac.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/trac.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Port of the default trac highlighter design.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/vim.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/vim.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     A highlighting style for Pygments, inspired by vim.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/vs.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/vs.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Simple style with MS Visual Studio colors.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/styles/xcode.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/styles/xcode.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Style similar to the `Xcode` default theme.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/token.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/token.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,7 +5,7 @@
 
     Basic token types and the standard tokens.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
--- a/eric6/ThirdParty/Pygments/pygments/unistring.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/unistring.py	Tue Apr 21 19:47:10 2020 +0200
@@ -8,7 +8,7 @@
 
     Inspired by chartypes_create.py from the MoinMoin project.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -156,10 +156,6 @@
 if __name__ == '__main__':  # pragma: no cover
     import unicodedata
 
-    # we need Py3 for the determination of the XID_* properties
-    if sys.version_info[:2] < (3, 3):
-        raise RuntimeError('this file must be regenerated with Python 3.3+')
-
     categories_bmp = {'xid_start': [], 'xid_continue': []}
     categories_nonbmp = {'xid_start': [], 'xid_continue': []}
 
--- a/eric6/ThirdParty/Pygments/pygments/util.py	Tue Apr 21 19:44:19 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/util.py	Tue Apr 21 19:47:10 2020 +0200
@@ -5,12 +5,13 @@
 
     Utility functions.
 
-    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
 import re
 import sys
+from io import TextIOWrapper
 
 
 split_path_re = re.compile(r'[/\\ ]')
@@ -53,7 +54,7 @@
         return string
     elif isinstance(string, int):
         return bool(string)
-    elif not isinstance(string, string_types):
+    elif not isinstance(string, str):
         raise OptionError('Invalid type %r for option %s; use '
                           '1/0, yes/no, true/false, on/off' % (
                               string, optname))
@@ -83,7 +84,7 @@
 
 def get_list_opt(options, optname, default=None):
     val = options.get(optname, default)
-    if isinstance(val, string_types):
+    if isinstance(val, str):
         return val.split()
     elif isinstance(val, (list, tuple)):
         return list(val)
@@ -173,7 +174,7 @@
     Note that this method only checks the first part of a DOCTYPE.
     eg: 'html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
     """
-    m = doctype_lookup_re.match(text)
+    m = doctype_lookup_re.search(text)
     if m is None:
         return False
     doctype = m.group(2)
@@ -196,7 +197,7 @@
     try:
         return _looks_like_xml_cache[key]
     except KeyError:
-        m = doctype_lookup_re.match(text)
+        m = doctype_lookup_re.search(text)
         if m is not None:
             return True
         rv = tag_re.search(text[:1000]) is not None
@@ -224,7 +225,7 @@
 
     if sys.maxunicode > 0xffff:
         # wide build
-        return u'[%s-%s]' % (unichr(a), unichr(b))
+        return u'[%s-%s]' % (chr(a), chr(b))
     else:
         # narrow build stores surrogates, and the 're' module handles them
         # (incorrectly) as characters.  Since there is still ordering among
@@ -232,24 +233,23 @@
         # background in http://bugs.python.org/issue3665 and
         # http://bugs.python.org/issue12749
         #
-        # Additionally, the lower constants are using unichr rather than
+        # Additionally, the lower constants are using chr rather than
         # literals because jython [which uses the wide path] can't load this
         # file if they are literals.
         ah, al = _surrogatepair(a)
         bh, bl = _surrogatepair(b)
         if ah == bh:
-            return u'(?:%s[%s-%s])' % (unichr(ah), unichr(al), unichr(bl))
+            return u'(?:%s[%s-%s])' % (chr(ah), chr(al), chr(bl))
         else:
             buf = []
-            buf.append(u'%s[%s-%s]' %
-                       (unichr(ah), unichr(al),
-                        ah == bh and unichr(bl) or unichr(0xdfff)))
+            buf.append(u'%s[%s-%s]' % (chr(ah), chr(al),
+                                       ah == bh and chr(bl) or chr(0xdfff)))
             if ah - bh > 1:
                 buf.append(u'[%s-%s][%s-%s]' %
-                           unichr(ah+1), unichr(bh-1), unichr(0xdc00), unichr(0xdfff))
+                           chr(ah+1), chr(bh-1), chr(0xdc00), chr(0xdfff))
             if ah != bh:
                 buf.append(u'%s[%s-%s]' %
-                           (unichr(bh), unichr(0xdc00), unichr(bl)))
+                           (chr(bh), chr(0xdc00), chr(bl)))
 
             return u'(?:' + u'|'.join(buf) + u')'
 
@@ -289,7 +289,7 @@
     return lst
 
 
-class Future(object):
+class Future:
     """Generic class to defer some work.
 
     Handled specially in RegexLexerMeta, to support regex string construction at
@@ -345,44 +345,7 @@
     return locale.getpreferredencoding()
 
 
-# Python 2/3 compatibility
-
-if sys.version_info < (3, 0):
-    unichr = unichr
-    xrange = xrange
-    string_types = (str, unicode)
-    text_type = unicode
-    u_prefix = 'u'
-    iteritems = dict.iteritems
-    itervalues = dict.itervalues
-    import StringIO
-    import cStringIO
-    # unfortunately, io.StringIO in Python 2 doesn't accept str at all
-    StringIO = StringIO.StringIO
-    BytesIO = cStringIO.StringIO
-else:
-    unichr = chr
-    xrange = range
-    string_types = (str,)
-    text_type = str
-    u_prefix = ''
-    iteritems = dict.items
-    itervalues = dict.values
-    from io import StringIO, BytesIO, TextIOWrapper
-
-    class UnclosingTextIOWrapper(TextIOWrapper):
-        # Don't close underlying buffer on destruction.
-        def close(self):
-            self.flush()
-
-
-def add_metaclass(metaclass):
-    """Class decorator for creating a class with a metaclass."""
-    def wrapper(cls):
-        orig_vars = cls.__dict__.copy()
-        orig_vars.pop('__dict__', None)
-        orig_vars.pop('__weakref__', None)
-        for slots_var in orig_vars.get('__slots__', ()):
-            orig_vars.pop(slots_var)
-        return metaclass(cls.__name__, cls.__bases__, orig_vars)
-    return wrapper
+class UnclosingTextIOWrapper(TextIOWrapper):
+    # Don't close underlying buffer on destruction.
+    def close(self):
+        self.flush()

eric ide

mercurial