Partager via


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

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.

Entrées

None

Sorties

CommandCompletion