Подтвердить что ты не робот

Код PowerShell Tidy или Reformat?

Возможный дубликат:
Есть ли форматировщик кода PowerShell/красивый принтер?

Кто-нибудь знает инструмент, который вы можете использовать для переформатирования/выбора кода Powershell: -

Например: -

if ($c -eq "Cat") 
{
$a="Bubble" 
}
else
{
$a="Trouble"
}
Write-Host $a

To: -

if ($c -eq "Cat") 
{
    $a="Bubble" 
}
else
{
    $a="Trouble"
}
Write-Host $a

т.е. tabbing If Statementments и т.д., я знаю, что они были инструментами для этого с VB, но я еще не видел никого для Powershell?

4b9b3361

Ответ 1

Быстрое обновление - теперь это на GitHub: https://github.com/DTW-DanWard/PowerShell-Beautifier В PowerShell я написал мощный очиститель принтера/кода PowerShell. Он очищает пустое пространство, группы кода отступов, заменяет псевдонимы командами, исправляет обсадку на командах, параметрах, типах и т.д. Вы можете использовать его для форматирования файла на месте или для чтения исходного файла и вывода результата в другом файле.

Ответ 2

Быстрый каракули, который работает с вашим кодом:

$tab = '  '
$indent = 0

switch -regex -file ./x.ps1 {
  '{\s*$'   { $tab * $indent++ + $_ }
  '^\s*}'   { $tab * --$indent + $_ }
  '^\s*$'   { "" }
  '[^{}]'   { $tab * $indent + $_ }
}

Нет гарантий надежности. Это может сделать странные вещи с кодом, который сильно использует однострочные блоки или закрывает блок не в отдельной строке. Но кроме этого это может сработать.

Ответ 3

Быстрый тест с Notepad ++ указывает, что макрос TextFX-> TextFX Edit -> Reindent C++ работает по вашему желанию. Не знаю, насколько хорошо он обрабатывает более сложные образцы.

Также обратите внимание, что у NP ++ есть макрос форматирования языка для PowerShell. Несколько неожиданно, редактор PowerGui Script, похоже, не имеет аккуратной функции.

Ответ 4

Если вы используете gvim (и плагины powershell), вы можете легко отступать всю строку своего кода, когда захотите, набрав (когда вы в командном режиме): gg=G

Ответ 5

Возможно, будет сложно найти версию Windows, но проверьте http://www.gnu.org/software/indent/. Вероятно, он отлично справляется с кодом powershell.