TabExpansion2
Funkcja pomocnika, która opakowuje metodę CompleteInput() klasy CommandCompletion w celu zapewnienia uzupełniania tabulacji skryptów programu PowerShell.
Składnia
ScriptInputSet (Domyślna)
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
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+spacji 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ć TabExpansion2, należy podać bieżący skrypt wejściowy i położenie kursora w skrycie. Funkcja zwraca obiekt CommandCompletion zawierający 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ż istnieje możliwość zastąpienia TabExpansion2, 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 Format-Hex -<Tab> w wierszu polecenia programu PowerShell. Funkcja TabExpansion2 zwraca obiekt CommandCompletion zawierający listę możliwych uzupełniania 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 [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
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 i że jedna z wartości jest Three. Możesz użyć tej techniki, aby przetestować ukończenie tej karty dla funkcji zwraca oczekiwane wyniki.
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
Parametry
-ast
Abstrakcyjny obiekt drzewa składni (AST), który reprezentuje skrypt, który chcesz rozwinąć przy użyciu uzupełniania tabulacji.
Właściwości parametru
| Typ: | Ast |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
AstInputSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ScriptInputSet
| Position: | 1 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-inputScript
Ciąg reprezentujący skrypt, który chcesz rozwinąć przy użyciu uzupełniania karty.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ScriptInputSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-options
Tabela skrótów wartości opcji do przekazania do interfejsu API CompleteInput(). Interfejs API akceptuje następujące opcje logiczne:
-
IgnoreHiddenShares— w przypadku ustawienia wartości$truezignoruj 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 na$truewymusza zastąpienie ścieżek ścieżkami względnymi przez program PowerShell. Ustawienie tej wartości na wartość$falsewymusza 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 odpowiednikami ucieczki. Ustawienie tej wartości na wartość$trueuniemożliwia zastąpienie.
Właściwości parametru
| Typ: | Hashtable |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | 3 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | IScriptPosition |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
AstInputSet
| Position: | 2 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | Token[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
AstInputSet
| Position: | 1 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.