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