TabExpansion2
Pomocná funkce, která zabalí CompleteInput()
metodu CommandCompletion třídy, která poskytuje dokončování tabulátoru pro skripty PowerShellu.
Syntaxe
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2
je integrovaná funkce, která poskytuje dokončování tabulátoru pro uživatelský vstup. PowerShell tuto funkci volá, když uživatel při psaní příkazu stiskne klávesu tabulátoru nebo klávesu Ctrl+ mezerník. Funkce vrátí seznam možných dokončení aktuálního vstupu.
TabExpansion2
uživatelé obvykle nevolá přímo. Může ale být užitečné pro testování dokončení tabulátoru. Pokud chcete použít TabExpansion2
, musíte zadat aktuální vstupní skript a pozici kurzoru ve skriptu. Funkce vrátí CommandCompletion objekt, který obsahuje seznam možných dokončení aktuálního vstupu. Tento vstupní skript může být řetězec nebo abstraktní strom syntaxe (AST), který představuje skript.
Výchozí chování TabExpansion2
můžete přepsat definováním vlastní funkce se stejným názvem v relaci PowerShellu. Tato vlastní funkce může poskytovat dokončování vlastních příkazů nebo parametrů. I když je možné přepsat TabExpansion2
, nepodporuje se. Vlastní funkci byste měli vytvořit jenom v případě, že potřebujete přizpůsobit chování dokončování tabulátoru.
Příklady
Příklad 1 – Získání dokončování tabulátoru pro parametr příkazu
Tento příklad ukazuje stejné výsledky, které byste získali zadáním Format-Hex -<Tab>
na příkazovém řádku PowerShellu. Funkce TabExpansion2
vrátí CommandCompletion objekt, který obsahuje seznam možných dokončení 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
Příklad 2 – Získání dokončování tabulátoru pro hodnoty parametrů
Tento příklad ukazuje, jak získat dokončování tabulátoru pro hodnoty parametrů. V tomto příkladu očekáváme, že parametr Stage má tři možné hodnoty a že jedna z hodnot je Three
. Tuto techniku můžete použít k otestování dokončení tabulátoru pro vaši funkci, která vrátí očekávané výsledky.
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
Abstraktní objekt stromu syntaxe (AST), který představuje skript, který chcete rozbalit pomocí dokončování tabulátoru.
Typ: | Ast |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-cursorColumn
Číslo sloupce kurzoru ve vstupním řetězci skriptu. Pozice kurzoru slouží k určení tokenu, který se rozbalí po dokončení tabulátoru.
Typ: | Int32 |
Position: | 1 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-inputScript
Řetězec, který představuje skript, který chcete rozbalit pomocí dokončování tabulátoru.
Typ: | String |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-options
A hashtable of option values to pass to the CompleteInput()
API. Rozhraní API přijímá následující logické možnosti:
-
IgnoreHiddenShares
– při nastavení na$true
ignorujte skryté sdílené složky UNC, jako jsou\\COMPUTER\ADMIN$
a\\COMPUTER\C$
. PowerShell ve výchozím nastavení obsahuje skryté sdílené složky. -
RelativePaths
– PowerShell ve výchozím nastavení rozhodne, jak rozbalit cesty na základě zadaného vstupu. Nastavení této hodnoty na$true
vynutí PowerShell nahradit cesty relativními cestami. Nastavením této hodnoty na$false
vynutí powershell nahradit je absolutními cestami. -
LiteralPaths
– PowerShell ve výchozím nastavení nahradí speciální znaky souboru, jako jsou hranaté závorky a zpětné odškrtávání, jejich řídicími ekvivalenty. Nastavením této hodnoty na$true
zabráníte nahrazení.
Typ: | Hashtable |
Position: | 3 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-positionOfCursor
Číslo sloupce kurzoru ve vstupním ast. Pozice kurzoru slouží k určení tokenu, který se rozbalí po dokončení tabulátoru.
Typ: | IScriptPosition |
Position: | 2 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-tokens
Pole tokenů parsovaných ze vstupního skriptu. Tokeny slouží k určení tokenu, který se rozbalí po dokončení tabulátoru.
Typ: | Token[] |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None