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
ScriptInputSet (Par défaut)
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
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 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
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.
Propriétés du paramètre
| Type: | Ast |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
AstInputSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | Int32 |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
ScriptInputSet
| Position: | 1 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-inputScript
Chaîne qui représente le script que vous souhaitez développer à l’aide de la saisie semi-automatique de tabulation.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
ScriptInputSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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$trueforce 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$trueempêche le remplacement.
Propriétés du paramètre
| Type: | Hashtable |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 3 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | IScriptPosition |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
AstInputSet
| Position: | 2 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | Token[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
AstInputSet
| Position: | 1 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.