DEV Community

Cover image for Como criar diferentes "Perfis"​ no VS Code para alternar configurações e extensões facilmente
James G Silva
James G Silva

Posted on

Como criar diferentes "Perfis"​ no VS Code para alternar configurações e extensões facilmente

Adotar o Visual Studio Code como editor de código/texto padrão para diversas tecnologias (Javascript, GO, Java) não é uma escolha fácil.

Muitas vezes fazer alterações nas configurações (tema, fonte, etc), e gerenciar extensões (ativar/desativar) para cada tipo de projeto é um trabalho tedioso.

Opções avançadas de linha de comando

Felizmente o VSCode pode ser iniciado pela linha de comando com opções avançadas para carregar configurações e extensões de um diretório especifico.

A primeira coisa que precisamos fazer é criar diretórios para armazenar as configurações e extensões de cada "perfil" de desenvolvimento.



mkdir -p code_profiles/java/{exts,data}
mkdir -p code_profiles/go/{exts,data}
mkdir -p code_profiles/nodejs/{exts,data}


Enter fullscreen mode Exit fullscreen mode

Agora podemos abrir o VS Code pelo terminal com as opções --extensions-dir e --user-data-dir apontando para as extensões e configurações dos "perfis" criados.



code --extensions-dir ~/code_profiles/java/exts --user-data-dir ~/code_profiles/java/data


Enter fullscreen mode Exit fullscreen mode

Vamos iniciar o "perfil" java e instalar algumas extensões (maven, spring, etc) comuns em projetos java web.

Perfil java VS Code!

Vemos 22 extensões instaladas no "perfil" java.

Agora para ter certeza de que fizemos tudo certo, vamos iniciar o VS Code com o "perfil" nodejs e instalar algumas extensões (eslint, etc) comuns no universo javascript.



code --extensions-dir ~/code_profiles/nodejs/exts --user-data-dir ~/code_profiles/nodejs/data


Enter fullscreen mode Exit fullscreen mode

Perfil nodejs VS Code!

Agora temos apenas 8 extensões instaladas no "perfil" nodejs.

A configuração de cada perfil (settings.json) fica dentro do subdiretório User da opção --user-data-dir.

Criando apelidos

Agora que podemos alternar entre "perfis", vamos criar apelidos, atalhos no bash para não ter que sempre lembrar de todos esses comandos por completo.

Adicione alias ao arquivo de perfil do seu usuário (~/.bash_profile, ~/.zshrc, ~/.profile, ou ~/.bashrc) para cada "perfil" do VS Code.



alias code-java="code --extensions-dir ~/code_profiles/java/exts --user-data-dir ~/code_profiles/java/data"

alias code-node="code --extensions-dir ~/code_profiles/nodejs/exts --user-data-dir ~/code_profiles/nodejs/data"

alias code-go="code --extensions-dir ~/code_profiles/go/exts --user-data-dir ~/code_profiles/go/data"


Enter fullscreen mode Exit fullscreen mode

Agora, quando quiser usar um "perfil", tudo que precisa fazer é usar os atalhos.



code-java ~/workspaces/spring-quickstart

Enter fullscreen mode Exit fullscreen mode




Extensão Profile Switcher

Se você não quiser ter todo esse trabalho, o Aaron Powell criou a extensão Profile Switcher que permite salvar vários "perfis" e trocar entre eles de dentro do VSCode.

Referencia e crédito

Andy Van Slaars compartilhou um repositório no github Profile Codes onde aprendi como fazer isso, gratidão eterna.

Foto da capa de hitesh choudhary no Pexels.

Top comments (5)

Collapse
 
tuchedsf profile image
Diego

Sabe me dizer se tem como configurar o sync settings para dois profiles? para que sincronize separadamente os arquivos??
Sem ter q criar duas contas diferentes para fazer o sincronismo???

Collapse
 
jamesgsilva profile image
James G Silva

Olá Diego, eu uso um único settings para todos os perfis/extensões. Não sei se tem como sincronizar arquivos diferentes/separados. No meu setup são vários extensions-dir mas um único settings. Obrigado pelas perguntas e espero ter ajudado, tamo junto.

Collapse
 
mstadtlober profile image
Marcelo Stadtlober

Alguma forma de fazer isso no Windows? Na minha máquina com linux foi de boa.

Collapse
 
zehenriques profile image
Zé Henriques

Muuuuuito top, tudo que eu precisava, poluir o vscode é horrivel.

Collapse
 
jamesgsilva profile image
James G Silva

Obrigado pelo feedback Zé, fico feliz que este artigo lhe ajudou, abs.