DEV Community

Lucas Luan de Melo
Lucas Luan de Melo

Posted on

Como Configurar o Solargraph no VS Code com WSL2 para projetos legados

Introdução

Recentemente, enfrentei um problema ao tentar configurar o Solargraph no VS Code enquanto utilizava o WSL2 e o ASDF para gerenciar versões do Ruby. Os projetos legados que eu estava trabalhando usavam Docker, o que causava conflitos com as versões do Ruby e resultava em erros ao inicializar o servidor. Após muita pesquisa e tentativa e erro, consegui resolver o problema. Aqui está um guia passo a passo para ajudar outros desenvolvedores que possam estar enfrentando a mesma situação.

Disclaimer

O caminho mais fácil para resolver problemas de versão de Ruby seria modificar o arquivo .tool-versions do projeto para usar uma versão do Ruby compatível com o Solargraph. No entanto, em ambientes legados, essa modificação pode não ser possível devido a dependências específicas do projeto ou restrições impostas pela equipe de desenvolvimento. Portanto, este guia fornece uma solução alternativa que não requer mudanças no arquivo .tool-versions.

Passo a Passo para Resolver o Problema

Pré-requisitos

  1. WSL2 instalado: Siga as instruções oficiais da Microsoft para configurar o WSL2.
  2. VS Code instalado: Baixe e instale o VS Code.
  3. Distribuição Linux no WSL2: Por exemplo, Ubuntu.

Passo 1: Configure o Ruby no WSL2 com ASDF

  • Instale o ASDF: No terminal do WSL2, execute os seguintes comandos:
    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0
    echo '. $HOME/.asdf/asdf.sh' >> ~/.bashrc
    echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
    source ~/.bashrc 
Enter fullscreen mode Exit fullscreen mode
  • Adicione o plugin Ruby e instale uma versão do Ruby:
    asdf plugin-add ruby https://github.com/asdf-vm/asdf-ruby.git
    asdf install ruby 3.3.2  # Substitua pela versão necessária
    asdf global ruby 3.3.2
Enter fullscreen mode Exit fullscreen mode
  • Verifique a instalação do Ruby:
    ruby -v
Enter fullscreen mode Exit fullscreen mode

Passo 2: Instale o Solargraph

  • Instale o Solargraph:
   gem install solargraph 
Enter fullscreen mode Exit fullscreen mode
  • Verifique a instalação do Solargraph:
    which solargraph
Enter fullscreen mode Exit fullscreen mode

Passo 3: Configure o VS Code para Usar o WSL2

  • Instale a Extensão "Remote - WSL": No VS Code, abra o Marketplace de Extensões e instale a extensão Remote - WSL.
  1. Abra o VS Code no WSL2: No terminal do WSL2, navegue até o diretório do seu projeto e abra o VS Code:
    code .
Enter fullscreen mode Exit fullscreen mode

Passo 4: Configure o Solargraph no VS Code

  • Adicione a configuração no settings.json: No VS Code aberto no ambiente WSL2, abra o Command Palette (Ctrl+Shift+P ou Cmd+Shift+P), procure por "Preferences: Open Settings (JSON)" e adicione a seguinte configuração:
    {
        "solargraph.commandPath": "/home/seu_usuario/.asdf/shims/solargraph",
        "solargraph.useBundler": false,
        "solargraph.diagnostics": true,
        "solargraph.formatting": true
    }
Enter fullscreen mode Exit fullscreen mode

Substitua /home/seu_usuario/.asdf/shims/solargraph pelo caminho retornado pelo comando which solargraph.

  • Reinicie o VS Code: Reinicie o VS Code para aplicar as novas configurações.

Solução de Problemas

  • Verifique as permissões e caminhos: Certifique-se de que o caminho especificado para o Solargraph no settings.json está correto e acessível.

  • Logs do VS Code: Verifique os logs do VS Code para mais detalhes sobre o erro. Acesse os logs através do Command Palette (Ctrl+Shift+P -> "Output") e selecione "Solargraph" no menu de saída.

Conclusão

Com esses passos, você deve conseguir configurar o Solargraph no VS Code utilizando a versão do Ruby gerenciada pelo ASDF no ambiente WSL2, sem a necessidade de modificar o arquivo .tool-versions do projeto. Espero que este guia seja útil para resolver problemas semelhantes que você possa encontrar no seu ambiente de desenvolvimento Ruby.

Top comments (1)

Collapse
 
levxyca profile image
Leticia @levxyca

Parabéns pelo artigo 🚀