TabExpansion2
PowerShell 스크립트에 CompleteInput()
대한 탭 완성을 제공하기 위해 CommandCompletion 클래스의 메서드를 래핑하는 도우미 함수입니다.
구문
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2
는 사용자 입력에 대한 탭 완성을 제공하는 기본 제공 함수입니다. 사용자가 명령을 입력하는 동안 Tab 또는 Ctrl+Space 키를 누르면 PowerShell에서 이 함수를 호출합니다. 함수는 현재 입력에 대해 가능한 완료 목록을 반환합니다.
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 [psobject] InputObject
-Encoding Encoding ParameterName [Encoding] Encoding
-Count Count ParameterName [long] Count
-Offset Offset ParameterName [long] Offset
예제 2 - 매개 변수 값에 대한 탭 완성 가져오기
이 예제에서는 매개 변수 값에 대한 탭 완성을 가져오는 방법을 보여줍니다. 이 예제에서는 Stage 매개 변수에 세 가지 가능한 값이 있고 값 중 하나가 있을 것으로 예상합니다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 |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-cursorColumn
입력 스크립트 문자열에 있는 커서의 열 번호입니다. 커서 위치는 탭 완성에 의해 확장되는 토큰을 결정하는 데 사용됩니다.
형식: | Int32 |
Position: | 1 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-inputScript
탭 완성을 사용하여 확장하려는 스크립트를 나타내는 문자열입니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-options
API에 전달할 CompleteInput()
옵션 값의 해시 테이블입니다. API는 다음 부울 옵션을 허용합니다.
IgnoreHiddenShares
- 로 설정$true
하면 숨겨진 UNC 공유(예:\\COMPUTER\ADMIN$
및\\COMPUTER\C$
.)를 무시합니다. 기본적으로 PowerShell에는 숨겨진 공유가 포함됩니다.RelativePaths
- 기본적으로 PowerShell은 제공한 입력에 따라 경로를 확장하는 방법을 결정합니다. PowerShell이 경로를 상대 경로로 바꾸도록 하려면$true
이 값을 설정합니다. 이 값을 설정하면$false
PowerShell에서 절대 경로로 바꿉니다.LiteralPaths
- 기본적으로 PowerShell은 대괄호 및 백틱과 같은 특수 파일 문자를 이스케이프된 해당 문자로 대체합니다. 교체를 방지하도록$true
이 값을 설정합니다.
형식: | Hashtable |
Position: | 3 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-positionOfCursor
입력 AST에 있는 커서의 열 번호입니다. 커서 위치는 탭 완성에 의해 확장되는 토큰을 결정하는 데 사용됩니다.
형식: | IScriptPosition |
Position: | 2 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-tokens
입력 스크립트에서 구문 분석된 토큰 배열입니다. 토큰은 탭 완성에 의해 확장되는 토큰을 결정하는 데 사용됩니다.
형식: | Token[] |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
출력
관련 링크
PowerShell