Sdílet prostřednictvím


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 Tab nebo Ctrl+mezerník. Funkce vrátí seznam možných dokončení aktuálního vstupu.

TabExpansion2 není obvykle volána přímo uživateli. 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í pro aktuální vstup. 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é ji 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> do příkazového řá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í $trueignorovat skryté sdílené složky UNC, jako \\COMPUTER\ADMIN$ \\COMPUTER\C$a . PowerShell ve výchozím nastavení obsahuje skryté sdílené složky.
  • RelativePaths – Ve výchozím nastavení se PowerShell rozhodne, jak rozšířit cesty na základě zadaného vstupu. Nastavením této hodnoty vynutíte, aby $true PowerShell nahradil cesty relativními cestami. Nastavení této hodnoty na $false, vynutí PowerShell nahradit je absolutními cestami.
  • LiteralPaths – PowerShell ve výchozím nastavení nahrazuje speciální znaky souboru, jako jsou hranaté závorky a zpětné závorky, jejich řídicími ekvivalenty. Nastavením této hodnoty zabráníte $true 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

Výstupy

CommandCompletion