Iniciando no Elixir com WSL

Start

O primeiro post que escrevi configura o WSL mais o Neovim. De qualquer forma, vou repetir algumas instruções citando outras ferramentas.

Caso queira instalar direto no Windows: Elixir Install.

  • WSL

    • Abrir o terminal: Win + R -> cmd.
      • wsl --install se for a primeira vez, talvez seja necessário reiniciar. Por padrão, vai instalar o Ubuntu.
      • Para instalar um distribuição Linux diferente: wsl --install [distro].
    • Documentação: WSL Install.
    • Siga as instruções que irá aparecer de acordo com a distribuição Linux.
  • Opcional: depois que fechar o terminal. Para ficar mais fácil, coloque como padrão o Ubuntu. Toda que você abrir o terminal do Windows, ele irá logar diretamente na sua distribuição.

    • Settings -> Default Profile.
    • Profile -> Ubuntu -> Appearance (Aparência) -> Color scheme = Dark+.
    • Salve as alterações.

Opcional de Ferramentas

Shell

Instalar Fish, que é um command line shell. Há outras opções, por exemplo zsh que é bem conhecido e foi ele que utilizei no primeiro post.

Estou fazendo isso porque tem autocompletes, sugestões de comando no terminal e syntax highlighting principalmente se for dar um comando que não existe.

sudo apt update
sudo apt install fish

Definir como padrão no Linux.

sudo usermod -s /usr/bin/fish $USER

Reinicie o terminal.

Para enfeitar mais ainda, vou usar Starship. Vou combinar ele com o Fish e deixar mais minimalista. A ideia é parecida com Oh My Fish, Oh My Zsh… Totalmente opcional.

Instalar o Starship

curl -sS https://starship.rs/install.sh | sh

Após o comando, ele vai exibir algumas opções para ativar nos mais diversos shell que tem. No nosso caso que será com fish:

mkdir -p ~/.config/fish
echo 'starship init fish | source' >> ~/.config/fish/config.fish

Reinicia novamente o terminal.

Editor

Se não quiser modificar arquivos usando nano, vim ou nvim, você pode ir na loja da Microsoft e instalar o VS Code. É gratuito e ele vem integrado com o WSL automaticamente, só digitar no terminal code . e pronto.

Mas, aqui estará os passos para explorar Elixir com o Neovim.

Particularmente gosto do Kickstart do Neovim. É recomendado fazer um fork do projeto original. Eu fiz esse fork e modifiquei para o meu gosto particular, por exemplo mudando o tema.

De qualquer forma… será necessário instalar o Neovim, depois clonar o Kickstart e executar.

Se voce instalar direto do sudo apt, provavelmente vai pegar versão stable desatualizada e terá problema ao baixar o lazyvim, kickstart etc.
sudo apt install make gcc ripgrep unzip git xclip
  • Baixando o arquivo comprimido e depois extraindo:
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim-linux-x86_64
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
  • Adicionando no Path:
set -gx PATH /opt/nvim-linux-x86_64/bin $PATH
  • Recarregue o shell:
exec fish
  • Teste se ocorreu tudo certo:
which nvim
nvim --version
git clone https://github.com/nvim-lua/kickstart.nvim.git ~/.config/nvim
  • Depois escreva: nvim para instalar os plugins.

  • Para sair, :q talvez precise usar mais uma vez :q.

Elixir

  • Precisamos instalar o Erlang e o Elixir.
    • Isto por que o Elixir utiliza da Erlang VM, inclusive packages do Erlang você pode utilizar sem problema no seu projeto Elixir.

Se voce fizer sudo apt install erlang elixir você vai pegar versões anteriores, não vai ser legal.

  • Para pegar as versões atualizadas, precisamos adicionar mais um repositório no gerenciador apt.
sudo add-apt-repository ppa:rabbitmq/rabbitmq-erlang
sudo apt update
sudo apt install git elixir erlang
  • Testando se foi instalado corretamente:
elixir --version
iex

Rodando iex você terá um interativo, escrevendo o código na sintaxe do Elixir, você já conseguirá executar. Similar quando executa python.

Para sair pode usar: CTRL+C duas vezes.

  • Voltando para o Neovim…
nvim
  • Com o Neovim aberto digite: :Mason.

Pode ser que carregue alguns LSP, o que é isso? É abraviação de Language Server Protocol, um protocolo de comunicação entre o ambiente de desenvolvimento e servidores da linguagem. Fornece alguns recursos, por exemplo: conclusão automática, navegação até a definição de um símbolo, localização de referências etc.

  • Instalando o LSP do Elixir.

Digite: /elixir e aperte ENTER. Provavelmente estará destacado LSP correto do Elixir, que é elixir-ls. Aperte i para instalar.

Para ir pro começo do Mason, digite gg, é o comando de ir para a primeira linha. Caso queira sair :q.

Instalando/atualizando ferramentas interessantes do Elixir.

mix local.hex
mix archive.install hex phx_new

hex é o gerenciador de pacotes, precisa dele para instalar o Phoenix e outras libs. Semelhante ao npm e cargo.

archive.install vai instalar o gerador de projetos Phoenix como um archive do Mix.

phx_new é um template que gera a estrutura do projeto Web, utilizando o framework Phoenix.

Iniciar um novo projeto:

mix phx.new meu_app

Conclusão

Deixo alguns links principais para aprender o básico:

Se você vier de uma linguagem de programação com paradigma diferente da funcional, pode ocorrer de sentir uma barreira. Mas você conseguirá superar rapidamente.

Três coisas iniciais da linguagem que é bom entender bem:

  • Atoms
  • Pattern Matching
  • Pipe Operator

Pronto, agora é só alegria. Espero ter ajudado de alguma forma.