Como criar diferentes "Perfis"​ no VS Code para alternar configurações e extensões facilmente
Tags: vscode, productivity
Published: 2020-09-10 20:28:38

Adotar o [Visual Studio Code](https://code.visualstudio.com) 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](https://code.visualstudio.com/docs/editor/command-line#_advanced-cli-options) 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.

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

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.

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

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

![Perfil java VS Code!](https://i.imgur.com/KZubrvS.png "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.

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

![Perfil nodejs VS Code!](https://i.imgur.com/Wnf3TGa.png "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.

```bash
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"
```

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

```bash
code-java ~/workspaces/spring-quickstart
```

## Extensão Profile Switcher

Se você não quiser ter todo esse trabalho, o [Aaron Powell](https://www.aaron-powell.com) criou a extensão [Profile Switcher](https://marketplace.visualstudio.com/items?itemName=aaronpowell.vscode-profile-switcher) que permite salvar vários "perfis" e trocar entre eles de dentro do VSCode.

## Referencia e crédito

[Andy Van Slaars](https://vanslaars.io/) compartilhou um repositório no github [Profile Codes](https://github.com/avanslaars/code-profiles) onde aprendi como fazer isso, gratidão eterna.

Foto da capa de [hitesh choudhary](https://www.pexels.com/pt-br/@hiteshchoudhary?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels) no [Pexels](https://www.pexels.com/pt-br/foto/codificacao-codigo-computador-homem-879109/?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels).