From c7b5175d7ff93559cad578ba951250b650aacf82 Mon Sep 17 00:00:00 2001 From: TyYan03 Date: Fri, 8 Dec 2023 17:50:20 -0500 Subject: [PATCH] terminalwriter: Added TrueColor and 256 Formatter. --- src/_pytest/_io/terminalwriter.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/_pytest/_io/terminalwriter.py b/src/_pytest/_io/terminalwriter.py index 934278b93..7f04c0553 100644 --- a/src/_pytest/_io/terminalwriter.py +++ b/src/_pytest/_io/terminalwriter.py @@ -215,13 +215,22 @@ class TerminalWriter: return source else: try: + from pygments.formatters.terminal256 import TerminalTrueColorFormatter + from pygments.formatters.terminal256 import Terminal256Formatter + + if os.environ.get('COLORTERM','') in ('truecolor', '24bit'): + terminal_formatter = TerminalTrueColorFormatter() + elif '256' in os.environ.get('TERM', ''): + terminal_formatter = Terminal256Formatter() + else: + terminal_formatter = TerminalFormatter( + bg=os.getenv("PYTEST_THEME_MODE", "dark"), + style=os.getenv("PYTEST_THEME"), + ) highlighted: str = highlight( source, Lexer(), - TerminalFormatter( - bg=os.getenv("PYTEST_THEME_MODE", "dark"), - style=os.getenv("PYTEST_THEME"), - ), + terminal_formatter, ) return highlighted except pygments.util.ClassNotFound: