AutoCompleter

AutoCompleter — это компонент, отвечающий за интерактивное автодополнение команд. Он улучшает пользовательский опыт, предлагая подсказки и завершая ввод на основе истории команд, что ускоряет работу и снижает вероятность опечаток.


Инициализация

__init__(self,
         history_filename: str | None = None,
         autocomplete_button: str = "tab",
         command_highlighting: bool = True,
         auto_suggestions: bool = True) -> None:

Создаёт и настраивает экземпляр AutoCompleter.

  • history_filename: Имя файла для сохранения истории команд. Если указано, история будет сохраняться между сессиями. При значении None история хранится только в контексте сессии.

  • autocomplete_button: Клавиша, активирующая автодополнение. По умолчанию — Tab.

  • command_highlighting: Если True, то в реальном времени при вводе команды она будет подсвечиваться: зелёным, если такой триггер существует и красный, если нет.

  • auto_suggestions: Если True, то дополнение до раннее введённой команды будет сразу отображаться светло-серым в строке ввода.


Назначение и возможности

Основные возможности AutoCompleter:

  • Автодополнение по истории: При нажатии клавиши автодополнения (по умолчанию Tab) система ищет в истории команды, начинающиеся с уже введённого текста.

  • Общий префикс: Если найдено несколько команд с общим префиксом, будет подставлена только общая часть. Например, для команд show_users и show_profile при вводе sho и нажатии Tab ввод дополнится до show_.

  • Постоянная история: Если указан history_filename, история команд сохраняется в файл при выходе и загружается при следующем запуске. Это делает автодополнение со временем «умнее».

  • Настройка клавиши: Клавишу автодополнения можно изменить с помощью параметра autocomplete_button.


Пример использования

AutoCompleter передаётся как аргумент при инициализации App.

 1from argenta import App
 2from argenta.app import AutoCompleter
 3
 4# Setting up autocompletion with saving history to a file
 5my_autocompleter = AutoCompleter(history_filename="argenta_history.txt")
 6
 7# Passing the configured autocompleter to the application
 8app = App(autocompleter=my_autocompleter)
 9
10# ... the rest of the application logic