Compartilhar via


TabExpansion2

Uma função auxiliar que encapsula o CompleteInput() método da classe CommandCompletion para fornecer preenchimento de tabulação para scripts do PowerShell.

Sintaxe

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

Description

TabExpansion2 é uma função interna que fornece preenchimento de tabulação para entrada do usuário. O PowerShell chama essa função quando o usuário pressiona a tecla Tab ou Ctrl+Space enquanto digita um comando. A função retorna uma lista de conclusões possíveis para a entrada atual.

TabExpansion2 normalmente não é chamado diretamente pelos usuários. No entanto, pode ser útil para testar o preenchimento de guias. Para usar TabExpansion2o , você precisa fornecer o script de entrada atual e a posição do cursor no script. A função retorna um objeto CommandCompletion que contém uma lista de conclusões possíveis para a entrada atual. Esse script de entrada pode ser uma cadeia de caracteres ou uma árvore de sintaxe abstrata (AST) que representa o script.

Você pode substituir o comportamento padrão de definindo uma função personalizada com o mesmo nome em sua sessão do TabExpansion2 PowerShell. Essa função personalizada pode fornecer conclusões para comandos ou parâmetros personalizados. Embora seja possível substituir TabExpansion2o , não há suporte. Você deve criar uma função personalizada somente se tiver uma necessidade específica de personalizar o comportamento de preenchimento de tabulação.

Exemplos

Exemplo 1 – Obter preenchimento de tabulação para o parâmetro de comando

Este exemplo mostra os mesmos resultados que você obteria inserindo Format-Hex -<Tab> no prompt de comando do PowerShell. A TabExpansion2 função retorna um objeto CommandCompletion que contém uma lista de possíveis conclusões para o - 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

Exemplo 2 – Obter preenchimento de tabulação para valores de parâmetro

Este exemplo mostra como obter o preenchimento de tabulação para valores de parâmetro. Neste exemplo, esperamos que o parâmetro Stage tenha três valores possíveis e que um dos valores seja Three. Você pode usar essa técnica para testar se o preenchimento de tabulação para sua função retorna os 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

Um objeto AST (árvore de sintaxe abstrata) que representa o script que você deseja expandir usando o preenchimento de tabulação.

Tipo:Ast
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-cursorColumn

O número da coluna do cursor na cadeia de caracteres do script de entrada. A posição do cursor é usada para determinar o token que é expandido pelo preenchimento da tabulação.

Tipo:Int32
Cargo:1
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-inputScript

Uma cadeia de caracteres que representa o script que você deseja expandir usando o preenchimento de tabulação.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-options

Uma tabela de hash de valores de opção a serem passados para a CompleteInput() API. A API aceita as seguintes opções booleanas:

  • IgnoreHiddenShares - Quando definido como $true, ignore os compartilhamentos UNC ocultos, como \\COMPUTER\ADMIN$ e \\COMPUTER\C$. Por padrão, o PowerShell inclui compartilhamentos ocultos.
  • RelativePaths - Por padrão, o PowerShell decide como expandir caminhos com base na entrada fornecida. Definir esse valor como $true força o PowerShell a substituir caminhos por caminhos relativos. Definir esse valor como $false, força o PowerShell a substituí-los por caminhos absolutos.
  • LiteralPaths - Por padrão, o PowerShell substitui caracteres de arquivo especiais, como colchetes e acentos graves, por seus equivalentes de escape. Definir esse valor como $true impede a substituição.
Tipo:Hashtable
Cargo:3
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-positionOfCursor

O número da coluna do cursor no AST de entrada. A posição do cursor é usada para determinar o token que é expandido pelo preenchimento da tabulação.

Tipo:IScriptPosition
Cargo:2
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-tokens

Uma matriz de tokens analisados do script de entrada. Os tokens são usados para determinar o token que é expandido pelo preenchimento da guia.

Tipo:Token[]
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

None

Saídas

CommandCompletion