Files
Argenta/docs/root/api/app/autocompleter.rst
T
2025-11-21 21:09:29 +03:00

50 lines
3.0 KiB
ReStructuredText

.. _root_api_app_autocompleter:
AutoCompleter
=====================
``AutoCompleter`` — это компонент, отвечающий за интерактивное автодополнение команд. Он улучшает пользовательский опыт, предлагая подсказки и завершая ввод на основе истории команд, что ускоряет работу и снижает вероятность опечаток.
-----
Инициализация
-------------
.. code-block:: python
__init__(self, history_filename: str | None = None,
autocomplete_button: str = "tab") -> None
Создаёт и настраивает экземпляр ``AutoCompleter``.
* ``history_filename``: Имя файла для сохранения истории команд. Если указано, история будет сохраняться между сессиями. При значении ``None`` история хранится только в контексте сессии.
* ``autocomplete_button``: Клавиша, активирующая автодополнение. По умолчанию — **Tab**.
-----
Назначение и возможности
-------------------------
Основные возможности ``AutoCompleter``:
* **Автодополнение по истории**: При нажатии клавиши автодополнения (по умолчанию **Tab**) система ищет в истории команды, начинающиеся с уже введённого текста.
* **Общий префикс**: Если найдено несколько команд с общим префиксом, будет подставлена только общая часть. Например, для команд ``show_users`` и ``show_profile`` при вводе ``sho`` и нажатии **Tab** ввод дополнится до ``show_``.
* **Постоянная история**: Если указан ``history_filename``, история команд сохраняется в файл при выходе и загружается при следующем запуске. Это делает автодополнение со временем «умнее».
* **Очистка истории**: При сохранении ``AutoCompleter`` удаляет дубликаты и несуществующие команды, поддерживая историю в актуальном состоянии.
* **Настройка клавиши**: Клавишу автодополнения можно изменить с помощью параметра ``autocomplete_button``.
-----
Пример использования
--------------------
``AutoCompleter`` передаётся как аргумент при инициализации `App`.
.. literalinclude:: ../../../code_snippets/autocompleter/snippet.py
:language: python
:linenos: