Skip to content

Commit 5e0e7ac

Browse files
committed
feat: add clear_display keymap (\C-\M-l)
1 parent 5943350 commit 5e0e7ac

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

Lib/_pyrepl/commands.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,13 @@ def do(self) -> None:
135135
r.dirty = True
136136

137137

138+
class clear_display(Command):
139+
def do(self) -> None:
140+
r = self.reader
141+
r.console.clear_all()
142+
r.dirty = True
143+
144+
138145
class refresh(Command):
139146
def do(self) -> None:
140147
self.reader.dirty = True

Lib/_pyrepl/reader.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,14 @@ def make_default_commands() -> dict[CommandName, type[Command]]:
7575
(r"\<return>", "accept"),
7676
(r"\C-k", "kill-line"),
7777
(r"\C-l", "clear-screen"),
78+
(r"\C-\M-l", "clear-display"),
7879
(r"\C-m", "accept"),
7980
(r"\C-t", "transpose-characters"),
8081
(r"\C-u", "unix-line-discard"),
8182
(r"\C-w", "unix-word-rubout"),
8283
(r"\C-x\C-u", "upcase-region"),
8384
(r"\C-y", "yank"),
84-
*(() if sys.platform == "win32" else ((r"\C-z", "suspend"), )),
85+
*(() if sys.platform == "win32" else ((r"\C-z", "suspend"),)),
8586
(r"\M-b", "backward-word"),
8687
(r"\M-c", "capitalize-word"),
8788
(r"\M-d", "kill-word"),
@@ -226,11 +227,12 @@ class RefreshCache:
226227
dimensions: tuple[int, int] = field(init=False)
227228
invalidated: bool = False
228229

229-
def update_cache(self,
230-
reader: Reader,
231-
screen: list[str],
232-
screeninfo: list[tuple[int, list[int]]],
233-
) -> None:
230+
def update_cache(
231+
self,
232+
reader: Reader,
233+
screen: list[str],
234+
screeninfo: list[tuple[int, list[int]]],
235+
) -> None:
234236
self.screen = screen.copy()
235237
self.screeninfo = screeninfo.copy()
236238
self.pos = reader.pos
@@ -309,7 +311,7 @@ def calc_screen(self) -> list[str]:
309311
pos = self.pos
310312
pos -= offset
311313

312-
prompt_from_cache = (offset and self.buffer[offset - 1] != "\n")
314+
prompt_from_cache = offset and self.buffer[offset - 1] != "\n"
313315

314316
if self.can_colorize:
315317
colors = list(gen_colors(self.get_unicode()))
@@ -672,8 +674,9 @@ def do_cmd(self, cmd: tuple[str, list[str]]) -> None:
672674

673675
def run_hooks(self) -> None:
674676
threading_hook = self.threading_hook
675-
if threading_hook is None and 'threading' in sys.modules:
677+
if threading_hook is None and "threading" in sys.modules:
676678
from ._threading_handler import install_threading_hook
679+
677680
install_threading_hook(self)
678681
if threading_hook is not None:
679682
try:

0 commit comments

Comments
 (0)