Как отобразить меню выбора в xonsh? - PullRequest
0 голосов
/ 21 мая 2019

Я хотел бы отобразить меню выбора в оболочке 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 кажетсячтобы знать о выбранных элементах, но меню не отображается, и появляется сообщение об ошибке:

Almost working menu

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

В обычном приложении с подсказками для подсказок это будет делать то, что я хочу: 101

https://python -prompt-toolkit.readthedocs.io / ru / master / pages / ask_for_input.html # autocompletion

Working menu in regular ptk

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

...