TabExpansion2
Вспомогающая функция, которая упаковывает метод CompleteInput() класса commandCompletion, чтобы обеспечить завершение вкладки для сценариев PowerShell.
Синтаксис
ScriptInputSet (По умолчанию)
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Описание
TabExpansion2 — это встроенная функция, которая обеспечивает завершение вкладок для ввода пользователем. PowerShell вызывает эту функцию, когда пользователь нажимает клавишу TAB или CTRL+пробел при вводе команды. Функция возвращает список возможных завершений для текущих входных данных.
TabExpansion2 обычно не вызывается пользователями. Однако это может быть полезно для завершения вкладки тестирования. Чтобы использовать TabExpansion2, необходимо указать текущий входной скрипт и положение курсора в скрипте. Функция возвращает объект CommandCompletion, содержащий список возможных завершений для текущих входных данных. Этот входной скрипт может быть строкой или абстрактным деревом синтаксиса (AST), представляющим скрипт.
Вы можете переопределить поведение по умолчанию TabExpansion2, определив пользовательскую функцию с тем же именем в сеансе PowerShell. Эта пользовательская функция может предоставлять завершения для пользовательских команд или параметров. Хотя можно переопределить TabExpansion2, она не поддерживается. Необходимо создать пользовательскую функцию только в том случае, если необходимо настроить поведение завершения вкладки.
Примеры
Пример 1. Получение завершения вкладки для параметра команды
В этом примере показаны те же результаты, которые вы получите, введя Format-Hex -<Tab> в командной строке PowerShell. Функция TabExpansion2 возвращает объект commandCompletion, содержащий список возможных завершений для маркера -.
TabExpansion2 -inputScript ($s = 'Format-Hex -') -cursorColumn $s.Length |
Select-Object -ExpandProperty CompletionMatches
CompletionText ListItemText ResultType ToolTip
-------------- ------------ ---------- -------
-Path Path ParameterName [string[]] Path
-LiteralPath LiteralPath ParameterName [string[]] LiteralPath
-InputObject InputObject ParameterName [Object] InputObject
-Encoding Encoding ParameterName [string] Encoding
-Raw Raw ParameterName [switch] Raw
-Verbose Verbose ParameterName [switch] Verbose
-Debug Debug ParameterName [switch] Debug
-ErrorAction ErrorAction ParameterName [ActionPreference] ErrorAction
-WarningAction WarningAction ParameterName [ActionPreference] WarningAction
-InformationAction InformationAction ParameterName [ActionPreference] InformationAction
-ErrorVariable ErrorVariable ParameterName [string] ErrorVariable
-WarningVariable WarningVariable ParameterName [string] WarningVariable
-InformationVariable InformationVariable ParameterName [string] InformationVariable
-OutVariable OutVariable ParameterName [string] OutVariable
-OutBuffer OutBuffer ParameterName [int] OutBuffer
-PipelineVariable PipelineVariable ParameterName [string] PipelineVariable
Пример 2. Получение завершения вкладки для значений параметров
В этом примере показано, как получить завершение вкладки для значений параметров. В этом примере предполагается, что параметр этапа имеет три возможных значения, а один из значений — Three. Этот метод можно использовать для проверки завершения вкладки для функции, возвращающей ожидаемые результаты.
function Get-Data {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'Get-Data -Stage ') -cursorColumn $line.Length |
Select-Object -ExpandProperty CompletionMatches
$result.Count -eq 3
$result.CompletionText -contains 'Three'
True
True
Параметры
-ast
Объект абстрактного дерева синтаксиса (AST), представляющий скрипт, который требуется развернуть с помощью завершения вкладки.
Свойства параметров
| Тип: | Ast |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
AstInputSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-cursorColumn
Номер столбца курсора в строке входного скрипта. Позиция курсора используется для определения маркера, который расширяется по завершении вкладки.
Свойства параметров
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ScriptInputSet
| Position: | 1 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-inputScript
Строка, представляющая скрипт, который требуется развернуть с помощью завершения вкладки.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ScriptInputSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-options
Хэш-список значений параметров для передачи в API CompleteInput(). API принимает следующие логические параметры:
-
IgnoreHiddenShares. Если задано значение$true, игнорируйте скрытые общие папки UNC, такие как\\COMPUTER\ADMIN$и\\COMPUTER\C$. По умолчанию PowerShell включает скрытые общие папки. -
RelativePaths. По умолчанию PowerShell решает, как развернуть пути на основе предоставленных входных данных. Задание этого значения$trueзаставляет PowerShell заменить пути относительными путями. При задании этого значения значение$falseпринуждает PowerShell заменить их абсолютными путями. -
LiteralPaths. По умолчанию PowerShell замените специальные символы файлов, такие как квадратные скобки и обратные галочки, с их экранированными эквивалентами. При задании этого значения значение$trueпредотвращается замена.
Свойства параметров
| Тип: | Hashtable |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 3 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-positionOfCursor
Номер столбца курсора во входном AST. Позиция курсора используется для определения маркера, который расширяется по завершении вкладки.
Свойства параметров
| Тип: | IScriptPosition |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
AstInputSet
| Position: | 2 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-tokens
Массив маркеров, проанализированных из входного скрипта. Маркеры используются для определения маркера, который расширяется по завершении вкладки.
Свойства параметров
| Тип: | Token[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
AstInputSet
| Position: | 1 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.