Autopreenchimento com TAB (winget)
A ferramenta de linha de comando winget oferece um comando complete
para fornecer o autopreenchimento com TAB sensível ao contexto. Ela dá suporte ao preenchimento de nomes de comando, nomes de argumentos e valores de argumento, dependendo do estado da linha de comando no momento.
Ativar o recurso auto-completar com TAB
Para habilitar o autopreenchimento com TAB usando o winget, você deve adicionar o script a seguir ao seu $PROFILE
no PowerShell.
Abra o PowerShell e insira o seguinte comando para abrir o
$PROFILE
no Bloco de notas:notepad.exe $PROFILE
Copie e cole o seguinte script no arquivo
$PROFILE
que foi aberto no Bloco de notas:Register-ArgumentCompleter -Native -CommandName winget -ScriptBlock { param($wordToComplete, $commandAst, $cursorPosition) [Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new() $Local:word = $wordToComplete.Replace('"', '""') $Local:ast = $commandAst.ToString().Replace('"', '""') winget complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } }
Salve o
$PROFILE
com o script. Em seguida, feche e reabra o PowerShell. Depois que o PowerShell for reaberto, o autopreenchimento com TAB do winget será habilitado.
Exemplos de autopreenchimento com TAB
Pressionamentos repetidos da tecla TAB (⇥
) resultarão em passar pela sequência dos valores possíveis.
Entrada | Result | Motivo |
---|---|---|
winget ⇥ |
winget install |
install é o primeiro comando abaixo da raiz |
winget sh⇥ |
winget show |
show é o primeiro comando que começa com sh |
winget source l⇥ |
winget source list |
list é o primeiro subcomando da fonte que começa com l |
winget -⇥ |
winget --version |
--version é o primeiro argumento definido para a raiz |
winget install power⇥ |
winget install "Power Toys" |
"Power Toys" é o primeiro pacote cuja ID, Nome ou Moniker começa com power |
winget install "Power Toys" --version ⇥ |
winget install "Power Toys" --version 0.19.2 |
0.19.2 é a versão mais recente do Power Toys no momento da escrita |
Referência de comando
O comando completo recebe três argumentos necessários:
Argumento | Descrição |
---|---|
--word |
A palavra atual que está sendo autopreenchida; o token no qual o cursor está localizado. Pode estar vazio para indicar que não há nenhum valor atual no cursor, mas, se fornecido, ele deverá aparecer como uma substring na linha de comando. |
--commandline |
Toda a linha de comando atual, incluindo winget . Veja os exemplos acima; tudo, exceto o caractere de tabulação (⇥ ) deve ser fornecido a esse argumento. |
--position |
A posição atual do cursor na linha de comando. Pode ser maior que o comprimento da cadeia de caracteres da linha de comando para indicar no final. |
Quando um valor de palavra é fornecido, o autopreenchimento opera no modo de substituição. Ele vai sugerir preenchimentos que se podem se ajustar corretamente neste local que também começa com o valor da palavra fornecida.
Quando um valor de palavra não é fornecido (um valor vazio é fornecido para a palavra, ex. --word=
), o autopreenchimento opera no modo de inserção. Ele vai sugerir preenchimentos que se podem se ajustar como um novo valor no local do cursor.
Com base nos argumentos, os preenchimentos automáticos sugeridos podem ser um dos seguintes:
- Um subcomando :: o cursor está localizado logo após um comando e há subcomandos disponíveis.
- Um especificador de argumento :: o cursor não está posicionado após um especificador de argumento que espera um valor e há argumentos disponíveis.
- Um valor de argumento :: o cursor está posicionado após um especificador de argumento que espera um valor ou um argumento posicional é esperado.
Depois de avaliar todos esses casos, os possíveis preenchimentos automáticos são mostrado, um em cada linha. Se a cadeia de caracteres de preenchimento automático contiver um espaço, ela será encapsulada entre aspas.