Новый атрибут ArgumentCompletions в PowerShell Core 6.0


На днях добавил новый атрибут ArgumentCompletions в PowerShell Core 6.0.

Когда он полезен? Хорошим примером служит параметер -Format командлета Get-Date , который теперь его использует.

Этот параметер может принимать стандартные значения  FileDate,  FileDateUniversal,  FileDateTime,  FileDateTimeUniversal, а также форматные строки вида «yyyyMMdd». Чтобы реализовать автоподстановку стандартных значений по Tab (tab completion или IntelliSense), применить атрибут ValidateSet не представляется возможным: он запретит форматные строки.

Единственным вариантом в версии 5 было — реализовать и зарегистрировать свой обработчик на основе IArgumentComplete. Но это достаточно громоздкое решение.

Теперь вы можете сделать так:

[parameter]
[ArgumentCompletions("FileDate", "FileDateUniversal", "ileDateTime", "FileDateTimeUniversal" )]
<span 				data-mce-type="bookmark" 				id="mce_SELREST_start" 				data-mce-style="overflow:hidden;line-height:0" 				style="overflow:hidden;line-height:0" 			></span>Format

Теперь если вы наберете Get-Date -Format и нажмете Tab, то заработает подстановка стандартных значений.
Вы сможете это попробовать уже в Beta.8 через несколько дней и это будет работать в ваших скриптах и скопилированных командлетах в PowerShell Core 6.0 RTM.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: