TabExpansion2
Fonction d’assistance qui encapsule la CompleteInput()
méthode 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 l’achèvement de tabulation pour l’entrée utilisateur. PowerShell appelle cette fonction lorsque l’utilisateur appuie sur la touche Tab ou Ctrl+Espace lors de la saisie d’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 d’achèvements 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 en TabExpansion2
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 que vous obtiendriez en entrant à Format-Hex -<Tab>
l’invite de commandes PowerShell. La TabExpansion2
fonction retourne un objet CommandCompletion qui contient une liste de saisie semi-automatique 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 le 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 à transmettre à l’API CompleteInput()
. L’API accepte les options booléennes suivantes :
IgnoreHiddenShares
- Quand la valeur est définie$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. Définition de cette valeur pour$true
forcer PowerShell à remplacer les chemins d’accès par des chemins relatifs. Définir cette valeur$false
sur , 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 cycles précédents, par leurs équivalents échappés. Définition de cette valeur pour$true
empêcher 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