-
Added lexers:
-
Updated lexers:
- Ada: support Ada 2022 (#2121); disable recognition of namespaces because it disturbs lexing of aspects (#2125)
- Agda: allow straight quotes in module names (#2163)
- C family (C, C++ and many others): allow comments between elements of function headers, e.g. between the arguments and the opening brace for the body (#1891)
- C++: Resolve several cases of
Error
tokens (#2207, #2208) - Coq: add some common keywords, improve recognition of
Set
and qualified identifiers (#2158) - F*: Allow C-style comments anywhere in a line
- Fortran: fix catastrophic backtracking with backslashes in strings (#2194)
- Go: add support for generics (#2167)
- Inform: update for version 6.40 (#2190)
- Isabelle: recognize cartouches (#2089)
- Java: support multiline strings aka. text blocks (#2132)
- Kotlin: add
value
modifier (#2142) - LilyPond: add some missing builtins
- Macaulay2: update builtins (#2139)
- Matlab session: fix traceback when a line continuation ellipsis appears in the output (#2166)
- .NET: add aliases for LibreOffice Basic, OpenOfficeBasic and
StarOffice Basic (#2170) - Nim: use
Name.Builtin
instead ofKeyword.Type
(#2136) - PHP: fix
\"$var\"
inside strings (#2105) - Python: only recognize
\N
,\u
and\U
escape sequences
in string literals, but not in bytes literals where they are
not supported (#2204) - Tcl: support
${name}
variables (#2145) - Terraform: accept leading whitespace for
<<
heredoc delimiters (#2162) - Teraterm: Various improvements (#2165)
- Spice: add support for the recently added features including more builtin functions and bin, oct, hex number formats (#2206)
-
Added styles:
-
Pygments now tries to use the
importlib.metadata
module to discover plugins instead of the slowerpkg_resources
(#2155). In particular, this largely speeds up thepygmentize
script when the lexer is not specified.importlib.metadata
is only available in the Python standard library since Python 3.8. For older versions, there exists animportlib_metadata
backport on PyPI. For this reason, Pygments now defines a packaging extraplugins
, which adds a requirement onimportlib_metadata
if the Python version is older than 3.8. Thus, in order to install Pygments with optimal plugin support even for old Python versions, you should do:pip install pygments[plugins]
Pygments still falls back on
pkg_resources
if neitherimportlib.metadata
norimportlib_metadata
is found, but it will be slower. -
Silently ignore
BrokenPipeError
in the command-line interface
(#2193). -
The
HtmlFormatter
now uses thelinespans
attribute foranchorlinenos
if thelineanchors
attribute is unset (#2026). -
The
highlight
,lex
andformat
functions no longer wrongly report "argument must be a lexer/formatter instance, not a class" in some cases where this is not the actual problem (#2123). -
Fix warnings in doc build (#2124).
-
The
codetagify
filter now recognizesFIXME
tags by default (#2150). -
The
pygmentize
command now recognizes if theCOLORTERM
environment variable is set to a value indicating that true-color support is available. In that case, it uses theTerminalTrueColorFormatter
by default (#2160) -
Remove redundant caches for filename patterns (#2153)
-
Use new non-deprecated Pillow API for text bounding box in
ImageFormatter
(#2198) -
Stop treating
DeprecationWarnings
as errors in the unit tests (#2196)