mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 18:15:28 +03:00
50 lines
3.0 KiB
ReStructuredText
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:
|