Фильтровать список при наборе текста и выбрать запись - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь создать приложение командной строки / терминала, используя prompt_toolkit , что должно сделать следующее:

  • У меня есть список пар (title, id), который должен быть большим, чтобы уместиться на одном экране, но достаточно маленьким, чтобы уместиться в памяти. Допустим, около 1000 записей.
  • Чтобы выбрать элемент, я начинаю печатать. При наборе - например, «собака» - список фильтруется только для тех записей, в заголовке которых есть «собака».
  • Если список достаточно мал (но не пуст), я бы хотел использовать стрелку ключи для выбора записи.
  • Я хочу, чтобы идентификатор, связанный с этим заголовком.

Я новичок в prompt_toolkit и подхожу к проблеме с обоих концов:

  1. Использование обычного prompt() с автозаполнением: я попытался использовать пользовательский метод завершения для фильтрации своего списка, но не смог его отобразить.
  2. Я проверил примеры виджетов / полноэкранного режима, но документация довольно ограничена. Например, я нашел SearchToolbar, но не смог понять, как он взаимодействует с другими виджетами.
  3. Я не нашел ни одного примера того, как отобразить список для выбора элемента. Есть более сложные примеры, поэтому я ожидал, что это возможно, но потерялся.

Может кто-нибудь указать мне на пример, который решает что-то вроде моего варианта использования или дать мне отправную точку, как подходить это вообще?

...