TabExpansion2
Funzione helper che esegue il wrapping del CompleteInput()
metodo della classe CommandCompletion per fornire il completamento tramite tabulazione per gli script di PowerShell.
Sintassi
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
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 tabulazione o CTRL+SPAZIO durante la digitazione di un comando. La funzione restituisce un elenco di possibili completamenti per l'input corrente.
TabExpansion2
non viene normalmente 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 TabExpansion2
di , 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 TabExpansion2
funzione restituisce un oggetto CommandCompletion che contiene un elenco di possibili completamenti per il -
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
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 il 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 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
Parametri
-ast
Oggetto albero della sintassi astratta (AST) che rappresenta lo script che si desidera espandere utilizzando il completamento tramite tabulazione.
Tipo: | Ast |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | Int32 |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-inputScript
Stringa che rappresenta lo script che si desidera espandere usando il completamento tramite tabulazione.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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,\\COMPUTER\ADMIN$
ad esempio 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$false
forza 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.
Tipo: | Hashtable |
Posizione: | 3 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | IScriptPosition |
Posizione: | 2 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-tokens
Matrice di token analizzati dallo script di input. I token vengono usati per determinare il token espanso dal completamento tramite tabulazione.
Tipo: | Token[] |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None