Partager via


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 $falsesur , 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

Sorties

CommandCompletion