расширение табуляции не завершается, если оно переопределено
-
21-09-2019 - |
Вопрос
В tabexpansion
функция работает только частично, когда я переопределяю ее следующим образом:
function tabexpansion {
param($line, $lastWord)
if ($line -eq "hey ") {
"you", "Joe"
}
}
Пользовательские завершения работают так, как ожидалось, но теперь я получаю только поведение автозаполнения по умолчанию для имен командлетов, а не параметров.Итак Новое-ВКЛАДКА работает нормально, но Новый псевдоним -ВКЛАДКА не делает.Как мне также получить регулярные завершения после переопределения tabexpansion
?
Решение
Имя файла и расширение командлета обрабатываются в самой командной оболочке, если функция ничего с ними не делает.Все остальное, включая статические элементы, параметры командлетов и c.обрабатывается функцией.Если вы взглянете на Function:TabExpansion
там происходит довольно много событий, которые вы, возможно, захотите сохранить, если хотите, чтобы другие функции завершения вкладок все еще работали.