Udostępnij za pośrednictwem


TabExpansion2

Funkcja pomocnika, która opakowuje CompleteInput() metodę klasy CommandCompletion w celu zapewnienia uzupełniania tabulacji skryptów programu PowerShell.

Składnia

TabExpansion2
   [-inputScript] <String>
   [[-cursorColumn] <Int32>]
   [[-options] <Hashtable>]
   [<CommonParameters>]
TabExpansion2
   [-ast] <Ast>
   [-tokens] <Token[]>
   [-positionOfCursor] <IScriptPosition>
   [[-options] <Hashtable>]
   [<CommonParameters>]

Opis

TabExpansion2 to wbudowana funkcja, która zapewnia uzupełnianie kart dla danych wejściowych użytkownika. Program PowerShell wywołuje tę funkcję, gdy użytkownik naciska Tab lub Ctrl+Spacja podczas wpisywania polecenia. Funkcja zwraca listę możliwych uzupełnień dla bieżących danych wejściowych.

TabExpansion2 nie jest zwykle wywoływana bezpośrednio przez użytkowników. Jednak może to być przydatne do ukończenia karty testowania. Aby użyć TabExpansion2polecenia , należy podać bieżący skrypt wejściowy i położenie kursora w skrycie. Funkcja zwraca obiekt CommandCompletion , który zawiera listę możliwych uzupełnień dla bieżących danych wejściowych. Ten skrypt wejściowy może być ciągiem lub abstrakcyjnym drzewem składni (AST), który reprezentuje skrypt.

Domyślne zachowanie TabExpansion2 można zastąpić, definiując funkcję niestandardową o tej samej nazwie w sesji programu PowerShell. Ta funkcja niestandardowa umożliwia uzupełnianie poleceń niestandardowych lub parametrów. Chociaż można zastąpić TabExpansion2wartość , nie jest obsługiwana. Należy utworzyć funkcję niestandardową tylko wtedy, gdy masz określoną potrzebę dostosowania zachowania uzupełniania karty.

Przykłady

Przykład 1 — uzyskiwanie uzupełniania tabulacji dla parametru polecenia

W tym przykładzie przedstawiono te same wyniki, które można uzyskać, wprowadzając polecenie Format-Hex -<Tab> w wierszu polecenia programu PowerShell. Funkcja TabExpansion2 zwraca obiekt CommandCompletion zawierający listę możliwych uzupełnień tokenu - .

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

Przykład 2 — Uzyskiwanie uzupełniania tabulacji dla wartości parametrów

W tym przykładzie pokazano, jak uzyskać uzupełnianie tabulacji dla wartości parametrów. W tym przykładzie oczekujemy, że parametr etapu ma trzy możliwe wartości, a jedna z wartości to Three. Możesz użyć tej techniki, aby przetestować ukończenie tej karty dla funkcji zwraca oczekiwane wyniki.

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

Parametry

-ast

Abstrakcyjny obiekt drzewa składni (AST), który reprezentuje skrypt, który chcesz rozwinąć przy użyciu uzupełniania tabulacji.

Typ:Ast
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-cursorColumn

Numer kolumny kursora w ciągu skryptu wejściowego. Położenie kursora służy do określania tokenu, który jest rozwijany po zakończeniu karty.

Typ:Int32
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-inputScript

Ciąg reprezentujący skrypt, który chcesz rozwinąć przy użyciu uzupełniania karty.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-options

Tabela skrótów wartości opcji do przekazania do interfejsu CompleteInput() API. Interfejs API akceptuje następujące opcje logiczne:

  • IgnoreHiddenShares — W przypadku ustawienia wartości $trueignoruj ukryte udziały UNC, takie jak \\COMPUTER\ADMIN$ i \\COMPUTER\C$. Domyślnie program PowerShell zawiera ukryte udziały.
  • RelativePaths — Domyślnie program PowerShell decyduje o sposobie rozwijania ścieżek na podstawie podanych danych wejściowych. Ustawienie tej wartości spowoduje, że $true program PowerShell zastąpi ścieżki ścieżkami względnymi. Ustawienie tej wartości na $false, wymusza zastąpienie ich przez program PowerShell ścieżkami bezwzględnymi.
  • LiteralPaths - Domyślnie program PowerShell zastępuje znaki plików specjalnych, takie jak nawiasy kwadratowe i znaczniki wsteczne, z ich unikniętymi odpowiednikami. Ustawienie tej wartości w taki sposób, aby $true uniemożliwiało zastąpienie.
Typ:Hashtable
Position:3
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-positionOfCursor

Numer kolumny kursora w wejściowym AST. Położenie kursora służy do określania tokenu, który jest rozwijany po zakończeniu karty.

Typ:IScriptPosition
Position:2
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-tokens

Tablica tokenów analizowanych ze skryptu wejściowego. Tokeny są używane do określania tokenu, który jest rozszerzany przez uzupełnianie kart.

Typ:Token[]
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Dane wyjściowe

CommandCompletion