Leer en inglés

Compartir a través de


TabExpansion2

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

Sintaxis

PowerShell
TabExpansion2
   [-inputScript] <String>
   [[-cursorColumn] <Int32>]
   [[-options] <Hashtable>]
   [<CommonParameters>]
PowerShell
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 Tabulador o la combinación de teclas Ctrl + Espacio + mientras escribe un comando. La función devuelve una lista de posibles finalizaciones para la entrada actual.

TabExpansion2 normalmente no es llamado directamente por los usuarios. Sin embargo, puede ser útil para probar la finalización de tabuladores. 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 definiendo 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 está respaldado. 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 introduciendo Format-Hex -<Tab> en la consola de PowerShell. La función TabExpansion2 devuelve un objeto CommandCompletion que contiene una lista de posibles finalizaciones para el token -.

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

PowerShell
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 quiere expandir mediante la finalización de tabulaciones.

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

-cursorColumn

El número de columna del cursor en la cadena del 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 API de CompleteInput(). 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 $true obliga a PowerShell a reemplazar las rutas por rutas relativas. Al establecer este valor en $false, se fuerza a PowerShell a reemplazarlos por rutas de acceso absolutas.
  • LiteralPaths: de forma predeterminada, PowerShell reemplaza caracteres de archivo especiales, como corchetes y comillas inversas, por sus equivalentes escapados. 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