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 TabExpansion2
meg 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 |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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$false
ké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 |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
None