Compartir a través de


TabExpansion2

Función auxiliar que ajusta el CompleteInput() método de la clase CommandCompletion para proporcionar finalización de tabulación para los scripts de PowerShell.

Sintaxis

TabExpansion2
   [-inputScript] <String>
   [[-cursorColumn] <Int32>]
   [[-options] <Hashtable>]
   [<CommonParameters>]
TabExpansion2
   [-ast] <Ast>
   [-tokens] <Token[]>
   [-positionOfCursor] <IScriptPosition>
   [[-options] <Hashtable>]
   [<CommonParameters>]

Description

TabExpansion2 es una función integrada que proporciona finalización de tabulación para la entrada del usuario. PowerShell llama a esta función cuando el usuario presiona la tecla Tab o Ctrl+Space mientras escribe un comando. La función devuelve una lista de posibles finalizaciones para la entrada actual.

TabExpansion2 normalmente los usuarios no los llaman directamente. Sin embargo, puede ser útil para probar la finalización de pestañas. Para usar TabExpansion2, debe proporcionar el script de entrada actual y la posición del cursor en el script. La función devuelve un objeto CommandCompletion que contiene una lista de posibles finalizaciones para la entrada actual. Este script de entrada puede ser una cadena o un árbol de sintaxis abstracta (AST) que representa el script.

Puede invalidar el comportamiento predeterminado de TabExpansion2 si define una función personalizada con el mismo nombre en la sesión de PowerShell. Esta función personalizada puede proporcionar finalizaciones para comandos o parámetros personalizados. Aunque es posible invalidar TabExpansion2, no se admite. Solo debe crear una función personalizada si tiene una necesidad específica de personalizar el comportamiento de finalización de pestañas.

Ejemplos

Ejemplo 1: Obtención de la finalización de tabulación para el parámetro de comando

En este ejemplo se muestran los mismos resultados que obtendría escribiendo Format-Hex -<Tab> en el símbolo del sistema de PowerShell. La TabExpansion2 función devuelve un objeto CommandCompletion que contiene una lista de posibles finalizaciones para el - token.

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

Ejemplo 2: Obtención de la finalización de tabulación para los valores de parámetro

En este ejemplo se muestra cómo obtener la finalización de tabulación para los valores de parámetro. En este ejemplo, esperamos que el parámetro Stage tenga tres valores posibles y que uno de los valores sea Three. Puede usar esta técnica para probar que la finalización de tabulación de la función devuelve los resultados esperados.

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

Parámetros

-ast

Objeto de árbol de sintaxis abstracta (AST) que representa el script que desea expandir mediante la finalización de tabulación.

Tipo:Ast
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-cursorColumn

Número de columna del cursor en la cadena de script de entrada. La posición del cursor se usa para determinar el token que se expande mediante la finalización de tabulación.

Tipo:Int32
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-inputScript

Cadena que representa el script que desea expandir mediante la finalización de tabulación.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-options

Tabla hash de valores de opción que se van a pasar a la CompleteInput() API. La API acepta las siguientes opciones booleanas:

  • IgnoreHiddenShares - Cuando se establece en $true, omita los recursos compartidos UNC ocultos, como \\COMPUTER\ADMIN$ y \\COMPUTER\C$. De forma predeterminada, PowerShell incluye recursos compartidos ocultos.
  • RelativePaths - De forma predeterminada, PowerShell decide cómo expandir las rutas de acceso en función de la entrada proporcionada. Establecer este valor en obliga a $true PowerShell a reemplazar las rutas de acceso por rutas de acceso relativas. Si establece este valor $falseen , se fuerza a PowerShell a reemplazarlos por rutas de acceso absolutas.
  • LiteralPaths - De forma predeterminada, PowerShell reemplaza caracteres de archivo especiales, como corchetes y tics posteriores, por sus equivalentes de escape. Establecer este valor en $true impide el reemplazo.
Tipo:Hashtable
Posición:3
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-positionOfCursor

Número de columna del cursor en el AST de entrada. La posición del cursor se usa para determinar el token que se expande mediante la finalización de tabulación.

Tipo:IScriptPosition
Posición:2
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-tokens

Matriz de tokens analizados desde el script de entrada. Los tokens se usan para determinar el token que se expande mediante la finalización de tabulación.

Tipo:Token[]
Posición:1
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

None

Salidas

CommandCompletion