Key bindings: alterando o "cw TAB TAB" no vs code
Bom dia pessoal!
Desde o início do curso quando o professor Hugo nos mostrou o atalho "cw TAB TAB" para usar o Console.WriteLine eu fiquei encanado com uma coisa:
Estou usando o vs code no Linux, e talvez por isso alguns atalhos e features são diferentes do Visual Studio. Toda vez que eu usava o "cw TAB TAB" ele autocompletava para
System.Console.WriteLine("");
E mesmo que isso não atrapalhe em nada no funcionamento do código, me incomodava esse "System." sempre aparecendo. Fora que deixava o código mais extenso.
Hoje descobri uma forma de alterar isso e também de criar novos key bindings para facilitar o dia a dia. Não é nada essencial e podemos viver sem isso, mas também pode ajudar bastante.
Segue o passo a passo:
Com o vs code aberto aperte:
Ctrl + Shift + P
Isso abrirá uma barra de pesquisa no topo da IDE.
Então digite snippets e selecione Configure User Snippets
Digite csharp e aperte Enter
Isso vai abrir o csharpe.json que é o documento que vamos alterar para configurar as key bindings.
O próprio documento já vem com a explicação e um exemplo comentado. Basta seguir a mesma estrutura e criar as suas key bindings:
A estrutura é a seguinte:
"Print to Console": { // nome do atalho
"prefix": "cw", // Aqui você coloca o atalho, nesse caso o cw
"body": [
"Console.WriteLine(\"\");", // Coloque código que quer que seja preenchido *.
"$1" // aqui o número após o $ dita quantas vezes você precisa apertar o TAB.
],
"description": "Descrição mais detalhada"
}
}
- *Nesse caso precisei usar \ (contrabarra) para a IDE entender que as aspas dentro do código não podem ser interpretadas, e sim simplesmente apresentar elas no final. Isso porque como a estrutura do json já usa aspas para separar os valores, ele entenderia que as próximas aspas seriam para terminar o valor a ser inserido. Assim como quando queremos inserir aspas em uma mensagem final usamos
Console.WriteLine("Assim colocamos \"aspas duplas\" dentro de uma string");
Resultado:
Assim colocamos "aspas duplas" dentro de uma string
E é isso. Espero que ajude a facilitar o dia a dia de alguém mais.
Abaixo um exemplo para criar um for genérico:
André Filipe @andresantosCostumo escrever códigos sem autocomplemento ou combinações de teclas. É uma boa prática quando ainda não conhecemos todas as palavras reservadas, métodos, enfim... a sintaxe da linguagem. Assim, dá pra escrever o código até em um bloco de notas! Porém, passada essa fase, as key bindings são bem-vindas para ganharmos tempo. Muito boa publicação.
- TThiago Nebuloni @thiagonebuloni
Concordo totalmente! Obrigado!
Em resposta athiagonebuloni⬆:Marco Sousa @marcosousaExtrair da IDE o máximo é muito bom para aumentar a produtividade do código. Mas eu recomendo, pelo menos no início, escrever todas as linhas sem qualquer complementação. Vai te ajudar a saber tudo sem precisar de "ajuda".
- TThiago Nebuloni @thiagonebuloni
Tá certinho!
Em resposta athiagonebuloni⬆:Larissa Leal @LariLealEsse foi um dos motivos que me fez decidir colocar windows para fazer esse programa... nunca entendi bem essa questão do Visual Studio não ser o melhor para Linux e precisar configurar 1001 coisas. Vc já tinha usado o VS no Linux antes? Agora que já estamos desenvolvendo varias tarefas, vc acha que é tranquilo? Ainda tenho vontade de voltar com o Linux
- TThiago Nebuloni @thiagonebuloni
Eu mantive o Windows no pc pensando justamente isso, mas não precisei dele em nenhum momento até agora.
Pra fazer a instalação do dotnet no Linux foi um pouquinho complexo por causa das versões e dos pacotes corretos, mas depois que consegui instalar tudo não precisei mais mexer. Inclusive ele atualizou tranquilamente através do apt.
No geral não tive nenhum problema complexo por causa de Linux. Já faz algum tempo que as distribuições de Linux estão bem completas e com bastante suporte para todo tipo de tecnologia e hardware. Quando usei as primeiras vezes era difícil porque dificilmente reconhecia o hardware, modem, etc. E sem internet e celular tinha que ficar tentando resolver aos poucos, e indo em fontes físicas kkkkk.
Agora só vou poder falar com certeza quando chegarmos no final do programa. Segundo o Professor Hugo, quando formos integrar tudo, front e back, o Visual Studio seria essencial. Mas sempre tem como dar a volta nos problemas que aparecerem.
Cenas dos próximos capítulos kkkk
*[edit] O único problema que tive foi pra rodar o programa do Banco de um colega, porque ele fechou o arquivo em .exe, e não rodou no Wine dizendo que faltavam as bibliotecas do dotnet. Mas ainda não fui pesquisar sobre isso.
Larissa Leal @LariLealEntendi, imagino que nos próximos anos não vamos mais ter problemas com isso, eu espero hehe
Essa questão de faltar bibliotecas é o que me parece mais complicado, o que seria esse Wine que vc citou?- TThiago Nebuloni @thiagonebuloni
Pelo avanço que as distros estão tendo parece que não vamos ter problemas, não.
O Wine é um aplicativo que torna possível rodar programas feitos para Windows no Linux. Roda por exemplo os programas da Adobe. Mas não é infalível.
É bem interessante, e uma ótima solução para quem usa Linux mas precisa de programas específicos que ainda não existem similares no Linux.Parece que estão em processo de fazer o mesmo com o MacOs também.
Aqui a descrição dele:
Em resposta athiagonebuloni⬆:Lucas Ferreira @lksferreiraTop de mais maninho...
No caso do meu realizei umas configurações a mais:
"Print to console": { "prefix": "cw", //O snippet que vou utilizar "body": [ // O primeiro $ é porque utilizo muito a interpolação. // O $1 é para o cursor do mouse ficar preparado nessa posição para digitação "Console.WriteLine($\"$1\");", //Removi o $1 para não ficar opção da digitação no tab. ], "description": "Console.WriteLine - Imprime o argumento no Console e pula para próxima linha" }O System nunca me incomodou, mas agora meu irmão... produtividade aumentou 20%
Inté a proxima.
- TThiago Nebuloni @thiagonebuloni
Fui testar a mesma coisa que você fez, mas sem tirar o $1 do final e achei um bug no vd]s code kkkkk
Ele duplicou o cursor!!!! 🤣
Não dá pra ver no print mas ele fica com dois cursores, um dentro do for e outro fora.
Vou mandar pra Microsoft 😅
- Em resposta alksferreira⬆:TThiago Nebuloni @thiagonebuloni
kkkk sempre levando pro próximo nível. Muito bom!
Em resposta athiagonebuloni⬆:Mauricio Santana @mauriciosmBoa, Thiago! vc descobrindo algo novo!
Acabei de fazer duas alterações aqui para ir algo mais rápido e deu certo!- TThiago Nebuloni @thiagonebuloni
Que bom que ajudou Maurício!