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$false
en , 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