Я пишу функцию, которая использует минибуфер и требует несколько иной стиль завершения, который может потребовать удаления некоторых символов. Например:
ar<tab> -> artist:
artist:ba<tab> -> artist:'Johann Sebastian Bach'
artist:'Johann Sebastian Bach'<tab> -> artist:'Bela Bartók'
artist:'Bela Bartók' and album:<tab>
etc...
Я уже написал функцию завершения, которая генерирует список возможных строк для текущего ввода, но я не могу использовать его с completing-read
и completion-table-dynamic
, потому что отображаются только альтернативы, которые не требуют удаления. В этом случае только первый шаг, от ar до artist .
Чтобы выполнить эту работу, я рассматриваю возможность использования нижнего уровня (read-from-minibuffer)
с настраиваемой раскладкой клавиш для завершения и отображения альтернатив. Есть ли более простое решение? Если нет, какие функции предназначены для обработки отображаемого и циклического перемещения по буферу Завершения ?
Спасибо!
РЕДАКТИРОВАТЬ: В конце концов, я свернул свой собственный. Вот код , если кому-то интересно.