Skip to content

Releases: pygments/pygments

2.21.0

Choose a tag to compare

@Anteru Anteru released this 17 Aug 08:04
  • 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#:
      • Recognize interpolated verbatim strings with either $@ or @$
        prefixes (#2685)
      • Support dollar-prefixed and multi-quote raw strings (#3129, #2897)
      • Recognize union (#3182)
    • C/C++:
      • Add C23/C++26 attributes (#3084)
      • Add more C2Y keywords (#3092)
      • Highlight a function following a namespace body (#2928)
      • Fix C/C++ lexer support for multiline pre-processor comments (#3051)
      • Add .ipp as a file extension (#3141, #1008)
    • Clojure: Recognize named, octal and unicode character literals such as
      \space and \o377 as 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 as template, class and namespace (#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 arguments object (#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, so Foo?, and a?:b tokenize correctly (#2964)
    • Kusto: Recognize member-access dots in dynamic objects (#2779)
    • Lua: Various improvements (#3143)
    • Macaulay2: Update symbols to 1.26.05 (#3120)
    • Markdown:
      • Highlight bold-italics (***...*** and ___...___) (#3067)
      • Fix mention regex to support hyphens in usernames (#3139, #3135)
    • Markdown, reStructuredText, TiddlyWiki5: Fix wrong token offsets for
      embedded code blocks (#3133)
    • Mathematica: Recognize \[Name] named-character escapes such as
      \[Nu] instead of emitting an Error token (#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:
      • Recognize sentinel (#3114)
      • Recognize frozendict (#3119)
      • Recognize lazy imports (#3115)
    • 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 func a keyword in class func type methods (#1125)
    • Tcl: Stop $name variable 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 module as a keyword when followed by
      whitespace, so identifiers like modules and module.exports
      are highlighted correctly (#2823)
    • Vala: Recognize verbatim strings before ordinary quoted strings (#2861)
    • Vala: Recognize conditional compilation directives (#2858)
    • Vim:
      • Bump the syntax file to vim 9.2 (#3183, #3174)
      • Small improvements to the VimScript lexer (#3173)
    • YAML: Add yml alias (#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:

  • Fix catastrophic backtracking in looks_like_xml (#2931, #3112)

  • Improve monokai theme colors (#3100)

  • Improve handling of non-string types in html_escape to fix broken clients (#3090, #3086)

  • LaTeX formatter: honor the wrapped lexer's stripnl and other input
    options when escapeinside is set, so blank lines are no longer stripped
    under stripnl=false (#2975)

  • RawTokenFormatter: fix a crash when error_color is 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 -L values report success (#3217)

  • Allow transparent as a color style definition (#3180, #3170)

  • HtmlFormatter: " and ' now render literally (#3185)

2.20.0

Choose a tag to compare

@Anteru Anteru released this 29 Mar 13:30
  • New lexers:

  • 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 .xbrl as 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 onedark style to support more token types (#2977)

  • Update rtt style to support more token types (#2895)

  • Cache entry points to improve performance (#2979)

  • Fix xterm-256 color table (#3043)

  • Fix kwargs dictionary getting mutated on each call (#3044)

2.19.2

Choose a tag to compare

@Anteru Anteru released this 21 Jun 13:39
  • Lua: Fix regression introduced in 2.19.0 (#2882, #2839)

2.19.1

Choose a tag to compare

@Anteru Anteru released this 06 Jan 17:27
  • Updated lexers:

    • Ini: Fix quoted string regression introduced in 2.19.0
    • Lua: Fix a regression introduced in 2.19.0

2.19.0

Choose a tag to compare

@Anteru Anteru released this 05 Jan 14:12
  • New lexers:

  • Updated lexers:

    • BQN: Various improvements (#2789)
    • C#: Fix number highlighting (#986, #2727), add file keyword (#2726, #2805, #2806), add various other keywords (#2745, #2770)
    • CSS: Add revert (#2766, #2775)
    • Debian control: Add Change-By field (#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 EXPLAIN keywords (#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 staticcall and extcall (#2719)
  • Mark file extensions for HTML/XML+Evoque as aliases (#2743)
  • Add a color for Operator.Word to the rrt style (#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

Choose a tag to compare

@Anteru Anteru released this 04 May 13:43
  • New lexers:

  • Updated lexers:

    • Awk: recognize ternary operator (#2687)
    • Bash: add openrc alias (#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 uninstantiation keyword and recognize
      escape sequences (#2619)
    • Macaulay2: Update to 1.23 (#2655)
    • Python: fix highlighting of soft keywords before None/True/False
    • reStructuredText: use Token.Comment for comments instead of
      Comment.Preproc (#2598)
    • Rust: highlight :, :: and -> as Punctuation
      and whitespace as Whitespace, instead of Text
      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-* in variant_langs (#2647)
    • Xtend: Add val and var (#2602)
  • New styles:

  • Make background colors in the image formatter work with Pillow 10.0 (#2623)

  • Require Python 3.8. As a result, the importlib-metadata package
    is no longer needed for fast plugin discovery on Python 3.7.
    The plugins extra (used as, e.g., pip install pygments[plugins])
    is kept for backwards compatibility but now has no effect. (#2601)

  • Require the url attribute 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 required version_added lexer attribute, instead of a
    .. versionadded:: directive in the docstring (#2589, #2634)

  • The url attribute 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)

  • Add \sa0 keyword in the RTF formatter (#1111, #2607)

  • Register pycon as 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__ to Formatter to improve typing support (#2665)

2.17.2

Choose a tag to compare

@Anteru Anteru released this 21 Nov 20:44
  • Fix a packaging issue on macOS (#2593)

2.17.1

Choose a tag to compare

@Anteru Anteru released this 19 Nov 08:21
  • Updated lexers:

    • TOML: Fix bug making lexing of single-quoted strings too eager

2.17.0

Choose a tag to compare

@Anteru Anteru released this 18 Nov 13:41
  • New lexers:

  • Updated lexers:

    • Cypher: fix comment matching, add missing keywords (#2504)
    • Fortran: add elseif keyword (#2528)
    • Lean: make it available as lean3, in preparation for a possible switch to lean highlighting 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 and keyword, remove value from keywords (#2521)
    • Python: add starlark and bazel aliases (#2517, #2516)
    • Snowball: Treat len like size (#2508)
    • Spice: add panic keyword 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_filter in the documentation (#2519)

  • Add a Lean3Lexer alias (#2546)

  • The pygments.styles module contains a new STYLES variable with a dictionary of built-in styles. The old STYLE_MAP variable, 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:cmdline for more details. (#2505)

  • Support more file types in autopygmentize script (#2513)

  • Change color of numbers in rrt style (#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 have pygments in their file names instead of Pygments. (#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)

2.16.1

Choose a tag to compare

@Anteru Anteru released this 06 Aug 15:15
  • Fix native style missing from style list (#2484)