Я пытаюсь переопределить и реализовать свой собственный TabExpansion. В функции я хочу проанализировать содержимое $ psise.CurrentFile.Editor.Text, когда будет сопоставлен определенный критерий $ lastword. Проблема заключается в том, что переменная $ psise.CurrentFile.Editor.Text разрешена к содержимому моей функции TabExpansion, а не к любому тексту на вкладке ISE PowerShell.Функция Tabexpansion не разрешает переменную
Вот простая тестовая функция. Откройте вкладку ISE и вставьте следующее определение функции табуксирования:
function tabexpansion
{ $psise.CurrentFile.Editor.Text }
Запустите скрипт в ISE. Затем откройте другую вкладку в типе ISE какой-нибудь текст и нажмите клавишу табуляции Выход будет
function tabexpansion
{ $psise.CurrentFile.Editor.Text }
Вместо того, чтобы любой текст был на второй вкладке. Есть ли способ получить $ psise.CurrentFile.Editor.Text для разрешения во время выполнения при использовании в функции tabexpansion?
Это удар. Вы должны указать ошибку при подключении, независимо от того, находите ли вы обходное решение: -/ – Jaykul
Это даже не работает: function tabexpansion {(Get-Variable psise) .Value.CurrentFile.Editor.Text} – Jaykul
Да, я не знаю, что там происходит, но они каким-то образом выполняют эту функцию табуксинга в странном замороженном контексте. Даже это не помогает: function get-text {$ psise.CurrentFile.Editor.Text} function tabexpansion {get-text} ... get-text работает правильно, если вы запустите его вручную. Но когда вы нажимаете вкладку, вы всегда получаете то, что получили в последний раз, когда вы запускали get-text вручную, независимо от того, какая вкладка файла открыта. – Jaykul