Как отобразить меню выбора в xonsh?
Я хотел бы отобразить меню выбора в оболочке xonsh при каждом нажатии определенной комбинации клавиш, а затем запустить функцию, используя выбор пользователя из меню.
Я дошел до этого:
from prompt_toolkit.keys import Keys
from prompt_toolkit.completion import WordCompleter
@events.on_ptk_create
def outout_keybindings(prompter, history, completer, bindings, **kw):
handler = bindings.add
@handler('escape', 'u') # actually alt+u
def browse_links_handler(event):
compl = WordCompleter(['selection1','selection2', 'selection3', 'selection4'])
usr_sel = prompter.prompt('Enter your selection (TAB-complete): ', completer=compl)
my_process_selection(usr_sel)
Это может, например, пойти в ~/.xonshrc
,
Проблема в том, что мой код приводит к исключению, но в остальном почти работает, так как подсказка показывает, и xonsh, кажется, знает о выбранных элементах, но меню не отображается, и появляется сообщение об ошибке:
Я в порядке с другими решениями для отображения меню выбора и выбора пользователем опции, если это чистый python и не требует взаимодействия с мышью.
В обычном быстром наборе инструментов это будет делать то, что я хочу: ¹
https://python-prompt-toolkit.readthedocs.io/en/master/pages/asking_for_input.html
¹ _ За исключением того, что меню завершения должно отображаться сразу, а не после того, как пользователь набрал первую букву. _