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 [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 매개 변수에 세 가지 가능한 값이 있고 값 중 하나가 있을 것으로 예상합니다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 이 값을 설정합니다. 이 값을 설정하면 $falsePowerShell에서 절대 경로로 바꿉니다.
  • 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

출력

CommandCompletion