TabExpansion2
PowerShell スクリプトのタブ補完を提供するために、CommandCompletion クラスのCompleteInput()
メソッドをラップするヘルパー関数。
構文
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
説明
TabExpansion2
は、ユーザー入力のタブ補完を提供する組み込み関数です。 PowerShell は、ユーザーがコマンドの入力中に Tab キーまたは Ctrl+Space キーを押すと、この関数を呼び出します。 この関数は、現在の入力で可能な入力候補の一覧を返します。
TabExpansion2
は通常、ユーザーが直接呼び出すわけではありません。 ただし、タブ補完のテストに役立ちます。 TabExpansion2
を使用するには、現在の入力スクリプトとスクリプト内のカーソル位置を指定する必要があります。 この関数は CommandCompletion オブジェクトを返します。このオブジェクトには、現在の入力に対して可能な入力候補の一覧が含まれています。 この入力スクリプトには、スクリプトを表す文字列または抽象構文ツリー (AST) を指定できます。
PowerShell セッションで同じ名前のカスタム関数を定義することで、 TabExpansion2
の既定の動作をオーバーライドできます。 このカスタム関数は、カスタム コマンドまたはパラメーターの入力候補を提供できます。 TabExpansion2
をオーバーライドすることは可能ですが、サポートされていません。 タブ補完動作をカスタマイズする必要がある場合にのみ、カスタム関数を作成する必要があります。
例
例 1 - コマンド パラメーターのタブ補完を取得する
この例では、PowerShell コマンド プロンプトに「 Format-Hex -<Tab>
」と入力すると得られるのと同じ結果が表示されます。 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 - パラメーター値のタブ補完を取得する
この例では、パラメーター値のタブ補完を取得する方法を示します。 この例では、 Stage パラメーターには 3 つの可能な値があり、値の 1 つが Three
されることを想定しています。 この手法を使用して、関数のタブ補完によって期待される結果が返されることをテストできます。
function GetData {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'GetData -Stage ') -cursorColumn $line.Length |
Select-Object -ExpandProperty CompletionMatches
$result.Count -eq 3
$result.CompletionText -contains 'Three'
True
True
パラメーター
-ast
タブ補完を使用して展開するスクリプトを表す抽象構文ツリー (AST) オブジェクト。
型: | Ast |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-cursorColumn
入力スクリプト文字列内のカーソルの列番号。 カーソル位置は、タブ補完によって展開されるトークンを決定するために使用されます。
型: | Int32 |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-inputScript
タブ補完を使用して展開するスクリプトを表す文字列。
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-options
CompleteInput()
API に渡すオプション値のハッシュテーブル。 API は、次のブール値オプションを受け入れます。
IgnoreHiddenShares
-$true
に設定すると、\\COMPUTER\ADMIN$
や\\COMPUTER\C$
などの非表示の UNC 共有は無視されます。 既定では、PowerShell には非表示の共有が含まれています。RelativePaths
- 既定では、指定した入力に基づいてパスを展開する方法が PowerShell によって決定されます。 この値を$true
に設定すると、PowerShell はパスを相対パスに置き換える必要があります。 この値を$false
に設定すると、PowerShell で絶対パスに置き換えられます。LiteralPaths
- 既定では、PowerShell は角かっこやバックティックなどの特殊なファイル文字を、エスケープされた同等の文字に置き換えます。 この値を$true
に設定すると、置換できなくなります。
型: | Hashtable |
配置: | 3 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-positionOfCursor
入力 AST 内のカーソルの列番号。 カーソル位置は、タブ補完によって展開されるトークンを決定するために使用されます。
型: | IScriptPosition |
配置: | 2 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-tokens
入力スクリプトから解析されたトークンの配列。 トークンは、タブ補完によって展開されるトークンを決定するために使用されます。
型: | Token[] |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
出力
関連リンク
PowerShell