2010-04-15 3 views
0

Я пытаюсь переопределить и реализовать свой собственный 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?

+0

Это удар. Вы должны указать ошибку при подключении, независимо от того, находите ли вы обходное решение: -/ – Jaykul

+0

Это даже не работает: function tabexpansion {(Get-Variable psise) .Value.CurrentFile.Editor.Text} – Jaykul

+0

Да, я не знаю, что там происходит, но они каким-то образом выполняют эту функцию табуксинга в странном замороженном контексте. Даже это не помогает: function get-text {$ psise.CurrentFile.Editor.Text} function tabexpansion {get-text} ... get-text работает правильно, если вы запустите его вручную. Но когда вы нажимаете вкладку, вы всегда получаете то, что получили в последний раз, когда вы запускали get-text вручную, независимо от того, какая вкладка файла открыта. – Jaykul

ответ

0

Как отмечено в комментариях, это, как представляется, является ошибкой в ​​PowerShell ISE. Был отправлен элемент Microsoft Connect.

Смежные вопросы