Compartilhar via


TabExpansion2

Uma função auxiliar que encapsula o método CompleteInput() da classe CommandCompletion para fornecer a conclusão da guia 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 a conclusão da guia para entrada do usuário. O PowerShell chama essa função quando o usuário pressiona a tecla Tab ou Ctrl+Space ao digitar um comando. A função retorna uma lista de possíveis conclusões para a entrada atual.

TabExpansion2 normalmente não é chamado diretamente pelos usuários. No entanto, pode ser útil para testar a conclusão da guia. Para usar TabExpansion2, 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 possíveis conclusões para a entrada atual. Esse script de entrada pode ser uma cadeia de caracteres ou uma AST (árvore de sintaxe abstrata) que representa o script.

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

Exemplos

Exemplo 1 – Obter a conclusão da guia 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 função TabExpansion2 retorna um objeto CommandCompletion que contém uma lista de possíveis conclusões para o token de -.

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 a conclusão da guia para valores de parâmetro

Este exemplo mostra como obter a conclusão da guia 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 a conclusão da guia 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 de árvore de sintaxe abstrata (AST) que representa o script que você deseja expandir usando a conclusão da guia.

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 de script de entrada. A posição do cursor é usada para determinar o token que é expandido pela conclusão da guia.

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 a conclusão da guia.

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

-options

Um hashtable de valores de opção a serem passados para a API CompleteInput(). A API aceita as seguintes opções boolianas:

  • IgnoreHiddenShares - Quando definido como $true, ignore 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 $falseforça o PowerShell a substituí-los por caminhos absolutos.
  • LiteralPaths - Por padrão, o PowerShell substitui caracteres de arquivo especiais, como colchetes e tiques de fundo, por seus equivalentes com 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 pela conclusão da guia.

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 pela conclusão 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