pytest-dev / pytest

The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
https://pytest.org
MIT License
12.02k stars 2.67k forks source link

Use richer colors pygments terminal formatter? #11666

Open bluetech opened 10 months ago

bluetech commented 10 months ago

pytest currently uses pygments' TerminalFormatter. While reviewing a PR I've noticed that pygments also has Terminal256Formatter and TerminalTrueColorFormatter which presumably have richer colors than TerminalFormatter. Maybe if we use them we'll get better syntax highlighting.

pygments cmdline tool seems to use the following logic for selecting a formatter:

            if os.environ.get('COLORTERM','') in ('truecolor', '24bit'):
                fmter = TerminalTrueColorFormatter(**parsed_opts)
            elif '256' in os.environ.get('TERM', ''):
                fmter = Terminal256Formatter(**parsed_opts)
            else:
                fmter = TerminalFormatter(**parsed_opts)

https://github.com/pygments/pygments/blob/861fb9131b13241d7ea700fba8f6a38cf6f97285/pygments/cmdline.py#L448-L453C57

bluetech commented 10 months ago

cc @BenjaminSchubert -- I haven't had time to check it yet but maybe you're interested.