Releases: pygments/pygments
Release list
2.21.0
-
New lexers:
-
Updated lexers:
- Bash: Fix coloured keyword at the beginning of a name (#2926)
- Boogie: Add missing Boogie and Civl Verifier keywords (#3156)
- C#:
- C/C++:
- Clojure: Recognize named, octal and unicode character literals such as
\spaceand\o377as a single token (#979) - Csound: Add missing opcode parameter type letter (#3161)
- CUDA: Derive from the C++ lexer instead of C to highlight C++
constructs such astemplate,classandnamespace(#3127) - D: Allow non-ASCII (Unicode) identifiers (#1088)
- Fish: Fix single quote backslash escape (#3138, #2821)
- Go: Various lexer improvements (#3199)
- GoogleSQL: Require a word break after
SET(#3167) - Hexdump: Only match valid digits (#3200, #2847)
- JavaScript: Highlight the
argumentsobject (#3146) - Jsonnet: Recognize colons in array slice expressions (#2828)
- JSX: Allow apostrophes in element text (#2816)
- Julia: Fix rstrings backslash (#3140, #2537)
- Kotlin: Support companion objects without an explicit name (#2525)
- Kotlin: Don't let a nullable type marker (
?) consume the following
character, soFoo?,anda?:btokenize correctly (#2964) - Kusto: Recognize member-access dots in dynamic objects (#2779)
- Lua: Various improvements (#3143)
- Macaulay2: Update symbols to 1.26.05 (#3120)
- Markdown:
- Markdown, reStructuredText, TiddlyWiki5: Fix wrong token offsets for
embedded code blocks (#3133) - Mathematica: Recognize
\[Name]named-character escapes such as
\[Nu]instead of emitting anErrortoken (#3097) - MATLAB, Octave, Scilab: Allow
...line continuations in function
definition signatures (#659) - MySQL: Require a word break after
SET(#3110) - PostgreSQL: Add more keywords (#3066)
- Python:
- reStructuredText: Allow
.and+in directive/role names (#3085) - Ruby: Don't duplicate the body of an unterminated heredoc (#2998)
- Ruby: Treat
<<after),]or}as the shift operator
rather than the start of a heredoc (#760) - SCSS: Recognize variable references in property values (#2818)
- Shell: Recognize chevron prompts (#3096)
- Smithy: Fix text blocks and add missing syntax (#3168)
- Swift: Keep
funca keyword inclass functype methods (#1125) - Tcl: Stop
$namevariable references at a dash (#1720) - TeX: Recognize LaTeX math environments as math (#3034)
- Twig: Allow uppercase letters at the start of identifiers (#3159, #2965)
- TypeScript: Only treat
moduleas a keyword when followed by
whitespace, so identifiers likemodulesandmodule.exports
are highlighted correctly (#2823) - Vala: Recognize verbatim strings before ordinary quoted strings (#2861)
- Vala: Recognize conditional compilation directives (#2858)
- Vim:
- YAML: Add
ymlalias (#3169), recognize non-breaking spaces as valid
scalar content (#2827) - WebAssembly: Recognize sign-extension operators (#2991, #3160)
- XML: Mark SVG files as XML (#3093)
-
New styles:
- Night Owl (#3132)
-
Fix catastrophic backtracking in
looks_like_xml(#2931, #3112) -
Improve monokai theme colors (#3100)
-
Improve handling of non-string types in
html_escapeto fix broken clients (#3090, #3086) -
LaTeX formatter: honor the wrapped lexer's
stripnland other input
options whenescapeinsideis set, so blank lines are no longer stripped
understripnl=false(#2975) -
RawTokenFormatter: fix a crash when
error_coloris set (#3215) -
Groff formatter: don't duplicate a character when word-wrapping (
wrap)
a token that is not at the end of a line (#3201) -
Add support for Python 3.15 (#3099)
-
Fix invalid
-Lvalues report success (#3217) -
Allow
transparentas a color style definition (#3180, #3170) -
HtmlFormatter:
"and'now render literally (#3185)
2.20.0
-
New lexers:
- Rell (#2914)
-
Updated lexers:
- archetype: Fix catastrophic backtracking in GUID and ID patterns (#3064)
- ASN.1: Recognize minus sign and fix range operator (#3014, #3060)
- C++: Add C++26 keywords (#2955), add integer literal suffixes (#2966)
- ComponentPascal: Fix
analyse_text(#3028, #3032) - Coq renamed to Rocq (#2883, #2908)
- Cython: Various improvements (#2932, #2933)
- Debian control: Improve architecture parsing (#3052)
- Devicetree: Add support for overlay/fragments (#3021), add bytestring support (#3022), fix catastrophic backtracking (#3057)
- Fennel: Various improvements (#2911)
- Haskell: Handle escape sequences in character literals (#3069, #1795)
- Java: Add module keywords (#2955)
- Lean4: Add operators
]',]?,]!(#2946) - LESS: Support single-line comments (#3005)
- LilyPond: Update to 2.25.29 (#2974)
- LLVM: Support C-style comments (#3023, #2978)
- Lua(u): Fix catastrophic backtracking (#3047)
- Macaulay2: Update to 1.25.05 (#2893), 1.25.11 (#2988)
- Mathematica: Various improvements (#2957)
- meson: Add additional operators (#2919)
- MySQL: Update keywords (#2970)
- org-Mode: Support both schedule and deadline (#2899)
- PHP: Add
__PROPERTY__magic constant (#2924), add reserved keywords (#3002) - PostgreSQL: Add more keywords (#2985)
- protobuf: Fix namespace tokenization (#2929)
- Python: Add
t-string support (#2973, #3009, #3010) - Tablegen: Fix infinite loop (#2972, #2940)
- Tera Term macro: Add commands introduced in v5.3 through v5.6 (#2951)
- TOML: Support TOML 1.1.0 (#3026, #3027)
- Turtle: Allow empty comment lines (#2980)
- XML: Added
.xbrlas file ending (#2890, #2891)
-
Drop Python 3.8, and add Python 3.14 as a supported version (#2987, #3012)
-
Various improvements to
autopygmentize(#2894) -
Update
onedarkstyle to support more token types (#2977) -
Update
rttstyle to support more token types (#2895) -
Cache entry points to improve performance (#2979)
-
Fix
xterm-256color table (#3043) -
Fix
kwargsdictionary getting mutated on each call (#3044)
2.19.2
2.19.1
2.19.0
-
New lexers:
-
Updated lexers:
- BQN: Various improvements (#2789)
- C#: Fix number highlighting (#986, #2727), add
filekeyword (#2726, #2805, #2806), add various other keywords (#2745, #2770) - CSS: Add
revert(#2766, #2775) - Debian control: Add
Change-Byfield (#2757) - Elip: Improve punctuation handling (#2651)
- Igor: Add
int(#2801) - Ini: Fix quoted strings with embedded comment characters (#2767, #2720)
- Java: Support functions returning types containing a question mark (#2737)
- JavaScript: Support private identiiers (#2729, #2671)
- LLVM: Add
splat, improve floating-point number parsing (#2755) - Lua: Improve variable detection, add built-in functions (#2829)
- Macaulay2: Update to 1.24.11 (#2800)
- PostgreSQL: Add more
EXPLAINkeywords (#2785), handle/(#2774) - S-Lexer: Fix keywords (#2082, #2750)
- TransactSQL: Fix single-line comments (#2717)
- Turtle: Fix triple quoted strings (#2744, #2758)
- Typst: Various improvements (#2724)
- Various: Add
^as an operator to Matlab, Octave and Scilab (#2798) - Vyper: Add
staticcallandextcall(#2719)
- Mark file extensions for
HTML/XML+Evoqueas aliases (#2743) - Add a color for
Operator.Wordto therrtstyle (#2709) - Fix broken link in the documentation (#2803, #2804)
- Drop executable bit where not needed (#2781)
- Reduce Mojo priority relative to Python in ``analyze_text´` (#2771, #2772)
- Fix documentation builds (#2712)
- Match example file names to the lexer's name (#2713, #2715)
- Ensure lexer metadata is present (#2714)
- Search more directories on macOS for fonts (#2809)
- Improve test robustness (#2812)
2.18.0
-
New lexers:
-
Updated lexers:
- Awk: recognize ternary operator (#2687)
- Bash: add
openrcalias (#2599, #2371) - Coq: add keywords, lex more vernacular command arguments, produce
fewer tokens on heading comments (#2678) - DNS zone files: Fix comment parsing (#2595)
- Hy: Support unicode literals (#1126)
- Inform6: Update to Inform 6.42 (#2644)
- lean: Fix name handling (#2614)
- Logtalk: add
uninstantiationkeyword and recognize
escape sequences (#2619) - Macaulay2: Update to 1.23 (#2655)
- Python: fix highlighting of soft keywords before
None/True/False - reStructuredText: use
Token.Commentfor comments instead of
Comment.Preproc(#2598) - Rust: highlight
:,::and->asPunctuation
and whitespace asWhitespace, instead ofText
in both cases (#2631) - Spice: Add keywords (#2621)
- SQL Explain: allow negative numbers (#2610)
- Swift: Support multiline strings (#2681)
- ThingsDB: add constants and new functions; support template
strings (#2624) - UL4: support nested
<?doc?>and<?note?>tags (#2597) - VHDL: support multi-line comments of VHDL-2008 (#2622)
- Wikitext: Remove
kk-*invariant_langs(#2647) - Xtend: Add
valandvar(#2602)
-
New styles:
- Coffee (#2609)
-
Make background colors in the image formatter work with Pillow 10.0 (#2623)
-
Require Python 3.8. As a result, the
importlib-metadatapackage
is no longer needed for fast plugin discovery on Python 3.7.
Thepluginsextra (used as, e.g.,pip install pygments[plugins])
is kept for backwards compatibility but now has no effect. (#2601) -
Require the
urlattribute for lexers inside Pygments, add
it to many lexers (#2588) -
Replace Pyflakes linter with Ruff (#2592)
-
Add macOS CI (#2594)
-
Built-in lexers now declare the version of Pygments in which they were
added in a requiredversion_addedlexer attribute, instead of a
.. versionadded::directive in the docstring (#2589, #2634) -
The
urlattribute is now required for built-in lexers and
has been added to all existing lexers (#2588) -
The RTF formatter supports line number and line highlighting now (#1217, #2654)
-
Register
pyconas an alias for the Python console lexer (#2697) -
Add MIME-Type for
DesktopLexer(#2613) -
Fix native style to meet WCAG AA guidelines (#2600)
-
Fix typo in documentation (#2672)
-
Use format strings consistently (#2661)
-
Add
__class_getitem__toFormatterto improve typing support (#2665)
2.17.2
2.17.1
2.17.0
-
New lexers:
-
Updated lexers:
- Cypher: fix comment matching, add missing keywords (#2504)
- Fortran: add
elseifkeyword (#2528) - Lean: make it available as
lean3, in preparation for a possible switch toleanhighlighting as Lean 4 (#2546) - JSON: add MIME types and file extensions for several line-delimited JSON formats (#2490)
- Nix: many improvements (#2551, #1800)
- OCaml: Add
andkeyword, removevaluefrom keywords (#2521) - Python: add
starlarkandbazelaliases (#2517, #2516) - Snowball: Treat
lenlikesize(#2508) - Spice: add
panickeyword and->operator (#2510) - squid.conf: fix catastrophic backtracking (#2583)
- TOML: rewritten, with many fixes (#2576)
- Turtle: support blank nodes (#2581)
- Wikitext: fix erroneous highlighting of LanguageConverter markup
(#2493), add missing variant languages (#2494) - CMake: support
[=[ bracketed arguments ]=](#2549)
-
Fix ctags support and tests (#2487)
-
Include
Lexer.add_filterin the documentation (#2519) -
Add a
Lean3Lexeralias (#2546) -
The
pygments.stylesmodule contains a newSTYLESvariable with a dictionary of built-in styles. The oldSTYLE_MAPvariable, which uses a different format, is kept for backwards compatibility. -
On Windows, add a new installation extra (
windows-terminal) which pulls in dependencies for colored console output. See :doc:cmdlinefor more details. (#2505) -
Support more file types in
autopygmentizescript (#2513) -
Change color of numbers in
rrtstyle (#2526) -
Fix error when trying to look up plugin formatters by file extension of the output format (#2563)
-
Use Hatchling as a build backend instead of setuptools.
This change is transparent to most users. Distribution packagers who build without build isolation need to add hatchling as a build
dependency and remove setuptools. People downloading source distributions and wheels from PyPI directly should note that they now havepygmentsin their file names instead ofPygments. (#2573) -
Improve the test framework to also check for lost tokens when processing the snippets and example files (#2582.)
-
Improve the Dracula style definition to make it easier to maintain (#2575)