Condividi tramite


TabExpansion2

Funzione helper che esegue il wrapping del metodo CompleteInput() della classe CommandCompletion per fornire il completamento tramite tabulazione per gli script di PowerShell.

Sintassi

ScriptInputSet (impostazione predefinita).

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

AstInputSet

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

Descrizione

TabExpansion2 è una funzione predefinita che fornisce il completamento tramite tabulazione per l'input dell'utente. PowerShell chiama questa funzione quando l'utente preme la tabulazione o CTRL+tasto spazio durante la digitazione di un comando. La funzione restituisce un elenco di possibili completamenti per l'input corrente.

TabExpansion2 normalmente non viene chiamato direttamente dagli utenti. Tuttavia, può essere utile per testare il completamento della scheda. Per usare TabExpansion2, è necessario specificare lo script di input corrente e la posizione del cursore nello script. La funzione restituisce un oggetto CommandCompletion che contiene un elenco di possibili completamenti per l'input corrente. Questo script di input può essere una stringa o un albero della sintassi astratta (AST) che rappresenta lo script.

È possibile eseguire l'override del comportamento predefinito di TabExpansion2 definendo una funzione personalizzata con lo stesso nome nella sessione di PowerShell. Questa funzione personalizzata può fornire completamenti per comandi o parametri personalizzati. Sebbene sia possibile eseguire l'override di TabExpansion2, non è supportato. È consigliabile creare una funzione personalizzata solo se è necessario personalizzare il comportamento di completamento della scheda.

Esempio

Esempio 1 - Ottenere il completamento tramite tabulazione per il parametro di comando

Questo esempio mostra gli stessi risultati ottenuti immettendo Format-Hex -<Tab> al prompt dei comandi di PowerShell. La funzione TabExpansion2 restituisce un oggetto CommandCompletion che contiene un elenco di possibili completamenti per il token di -.

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

Esempio 2- Ottenere il completamento tramite tabulazione per i valori dei parametri

In questo esempio viene illustrato come ottenere il completamento tramite tabulazione per i valori dei parametri. In questo esempio si prevede che parametro Stage abbia tre valori possibili e che uno dei valori sia Three. È possibile usare questa tecnica per testare il completamento della scheda per la funzione restituisce i risultati previsti.

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

Parametri

-ast

Oggetto albero della sintassi astratta (AST) che rappresenta lo script che si desidera espandere utilizzando il completamento tramite tabulazione.

Proprietà dei parametri

Tipo:Ast
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

AstInputSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-cursorColumn

Numero di colonna del cursore nella stringa dello script di input. La posizione del cursore viene utilizzata per determinare il token espanso dal completamento della scheda.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ScriptInputSet
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-inputScript

Stringa che rappresenta lo script che si desidera espandere usando il completamento tramite tabulazione.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ScriptInputSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-options

Tabella hash dei valori delle opzioni da passare all'API CompleteInput(). L'API accetta le opzioni booleane seguenti:

  • IgnoreHiddenShares : se impostato su $true, ignorare le condivisioni UNC nascoste, ad esempio \\COMPUTER\ADMIN$ e \\COMPUTER\C$. Per impostazione predefinita, PowerShell include condivisioni nascoste.
  • RelativePaths: per impostazione predefinita, PowerShell decide come espandere i percorsi in base all'input specificato. L'impostazione di questo valore su $true forza PowerShell a sostituire i percorsi con percorsi relativi. L'impostazione di questo valore su $falseforza PowerShell a sostituirli con percorsi assoluti.
  • LiteralPaths: per impostazione predefinita, PowerShell sostituisce caratteri di file speciali, ad esempio parentesi quadre e tick back-tick, con i relativi equivalenti di escape. L'impostazione di questo valore su $true impedisce la sostituzione.

Proprietà dei parametri

Tipo:Hashtable
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:3
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-positionOfCursor

Numero di colonna del cursore nell'AST di input. La posizione del cursore viene utilizzata per determinare il token espanso dal completamento della scheda.

Proprietà dei parametri

Tipo:IScriptPosition
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

AstInputSet
Posizione:2
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-tokens

Matrice di token analizzati dallo script di input. I token vengono usati per determinare il token espanso dal completamento tramite tabulazione.

Proprietà dei parametri

Tipo:

Token[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

AstInputSet
Posizione:1
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

None

Output

CommandCompletion