Compartilhar via


TabExpansion2

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

Syntax

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 conclusão 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 possíveis conclusões para a entrada atual.

TabExpansion2 normalmente não é chamado diretamente pelos usuários. No entanto, ele pode ser útil para testar a conclusão da guia. 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 possíveis conclusões 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 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 de tabulação.

Exemplos

Exemplo 1 - Obter conclusão de tabulação para 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 conclusão de tabulação para valores de parâmetro

Este exemplo mostra como obter a conclusão 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 a conclusão da guia para que sua função retorne 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 de tabulação.

Tipo:Ast
Position:0
valor padrão:None
Obrigatório:True
Accept pipeline input:False
Accept wildcard characters: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 pela conclusão da guia.

Tipo:Int32
Position:1
valor padrão:None
Obrigatório:False
Accept pipeline input:False
Accept wildcard characters:False

-inputScript

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

Tipo:String
Position:0
valor padrão:None
Obrigatório:True
Accept pipeline input:False
Accept wildcard characters:False

-options

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

  • 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 para $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 back-ticks, por seus equivalentes de escape. Definir esse valor para $true impedir a substituição.
Tipo:Hashtable
Position:3
valor padrão:None
Obrigatório:False
Accept pipeline input:False
Accept wildcard characters: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
Position:2
valor padrão:None
Obrigatório:True
Accept pipeline input:False
Accept wildcard characters:False

-tokens

Uma matriz de tokens analisados a partir do script de entrada. Os tokens são usados para determinar o token que é expandido pela conclusão da guia.

Tipo:Token[]
Position:1
valor padrão:None
Obrigatório:True
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

Saídas

CommandCompletion