Condividi tramite


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 TabExpansion2di , 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 $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.
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

Output

CommandCompletion