Сообщить об ошибке.

Функции автодополнения модуля readline

Создание пользовательского автодополнения строки ввода

Следующие функции относятся к реализации пользовательской функции автозавершения вводимых слов. Обычно автодополнение выполняется клавишей Tab и автоматически завершает вводимое слово. По умолчанию модуль readline настроен для использования rlcompleter для завершения идентификаторов Python для интерактивного интерпретатора. Если модуль readline должен использоваться с пользовательским завершением, то у него должен быть установлен другой набор слов-разделителей.

Содержание:


readline.set_completer([function]):

Функция readline.set_completer() устанавливает или удаляет завершающую функцию. Если функция указана, она будет использоваться в качестве новой завершающей функции, если она опущена или None, любая ранее установленная завершающая функция удаляется.

Пользовательская функция завершения слов должна вызывается как function(text, state), для состояния в 0, 1, 2,..., пока она не возвратит строковое значение. Она должна возвращать возможное дополнение слова, которое начиная с символов text.

Установленная функция дополнения слов вызывается обратным вызовом entry_func, переданным rl_completion_matches() в базовую библиотеку. Строка text приходит от первого параметра обратного вызова rl_attempted_completion_function базовой библиотеки.

readline.get_completer():

Функция readline.get_completer() возвращает установленную функцию завершения слов или возвратит None, если функция завершения не была установлена.

readline.get_completion_type():

Функция readline.get_completion_type() возвращает тип выполняемого завершения. Функция возвращает переменную rl_completion_type в базовой библиотеке в виде целого числа.

readline.get_begidx(),
readline.get_endidx()
:

Функции возвращают начальный readline.get_begidx() или конечный readline.get_endidx() индекс области завершения. Эти индексы являются начальным и конечным аргументами, передаваемыми обратному вызову rl_attempted_completion_function базовой библиотеки.

readline.set_completer_delims(string),
readline.get_completer_delims()
:

Функция устанавливает readline.set_completer_delims() или получает readline.get_completer_delims() разделители слов string для завершения. Они определяют начало слова, которое должно рассматриваться для завершения (область завершения). Эти функции обращаются к rl_completer_word_break_characters переменной в базовой библиотеке.

readline.set_completion_display_matches_hook([function]):

Функция readline.set_completion_display_matches_hook() устанавливает или удаляет функцию вывода дополнения в консоль. Если указана функция, она будет использоваться как функция вывода нового дополнения, если function опушена или None любая установленная ранее функция вывода дополнения удаляется.

Функция readline.set_completion_display_matches_hook() устанавливает или очищает обратный вызов rl_completion_display_matches_hook в базовой библиотеке. Функция вывода дополнения вызывается как function(substitution, [matches], longest_match_length) один раз, каждый раз, когда требуется отобразить совпадения.


Примеры смотрите в ознакомительном материале по модулю readline, а так же в разделе "Примеры использования модуля readline".