Для меня это не имеет отношения об автоматическом коде завершения, соответствие круглой скобке или показ некоторой необычной панели инструмента. Вместо этого это примерно разрешение мне видеть код.
Со всеми панелями, окружающими Вас, область, Вы используете, чтобы на самом деле записать, что код становится слишком маленьким.
В этом случается, Сдвиг + Высокий звук + Входят входит к спасению и получает окно кода в фокусе в полноэкранный режим. Поразите его снова, и у Вас есть все панели назад.
Да, вы переходите к рекурсии, потому что ссылка $ block
в блоке сценария, переданном в функцию B, оценивается в контексте функции B и, как результат, оценивается как значение параметра B $ block
.
Если вы не хотите изменять имя параметра (не вините себя), вы можете заставить PowerShell создать новое замыкание в A для захвата значения $ block в функции A, например:
function A($block)
{
B {Write-Host 2; &$block}.GetNewClosure()
}
function B($block)
{
Write-Host 1
&$block
}
A {Write-Host 3}