mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
[3.13] gh-120041: Do not use append_to_screen when completions are visible (GH-120042) (#120051)
* gh-120041: Do not use append_to_screen when completions are visible (GH-120042) (cherry picked from commit8fc7653766
) * gh-120041: Refactor check for visible completion menu in completing_reader (GH-120055) (cherry picked from commitbf8e5e53d0
) --------- Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
This commit is contained in:
parent
2acbdc23ad
commit
8d74eae4d4
3 changed files with 52 additions and 10 deletions
|
@ -187,18 +187,20 @@ class complete(commands.Command):
|
|||
if p:
|
||||
r.insert(p)
|
||||
if last_is_completer:
|
||||
if not r.cmpltn_menu_visible:
|
||||
r.cmpltn_menu_visible = True
|
||||
r.cmpltn_menu_visible = True
|
||||
r.cmpltn_message_visible = False
|
||||
r.cmpltn_menu, r.cmpltn_menu_end = build_menu(
|
||||
r.console, completions, r.cmpltn_menu_end,
|
||||
r.use_brackets, r.sort_in_column)
|
||||
r.dirty = True
|
||||
elif stem + p in completions:
|
||||
r.msg = "[ complete but not unique ]"
|
||||
r.dirty = True
|
||||
else:
|
||||
r.msg = "[ not unique ]"
|
||||
r.dirty = True
|
||||
elif not r.cmpltn_menu_visible:
|
||||
r.cmpltn_message_visible = True
|
||||
if stem + p in completions:
|
||||
r.msg = "[ complete but not unique ]"
|
||||
r.dirty = True
|
||||
else:
|
||||
r.msg = "[ not unique ]"
|
||||
r.dirty = True
|
||||
|
||||
|
||||
class self_insert(commands.self_insert):
|
||||
|
@ -208,6 +210,9 @@ class self_insert(commands.self_insert):
|
|||
|
||||
commands.self_insert.do(self)
|
||||
|
||||
if r.cmpltn_menu_visible or r.cmpltn_message_visible:
|
||||
r.calc_screen = r.calc_complete_screen
|
||||
|
||||
if r.cmpltn_menu_visible:
|
||||
stem = r.get_stem()
|
||||
if len(stem) < 1:
|
||||
|
@ -236,6 +241,7 @@ class CompletingReader(Reader):
|
|||
### Instance variables
|
||||
cmpltn_menu: list[str] = field(init=False)
|
||||
cmpltn_menu_visible: bool = field(init=False)
|
||||
cmpltn_message_visible: bool = field(init=False)
|
||||
cmpltn_menu_end: int = field(init=False)
|
||||
cmpltn_menu_choices: list[str] = field(init=False)
|
||||
|
||||
|
@ -271,6 +277,7 @@ class CompletingReader(Reader):
|
|||
def cmpltn_reset(self) -> None:
|
||||
self.cmpltn_menu = []
|
||||
self.cmpltn_menu_visible = False
|
||||
self.cmpltn_message_visible = False
|
||||
self.cmpltn_menu_end = 0
|
||||
self.cmpltn_menu_choices = []
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue