Как заставить приглашение prompt_toolkit предоставлять завершения до нажатия клавиши? - PullRequest
0 голосов
/ 12 июня 2019

Функция подсказки в python prompt_toolkit может использоваться со строкой по умолчанию, которая появляется в подсказке, как если бы пользователь ее набрал.

defaultWord = u"cat"
prompt( u"Enter a word", completer=SomeCompleter, default=defaultWord)

Я обнаружил, что, хотя default установлено, меню завершения не открывается, как если бы пользователь его набрал. Вы должны нажать хотя бы одну клавишу, чтобы это сделать.

Есть ли способ заставить меню завершения отображаться до того, как пользователь нажал клавишу?

1 Ответ

1 голос
/ 03 июля 2019

Если вы используете PromptSession, вы можете использовать аргумент pre_run для PromptSession.prompt:

from prompt_toolkit import PromptSession
from prompt_toolkit.completion import WordCompleter
completer = WordCompleter([u"Hello", u"World"])
session = PromptSession(u"> ", completer=completer)
session.prompt(pre_run=session.default_buffer.start_completion)
...