Skip to content

Commit 93dd613

Browse files
committed
Render REPL error overlays in red without a prefix
1 parent f5bd077 commit 93dd613

3 files changed

Lines changed: 10 additions & 10 deletions

File tree

‎Lib/_pyrepl/reader.py‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,6 @@ class Reader:
288288
ps3: str = "|.. "
289289
ps4: str = R"\__ "
290290
kill_ring: list[list[str]] = field(default_factory=list)
291-
error_prefix: str = "! "
292291
msg: str = ""
293292
arg: int | None = None
294293
finished: bool = False
@@ -883,12 +882,11 @@ def debug(self, msg: str) -> None:
883882
pass
884883

885884
def error(self, msg: str = "none") -> None:
886-
error_prefix = self.error_prefix
887885
if self.can_colorize:
888-
t = THEME()
889-
error_prefix = f"{t.error}{error_prefix}{t.reset}"
886+
colors = _colorize.ANSIColors
887+
msg = f"{colors.RED}{msg}{colors.RESET}"
890888
self.console.beep()
891-
self.msg = error_prefix + msg
889+
self.msg = msg
892890
self.invalidate_message()
893891

894892
def update_screen(self) -> None:

‎Lib/test/test_pyrepl/test_reader.py‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from _pyrepl.layout import LayoutMap
1515
from _pyrepl.readline import ReadlineAlikeReader, ReadlineConfig
1616
from _pyrepl.reader import Reader
17-
from _colorize import default_theme
17+
from _colorize import ANSIColors, default_theme
1818

1919

2020
overrides = {"reset": "z", "soft_keyword": "K"}
@@ -467,11 +467,11 @@ def test_colorized_error_message(self):
467467

468468
reader.handle1()
469469

470-
theme = default_theme.syntax
471470
self.assertEqual(
472471
reader.msg,
473-
f"{theme.error}! {theme.reset}nothing to yank",
472+
f"{ANSIColors.RED}nothing to yank{ANSIColors.RESET}",
474473
)
474+
self.assertEqual(reader.screen[-1], reader.msg)
475475

476476
def _test_error_message(
477477
self,
@@ -490,8 +490,8 @@ def _test_error_message(
490490
while not reader.msg:
491491
reader.handle1()
492492

493-
self.assertEqual(reader.msg, f"! {expected}")
494-
self.assertEqual(reader.screen[-1], f"! {expected}")
493+
self.assertEqual(reader.msg, expected)
494+
self.assertEqual(reader.screen[-1], expected)
495495
console.beep.assert_called_once()
496496

497497
def test_invalid_key_message(self):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Display error overlays in the new interactive shell without the ``!`` prefix
2+
and in non-bold red when color is enabled. Patch by Bartosz Sławecki.

0 commit comments

Comments
 (0)