Delen via


TabExpansion2

Een helperfunctie die de CompleteInput() methode van de Klasse CommandCompletion verpakt om tabvoltooiing te bieden voor PowerShell-scripts.

Syntaxis

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

Description

TabExpansion2 is een ingebouwde functie die tabvoltooiing biedt voor gebruikersinvoer. PowerShell roept deze functie aan wanneer de gebruiker op de Tab- of Ctrl-spatietoets+ drukt tijdens het typen van een opdracht. De functie retourneert een lijst met mogelijke voltooiingen voor de huidige invoer.

TabExpansion2 wordt normaal gesproken niet rechtstreeks door gebruikers aangeroepen. Het kan echter handig zijn om tabvoltooiing te testen. Als u wilt gebruiken TabExpansion2, moet u het huidige invoerscript en de cursorpositie in het script opgeven. De functie retourneert een CommandCompletion-object dat een lijst met mogelijke voltooiingen voor de huidige invoer bevat. Dit invoerscript kan een tekenreeks of een abstracte syntaxisstructuur (AST) zijn die het script vertegenwoordigt.

U kunt het standaardgedrag TabExpansion2 overschrijven door een aangepaste functie te definiëren met dezelfde naam in uw PowerShell-sessie. Deze aangepaste functie kan voltooiingen bieden voor aangepaste opdrachten of parameters. Hoewel het mogelijk is om te overschrijven TabExpansion2, wordt dit niet ondersteund. U moet alleen een aangepaste functie maken als u een specifieke behoefte hebt om het voltooiingsgedrag van het tabblad aan te passen.

Voorbeelden

Voorbeeld 1: tabvoltooiing ophalen voor opdrachtparameter

In dit voorbeeld ziet u dezelfde resultaten die u zou krijgen door in te voeren Format-Hex -<Tab> bij de PowerShell-opdrachtprompt. De TabExpansion2 functie retourneert een CommandCompletion-object dat een lijst met mogelijke voltooiingen voor het - token bevat.

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

Voorbeeld 2: tabvoltooiing ophalen voor parameterwaarden

In dit voorbeeld ziet u hoe u tabvoltooiing voor parameterwaarden kunt ophalen. In dit voorbeeld verwachten we dat de parameter Fase drie mogelijke waarden heeft en dat een van de waarden is Three. U kunt deze techniek gebruiken om te testen of de tabvoltooiing voor uw functie de verwachte resultaten retourneert.

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

Parameters

-ast

Een abstract ast-object (syntaxisstructuur) dat het script aangeeft dat u wilt uitbreiden met behulp van tabvoltooiing.

Type:Ast
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-cursorColumn

Het kolomnummer van de cursor in de tekenreeks van het invoerscript. De cursorpositie wordt gebruikt om het token te bepalen dat wordt uitgevouwen door tabvoltooiing.

Type:Int32
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-inputScript

Een tekenreeks die het script aangeeft dat u wilt uitbreiden met behulp van tabvoltooiing.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-options

Een hashtabel met optiewaarden die moeten worden doorgegeven aan de CompleteInput() API. De API accepteert de volgende Booleaanse opties:

  • IgnoreHiddenShares - Wanneer dit is ingesteld $true, negeert u verborgen UNC-shares zoals \\COMPUTER\ADMIN$ en \\COMPUTER\C$. PowerShell bevat standaard verborgen shares.
  • RelativePaths - PowerShell bepaalt standaard hoe u paden uitbreidt op basis van de invoer die u hebt opgegeven. Door deze waarde in te stellen, wordt PowerShell gedwongen $true paden te vervangen door relatieve paden. Als u deze waarde $falseinstelt, dwingt u PowerShell om ze te vervangen door absolute paden.
  • LiteralPaths - PowerShell vervangt standaard speciale bestandstekens, zoals vierkante haken en back-ticks, door hun escape-equivalenten. Als u deze waarde instelt om $true te voorkomen dat de vervanging wordt vervangen.
Type:Hashtable
Position:3
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-positionOfCursor

Het kolomnummer van de cursor in de invoer-AST. De cursorpositie wordt gebruikt om het token te bepalen dat wordt uitgevouwen door tabvoltooiing.

Type:IScriptPosition
Position:2
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-tokens

Een matrix met tokens die zijn geparseerd uit het invoerscript. De tokens worden gebruikt om het token te bepalen dat wordt uitgevouwen door tabvoltooiing.

Type:Token[]
Position:1
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

Uitvoerwaarden

CommandCompletion