.NET CLI: ativando auto complete na linha de comando

Renato Groffe
3 min readMar 29, 2021

--

Embora muitos desconheçam, desde o .NET Core 2.0 a CLI (command-line interface) conta com uma opção chamada complete.

Ao executar os comandos:

dotnet complete "re"

E:

dotnet complete "a"

Teremos como resultado as opções que coincidem com os textos digitados entre aspas:

Podemos ir muito além com esta funcionalidade, empregando a mesma com mecanismos de auto complete com a tecla TAB ao utilizar ferramentas como PowerShell Core e Bash. Ativar esta capacidade extremamente útil requer ajustes simples, os quais dependerão obviamente da solução de linha de comando adotada.

Neste artigo descreverei os passos necessários para habilitar o uso de auto complete com o .NET CLI, através de ajustes no profile do PowerShell Core e testes com um projeto ASP.NET Core baseado no .NET 5 (nos links da seção Referências há detalhes como configurar esta funcionalidade em soluções como Bash).

E aproveito este espaço para um convite…

Nesta terça dia 30/03 a partir das 21:00 - horário de Brasília - teremos mais um evento ONLINE e GRATUITO no Canal .NET. Desta vez uma live focada em boas práticas na implementação de aplicações na nuvem, com diversas orientações úteis para se trabalhar com o Azure, Azure DevOps, GitHub Actions, Docker, Kubernetes, PowerShell e outras tecnologias (mesmo outras nuvens)!

Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube:

https://bit.ly/azure-tech-nights-2021-d5

Configurando o Profile do PowerShell Core

Um Profile no PowerShell Core é um arquivo contendo comandos para customizar o ambiente e preferências de um usuário, sendo executado ao se iniciar uma nova sessão deste utilitário.

O código a seguir ao ser executado no PowerShell Core criará um arquivo de profile, caso este ainda não exista:

Podemos editar tal arquivo com o Visual Studio Code, executando para isso a instrução:

code $PROFILE

Acrescentar no arquivo (que foi criado do zero com o nome Microsoft.PowerShell_profile.ps1 e estava sem conteúdo nos testes que descrevo aqui) as instruções a seguir:

Na próxima imagem estão os resultados destas ações:

A partir desse momento já será possível utilizar o recurso de auto complete, bastando apenas que se inicie uma nova seção do PowerShell Core (pelo próprio utilitário do PowerShell, no Windows Terminal ou ainda pelo prompt do Visual Studio Code).

Testes

Para os testes descritos nesta seção utilizei a tecla TAB a fim de acionar o auto complete. Em todos os cenários há o uso do PowerShell Core, com os ajustes no profile ativando a capacidade de completar os parâmetros na linha de comando.

A seguir temos um primeiro teste, com o package Dapper.Contrib sendo adicionado a uma API REST baseada em .NET 5 + ASP.NET Core (o auto complete pode ser útil até mesmo na escolha de um pacote!):

Clique nesta imagem para visualizar com uma melhor resolução

Em um segundo teste utilizei o comando dotnet restore a partir do PowerShell Core no Windows Terminal:

Clique nesta imagem para visualizar com uma melhor resolução

Por fim, um último teste com o comando dotnet publish dentro do próprio utilitário do PowerShell:

Clique nesta imagem para visualizar com uma melhor resolução

--

--

Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker