VS Code – Muito Mais que uma IDE

Tempo de Leitura: 8 Minutos

O Visual Studio Code, ou simplesmente VS Code como é conhecido, é uma IDE (Ambiente de Desenvolvimento Integrado – em livre tradução) de desenvolvimento criada pela Microsoft e disponibilizada como ferramenta de código aberto, porém, devido a sua poderosa API, praticamente qualquer parte da ferramenta pode ser customizada através de extensões, o que a torna independente de plataforma pois existem versões para Linux, Mac Os X e claro para Windows, e independente de linguagem pois pode ser customizada conforme a necessidade do desenvolvedor que vai utilizar. Conheça mais dessa poderosa ferramenta para desenvolvedores.

Como desenvolvedor web, uso o PHP desde o início de 2000, em ambiente linux, com apache e mysql e no inicio usava o XED como editor, e depois por muito tempo usei o Sublime Text, devido a facilidade de realce de sintaxe a nada mais. Posteriormente conheci o PHP Storm e o utilizei por algum tempo, por questões de indisponibilidade e até certo ponto de relutância, nunca tinha experimentado o uso do VS Code.

A alguns meses atras, vi alguns pontos positivos e muito material sendo falado sobre ele e resolvi experimentar, o resultado foi que me apaixonei da noite para o dia. Realmente o achei muito leve, e com algumas customizações e  extensões, pronto estava tudo da maneira que eu já estava acostumado, e de quebra ainda tinha algumas ferramentas e snippets que facilitavam muito meu trabalho.

Ai, para fechar com chave de ouro, descobri o poder da ferramenta ao poder desenvolver para outras linguagens que uso como Python e renpy para alguns projetos particulares, e também no front-end acabei por utiliza-lo com html e js. Quando usamos o mesmo ambiente para todas as linguagens, a curva de aprendizado da linguagem é muito menor e a do ambiente também, ou seja é duplamente produtivo, pois já nos habituamos aos comandos do ambiente e temos mais tempo para nos preocupar em aprender a linguagem.

Por possuir, não só as funções básicas de uma IDE, também tem integração com Git, para o controle de versões, realce de sintaxe extremamente poderoso, o suporte a extensões que permitem customiza-lo totalmente e adicionar recursos como suporte a novas linguagens ou ferramentas. Além de possuir um navegador que permite ao usuário conectar diretamente a um ambiente externo, através de ferramentas como FTP ou SFTP ou qualquer outro padrão disponibilizando os recursos como se tudo estivesse diretamente no seu computador. E um ambiente de depuração com recursos e que suporta a extensão para diversas linguagens.

O que o torna muito atraente para o uso, e muito mais  funcional que uma IDE padrão, é a capacidade de extensões fazerem a análise do código como linters e fazerem análises através do suporte ao LSP (Language Server Protocol) que fornece recursos de linguagem como auto-completar, ir para a definição, encontrar todas as referências entre outros, como também ao LSIF oferecendo o suporte à navegação avançada por código em ferramentas de desenvolvimento ou em uma interface da Web sem precisar de uma cópia local do código-fonte.

Um outro recurso é o IntelliSense, que além do realce da sintaxe e do preenchimento automático fornece conclusões inteligentes com base em tipos de variáveis, definições de funções e módulos importados. Ajudando o desenvolvedor a otimizar a quantidade de linhas produzidas com determinados códigos, e aprende com o usuário, as funções e formas que ele esta criando, ou seja, se você tiver um projeto aberto, através do IntelliSense, suas próprias funções também fazem parte dos snippets e do autocomplete, inclusive com os parâmetros declarados conforme seu código determinar. Essa capacidade é extremamente produtiva em um time de desenvolvimento, pois permite que as funções desenvolvidas por um membro se tornem automaticamente disponíveis aos demais membros.

Além de ajudar a otimizar seu código, ele conta com uma biblioteca de mais de 45000 extensões disponíveis, as funcionalidades do editor podem ser aumentadas simplesmente ao clique de um botão, e como essas extensões rodam independentes do editor, o uso delas não torna o editor mais lento pois não rodam no mesmo processo, consumindo recursos do computador somente quando é necessário o seu uso. O VS CODE possui um mecanismo, que analisa o seu uso dele (se permitido) e compara com o de outros usuários que utilizam as mesmas linguagens, e vai indicando para você (recomendando) as extensões que melhor se adaptam a seu perfil, tornando-o mais intuitivo para o uso com aquela linguagem específica.

Seu ambiente, pode ser operado praticamente só com o uso do teclado, o que para a produção de código se torna extremamente mais produtivo, evitando ter que retirar as mãos do teclado para operar o mouse. Além de possuir integração com seu terminal, pode otimizar algumas rotinas comuns como compilar o código, ou verificar e instalar dependências, entre outros. Além de permitir instalar, desinstalar e configurar qualquer extensão, a linha de comando permite realizar pesquisas no arquivo aberto, ou em qualquer arquivo do projeto, ou seja, se você precisa identificar de onde vem um determinado dado, basta usar a ferramenta de pesquisa que ele consegue abrir dinamicamente todos os lugares onde aquele texto aparece, além de permitir alguns filtros na pesquisa que a torna extremamente poderosa.

intellisense in package json

Como visto na imagem acima, o IntelliSense permite através de um serviço de idioma, fornecer conclusões inteligentes de código com base na semântica das linguagens, e de uma análise do seu código-fonte. Se um serviço de idiomas souber de possíveis conclusões, as sugestões do IntelliSense serão exibidas à medida que você digita. Se você continuar digitando caracteres, a lista de membros (variáveis, métodos etc.) será filtrada para incluir apenas membros que contenham os caracteres digitados. Ao pressiona Tab ou Enter, o item selecionado será inserido, permitindo que você complete a digitação já com os parâmetros, além de já pré-inserir as estruturas como chaves, endentações, parenteses entre outros. Caso alguma parte do seu código possua um erro de digitação, ou alguma estrutura como chaves, parenteses não estejam balanceados corretamente, o código fica identificado e assinalado para que você possa verificar a linha em questão.

O Visual Studio Code possui um editor de código de alta produtividade que, combinado aos serviços da linguagem de programação selecionada e dos recursos instalados, oferece o poder de um IDE e a velocidade de um editor de texto. Um exemplo do seu poder, é por exemplo em funções de Refactoring (reestruturação) por exemplo se você tem uma mesma função o ou mesmo código em funções diferentes, o editor por padrão vai exibir sugestões de reaproveitamento e opções para transformar o código em uma função do usuário, entre outras conforme a linguagem que está sendo exibida. Veja na imagem abaixo um exemplo de refatoração de código extraindo-o para uma função.

Extract local

Outro ponto extremamente positivo, é a possibilidade de você criar os seus próprios snippets (trechos) de inserção automática, muitas extensões criam esses trechos, e o mais interessante é você poder definir o seu próprio, através de TextMate, é possível criar trechos de grande complexidade e definições praticamente inseridas com poucos cliques ou teclas. Você pode definir se esses snippets aparecem só no projeto aberto, para uma determinada linguagem, para um determinado grupo ou workspace ou se aparece globalmente, o que torna a ferramenta extremamente produtiva.

Emmet in suggestion/auto-completion list

Em algumas linguagens, o próprio editor possui uma função de gerar código como em HTML, CSS ou outras que possuem o mesmo tipo de herança, como PHP essa função é conhecida como emmet e como pode ser visto na imagem acima, é capaz de produzir grandes trechos de código com pouca digitação, ou abreviar definições corriqueiras. Ele permite múltiplo cursor, onde é possível inserir a digitação ou abreviação em diversas linhas, com alguns cliques, é possível selecionar por exemplo todas as ocorrências de um determinado texto e substitui-lo ou editar conforme a necessidade.

Uma poderosa ferramenta, é o DEBUG, que possui funções onde é possível salvar o estado, as respostas através de uma função chamada logpoint, você pode criar um arquivo, com os dados que desejar, muito útil para quem trabalha com dados e com funções matemáticas e de manipulação de datas, o debug do VS Code é tão poderoso e cheio de recursos, que merece um post só para ele, entre outras funções, é possível gerar um log em arquivo com valores de funções, stack (pilha), respostas de funções e automatizar funções, gerando sequencias aleatórias para testar tratamento de erros entre outras coisas.

As ferramentas internas, permitem automatizar tarefas (tasks) como compilação, testes, criação de pacotes para distribuição, essas ferramentas são executadas pela linha de comando, e automatizam trabalhos de todo o ciclo de vida do software, desde a concepção, desenvolvimento, finalização, testes, distribuição e manutenção. Você pode usar tasks de terceiros para uma linguagem, ou criar e definir suas próprias.

Quanto ao ambiente de trabalho, por padrão você pode abrir através de uma linha de comando, de um atalho ou de um script para usar o aplicativo com as definições que desejar, já que as opções de linha de comando são praticamente infinitas, e é possível alterar virtualmente qualquer coisa ou comportamento. O WORKSPACE também pode ser composto de um diretório com todos os seus subdiretórios, ou de mais de um diretório totalmente independente, desse modo é permitido, por exemplo abrir os arquivos diretamente num repositório ou servidor, e a documentação existente em seu próprio computador ou qualquer outra combinação de pastas imagináveis. Para adicionar novas pastas a um projeto, você pode simplesmente arrastar e soltar para o seu ambiente aberto.

Nem mesmo a acessibilidade foi esquecida, e é permitido configurar inúmeros recursos como zoom, alto contraste, tamanho da fonte, uso do teclado e mouse, teclas de aderência para atalhos com mais de 1 tecla, leitores de tela para uso por deficientes visuais, entre outros.

P.S. => Na versão mais recente, é possível logar em sua conta microsoft (pessoal, empresarial) ou em uma conta github e sincronizar as preferências globais do aplicativo, como extensões, atalhos de teclado, preferências e temas, e a linguagem da interface. Este recurso é util para sincronizar um time de desenvolvedores com as mesmas ferramentas, ou para você andar sempre com todas as suas ferramentas a mão. Este recurso vem sendo pedido e foi atendido, mostrando que ele ainda tem espaço para crescer e que os desenvolvedores vem ativamente trabalhando em melhorias.

Gostou, aproveite e faça o download e comece a usar esse software em: https://code.visualstudio.com/Download
Quer testar as funções mais recentes, use o INSIDERS, e tenha acesso aos pré-lançamentos ou para fazer parte do time de contribuidores: https://code.visualstudio.com/insiders/