Dela via


TabExpansion2

En hjälpfunktion som omsluter CompleteInput()-metoden för klassen CommandCompletion för att tillhandahålla tabbslut för PowerShell-skript.

Syntax

ScriptInputSet (Standard)

TabExpansion2
    [-inputScript] <String>
    [[-cursorColumn] <Int32>]
    [[-options] <Hashtable>]
    [<CommonParameters>]

AstInputSet

TabExpansion2
    [-ast] <Ast>
    [-tokens] <Token[]>
    [-positionOfCursor] <IScriptPosition>
    [[-options] <Hashtable>]
    [<CommonParameters>]

Description

TabExpansion2 är en inbyggd funktion som tillhandahåller flikkomplettering för användarindata. PowerShell anropar den här funktionen när användaren trycker på -fliken eller Ctrl+blanksteg tangenten när du skriver ett kommando. Funktionen returnerar en lista över möjliga slutföranden för de aktuella indata.

TabExpansion2 anropas normalt inte direkt av användare. Det kan dock vara användbart för att slutföra testfliken. Om du vill använda TabExpansion2måste du ange det aktuella indataskriptet och markörens position i skriptet. Funktionen returnerar ett CommandCompletion- objekt som innehåller en lista över möjliga slutföranden för de aktuella indata. Det här indataskriptet kan vara en sträng eller ett abstrakt syntaxträd (AST) som representerar skriptet.

Du kan åsidosätta standardbeteendet för TabExpansion2 genom att definiera en anpassad funktion med samma namn i PowerShell-sessionen. Den här anpassade funktionen kan tillhandahålla kompletteringar för anpassade kommandon eller parametrar. Även om det är möjligt att åsidosätta TabExpansion2stöds det inte. Du bör bara skapa en anpassad funktion om du har ett specifikt behov av att anpassa flikens slutförandebeteende.

Exempel

Exempel 1 – Få fliken klar för kommandoparametern

Det här exemplet visar samma resultat som du skulle få genom att ange Format-Hex -<Tab> i PowerShell-kommandotolken. Funktionen TabExpansion2 returnerar ett CommandCompletion- objekt som innehåller en lista över möjliga slutföranden för - token.

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

Exempel 2 – Få fliken slutförd för parametervärden

Det här exemplet visar hur du får tabbavslut för parametervärden. I det här exemplet förväntar vi oss att stage parameter har tre möjliga värden och att ett av värdena är Three. Du kan använda den här tekniken för att testa att tabbavslutningen för funktionen returnerar det förväntade resultatet.

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

Parametrar

-ast

Ett ast-objekt (abstrakt syntaxträd) som representerar skriptet som du vill expandera med hjälp av tabbslut.

Parameteregenskaper

Typ:Ast
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

AstInputSet
Position:0
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-cursorColumn

Kolumnnumret för markören i indataskriptsträngen. Markörens position används för att fastställa den token som expanderas av flikens slutförande.

Parameteregenskaper

Typ:Int32
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptInputSet
Position:1
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-inputScript

En sträng som representerar skriptet som du vill expandera med hjälp av tabbavslut.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptInputSet
Position:0
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-options

En hashtabell med alternativvärden som ska skickas till CompleteInput()-API:et. API:et accepterar följande booleska alternativ:

  • IgnoreHiddenShares – Ignorera dolda UNC-resurser som $true och \\COMPUTER\ADMIN$när det är inställt på \\COMPUTER\C$. Som standard innehåller PowerShell dolda resurser.
  • RelativePaths – Som standard bestämmer PowerShell hur du expanderar sökvägar baserat på de indata du angav. Om du anger det här värdet till $true tvingar PowerShell att ersätta sökvägar med relativa sökvägar. Om du anger det här värdet till $falsetvingar du PowerShell att ersätta dem med absoluta sökvägar.
  • LiteralPaths – Som standard ersätter PowerShell specialfiltecken, till exempel hakparenteser och back-ticks, med deras undantagna motsvarigheter. Om du anger det här värdet till $true förhindras ersättningen.

Parameteregenskaper

Typ:Hashtable
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:3
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-positionOfCursor

Kolumnnumret för markören i indata-AST. Markörens position används för att fastställa den token som expanderas av flikens slutförande.

Parameteregenskaper

Typ:IScriptPosition
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

AstInputSet
Position:2
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-tokens

En matris med token som parsas från indataskriptet. Token används för att fastställa den token som expanderas av flikens slutförande.

Parameteregenskaper

Typ:

Token[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

AstInputSet
Position:1
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

Indata

None

Utdata

CommandCompletion