TabExpansion2
Fonction d’assistance qui encapsule la méthode CompleteInput()
de la classe CommandCompletion pour fournir la saisie semi-automatique de tabulation pour les scripts PowerShell.
Syntaxe
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2
est une fonction intégrée qui fournit la saisie de tabulation pour l’entrée utilisateur. PowerShell appelle cette fonction lorsque l’utilisateur appuie sur l'tabulation ou Touche Ctrl+Espace tout en tapant une commande. La fonction retourne une liste d’achèvements possibles pour l’entrée actuelle.
TabExpansion2
n’est normalement pas appelé directement par les utilisateurs. Toutefois, il peut être utile pour tester l’achèvement de l’onglet. Pour utiliser TabExpansion2
, vous devez fournir le script d’entrée actuel et la position du curseur dans le script. La fonction retourne un objet CommandCompletion qui contient une liste de saisies semi-automatique possibles pour l’entrée actuelle. Ce script d’entrée peut être une chaîne ou une arborescence de syntaxe abstraite (AST) qui représente le script.
Vous pouvez remplacer le comportement par défaut de TabExpansion2
en définissant une fonction personnalisée portant le même nom dans votre session PowerShell. Cette fonction personnalisée peut fournir des saisies semi-automatiques pour des commandes ou des paramètres personnalisés. Bien qu’il soit possible de remplacer TabExpansion2
, il n’est pas pris en charge. Vous devez créer une fonction personnalisée uniquement si vous avez besoin de personnaliser le comportement d’achèvement de l’onglet.
Exemples
Exemple 1 - Obtenir la saisie semi-automatique de tabulation pour le paramètre de commande
Cet exemple montre les mêmes résultats que ceux obtenus en entrant Format-Hex -<Tab>
à l’invite de commandes PowerShell. La fonction TabExpansion2
retourne un objet CommandCompletion qui contient une liste d’achèvements possibles pour le jeton -
.
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
Exemple 2 - Obtenir la saisie semi-automatique de tabulation pour les valeurs de paramètre
Cet exemple montre comment obtenir la saisie semi-automatique de tabulation pour les valeurs de paramètre. Dans cet exemple, nous nous attendons à ce que paramètre Stage ait trois valeurs possibles et que l’une des valeurs soit Three
. Vous pouvez utiliser cette technique pour tester l’achèvement de tabulation pour votre fonction retourne les résultats attendus.
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ètres
-ast
Objet d’arborescence de syntaxe abstraite (AST) qui représente le script que vous souhaitez développer à l’aide de la saisie semi-automatique de tabulation.
Type: | Ast |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-cursorColumn
Numéro de colonne du curseur dans la chaîne de script d’entrée. La position du curseur est utilisée pour déterminer le jeton qui est développé par saisie semi-automatique par tabulation.
Type: | Int32 |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-inputScript
Chaîne qui représente le script que vous souhaitez développer à l’aide de la saisie semi-automatique de tabulation.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-options
Table de hachage des valeurs d’option à passer à l’API CompleteInput()
. L’API accepte les options booléennes suivantes :
-
IgnoreHiddenShares
- Lorsqu’il est défini sur$true
, ignorez les partages UNC masqués tels que\\COMPUTER\ADMIN$
et\\COMPUTER\C$
. Par défaut, PowerShell inclut des partages masqués. -
RelativePaths
- Par défaut, PowerShell décide comment développer des chemins en fonction de l’entrée que vous avez fournie. La définition de cette valeur sur$true
force PowerShell à remplacer les chemins d’accès par des chemins relatifs. Si vous définissez cette valeur sur$false
, force PowerShell à les remplacer par des chemins absolus. -
LiteralPaths
- Par défaut, PowerShell remplace les caractères de fichier spéciaux, tels que les crochets et les graduations arrière, par leurs équivalents en échappement. La définition de cette valeur sur$true
empêche le remplacement.
Type: | Hashtable |
Position: | 3 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-positionOfCursor
Numéro de colonne du curseur dans l’AST d’entrée. La position du curseur est utilisée pour déterminer le jeton qui est développé par saisie semi-automatique par tabulation.
Type: | IScriptPosition |
Position: | 2 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-tokens
Tableau de jetons analysés à partir du script d’entrée. Les jetons sont utilisés pour déterminer le jeton qui est développé par saisie semi-automatique par tabulation.
Type: | Token[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
None