vypivshiy / ani-cli-ru

Просмотр аниме с русской озвучкой в терминале
GNU General Public License v3.0
139 stars 6 forks source link

[eggella] Как сделать, чтобы текст не прыгал вверх? #37

Closed rumly111 closed 5 months ago

rumly111 commented 6 months ago

Насколько я понял, сейчас клиент старается позиционировать текст в консоли так, чтобы список был посередине экрана. Где и что поменять в коде, чтобы внизу не оставалось пустое место? Как видно на картинке, список длинный, на экран не влезает, но текст всё равно смещается вверх.

screenshot

После того, как напечатался список, слово "~/ongoing" должно оставаться внизу экрана, чтобы больше влезло полезной информации.

Если мой скриншот кажется странным, это потому что я внёс изменение в код, чтобы список из >20 элементов не сокращался.

vypivshiy commented 6 months ago

сейчас клиент старается позиционировать текст в консоли так, чтобы список был посередине экрана

скорее всего надо добрабатывать FuzzyWordCompleter класс из библиотеки promt-toolkit или изворачиваться с помощью каких-нибудь вызовов API терминала. Предполагаю, такое поведение из-за автодополнения

Логика вывода результатов не связана с eggella библиотекой. Вывод реализован в самом клиенте и просто "в лоб" печатает все результаты: anicli/view.py

Эта библиотека написана поверх python-prompt-toolkit для управления вводом (input/prompt) по образу и подобию flask и фреймворков для чатботов на базе декораторной магии, потому что на тот момент времени не было готовых решений по следующим критериям:

rumly111 commented 5 months ago

в общем разобрался. у функции/метода prompt есть параметер reserve_space_for_menu , который по умолчанию 8 . Выходит, дополнительное пространство резервируется для всплывающего меню с вариантами автодополнения. Т.к. мне это не нужно, я выставил reserve_space_for_menu=0 и получил нужное для меня поведение.