Как отобразить меню выбора в 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

Рабочее меню в обычном птк

¹ _ За исключением того, что меню завершения должно отображаться сразу, а не после того, как пользователь набрал первую букву. _

0 ответов

Другие вопросы по тегам