Megosztás a következőn keresztül:


TabExpansion2

Segédfüggvény, amely a CompleteInput()CommandCompletion osztály metódusát burkolja a PowerShell-szkriptek lapkimenetének biztosításához.

Syntax

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

Description

TabExpansion2 egy beépített függvény, amely lapkimenetet biztosít a felhasználói bemenethez. A PowerShell meghívja ezt a függvényt, amikor a felhasználó lenyomja a Tab vagy a Ctrl+Szóköz billentyűt egy parancs beírása közben. A függvény az aktuális bemenet lehetséges befejezéseinek listáját adja vissza.

TabExpansion2 általában nem közvetlenül a felhasználók hívják. A lap befejezésének teszteléséhez azonban hasznos lehet. A használatához TabExpansion2meg kell adnia az aktuális bemeneti szkriptet és a kurzor pozícióját a szkriptben. A függvény egy CommandCompletion objektumot ad vissza, amely az aktuális bemenet lehetséges befejezéseinek listáját tartalmazza. Ez a bemeneti szkript lehet egy sztring vagy egy absztrakt szintaxisfa (AST), amely a szkriptet jelöli.

Felülbírálhatja az alapértelmezett viselkedést TabExpansion2 úgy, hogy egy azonos nevű egyéni függvényt definiál a PowerShell-munkamenetben. Ez az egyéni függvény egyéni parancsokhoz vagy paraméterekhez adhat kiegészítéseket. Bár felül lehet bírálni TabExpansion2, ez nem támogatott. Csak akkor hozzon létre egyéni függvényt, ha a lapkiegészítési viselkedést testre kell szabnia.

Példák

1. példa – A parancsparaméter lapkiegészítésének lekérése

Ez a példa ugyanazokat az eredményeket mutatja be, amelyeket a PowerShell parancssorába való beírással Format-Hex -<Tab> kapna. A TabExpansion2 függvény egy CommandCompletion objektumot ad vissza, amely a jogkivonat lehetséges befejezéseinek - listáját tartalmazza.

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

2. példa – A paraméterértékek lapkiegészítésének lekérése

Ez a példa bemutatja, hogyan kérhet le tabulátorkiegészítést a paraméterértékekhez. Ebben a példában arra számítunk, hogy a Stage paraméter három lehetséges értékkel rendelkezik, és az egyik érték az Three. Ezzel a technikával tesztelheti, hogy a függvény lapkizárása a várt eredményeket adja vissza.

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

Paraméterek

-ast

Absztrakciós szintaxisfa (AST) objektum, amely a tabulátorkibontással kibontani kívánt szkriptet jelöli.

Típus:Ast
Position:0
alapértelmezett érték:None
Kötelező:True
Accept pipeline input:False
Accept wildcard characters:False

-cursorColumn

A kurzor oszlopszáma a bemeneti szkript sztringjében. A kurzor pozíciója határozza meg a lapkizárással kibontott jogkivonatot.

Típus:Int32
Position:1
alapértelmezett érték:None
Kötelező:False
Accept pipeline input:False
Accept wildcard characters:False

-inputScript

Egy sztring, amely azt a szkriptet jelöli, amelyet tabulátorkiegészítéssel ki szeretne bontani.

Típus:String
Position:0
alapértelmezett érték:None
Kötelező:True
Accept pipeline input:False
Accept wildcard characters:False

-options

Az API-nak átadni CompleteInput() kívánt beállításértékek kivonata. Az API a következő logikai beállításokat fogadja el:

  • IgnoreHiddenShares - Ha be van $trueállítva, hagyja figyelmen kívül a rejtett UNC-megosztásokat, például \\COMPUTER\ADMIN$ és \\COMPUTER\C$. Alapértelmezés szerint a PowerShell rejtett megosztásokat is tartalmaz.
  • RelativePaths – Alapértelmezés szerint a PowerShell dönti el, hogyan bontsa ki az útvonalakat a megadott bemenet alapján. Ennek az értéknek a beállítása arra kényszeríti a $true PowerShellt, hogy az útvonalakat relatív elérési utakra cserélje. Ennek az értéknek a beállításához $falsekényszeríti a PowerShellt, hogy abszolút elérési utakra cserélje őket.
  • LiteralPaths - A PowerShell alapértelmezés szerint lecseréli a speciális fájlkaraktereket, például a szögletes zárójeleket és a visszajeleket a feloldott megfelelőikre. Állítsa be ezt az értéket a csere megakadályozása érdekében $true .
Típus:Hashtable
Position:3
alapértelmezett érték:None
Kötelező:False
Accept pipeline input:False
Accept wildcard characters:False

-positionOfCursor

A kurzor oszlopszáma a bemeneti AST-ben. A kurzor pozíciója határozza meg a lapkizárással kibontott jogkivonatot.

Típus:IScriptPosition
Position:2
alapértelmezett érték:None
Kötelező:True
Accept pipeline input:False
Accept wildcard characters:False

-tokens

A bemeneti szkriptből elemezett jogkivonatok tömbje. A jogkivonatok a lapkizárással kibontott jogkivonat meghatározására szolgálnak.

Típus:Token[]
Position:1
alapértelmezett érték:None
Kötelező:True
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

None

Kimenetek

CommandCompletion