Se você é um profissional ou entusiasta do Elixir e utiliza o Emacs como sua principal ferramenta de edição, a ferramenta Alchemist é essencial para otimizar sua experiência de desenvolvimento. Este guia detalha o processo de instalação e uso do Alchemist no ambiente Emacs.
Pré-requisitos:
Assegure-se de atender aos seguintes requisitos antes de prosseguir:
- O Emacs deve estar instalado em seu dispositivo.
- As ferramentas Elixir e Mix devem estar presentes e operacionais.
Instruções de Instalação:
Configuração do Package Manager do Emacs (MELPA):
Caso ainda não tenha o MELPA configurado, siga os passos abaixo:
-
Insira o código a seguir no seu arquivo
.emacs
ouinit.el
:(require 'package) (add-to-list 'package-archives '("melpa" . "<https://melpa.org/packages/>") t) (package-initialize)
- Salve as alterações e reinicie o Emacs.
- Para instalar o Alchemist:
- Utilize o comando
M-x
(Meta + x; Meta geralmente corresponde à teclaAlt
ouEsc
). - Execute
package-refresh-contents
para atualizar a lista de pacotes. - Novamente, utilize o comando
M-x
. - Execute
package-install
, seguido dealchemist
.
- Utilize o comando
-
Para garantir que o Alchemist seja ativado sempre ao abrir um arquivo
.ex
ou.exs
, insira no seu arquivo.emacs
ouinit.el
:(add-hook 'elixir-mode-hook 'alchemist-mode)
Spacemacs:
Para usuários do Spacemacs:
- Abra o arquivo
.spacemacs
, comumente localizado no diretório home. - Localize e adicione
elixir
à funçãodotspacemacs-configuration-layers
. - Salve as alterações e reinicie o Spacemacs. Uma combinação útil é
SPC q r
. - Após o reinício, o Spacemacs instalará o layer Elixir, incluindo o Alchemist e outras funcionalidades relacionadas.
Doom Emacs:
Para usuários do Doom Emacs:
- Abra o arquivo localizado em
~/.doom.d/init.el
. - Encontre o módulo
elixir
e descomente a linha associada. - Salve o arquivo.
- Execute o comando
doom sync
no terminal. - Finalmente, reinicie o Doom Emacs.
Funcionalidades Principais:
Com o Alchemist instalado, você agora tem acesso a diversas funcionalidades poderosas, incluindo:
- Autocompletar: O Alchemist fornece autocompletar para módulos, funções, variáveis e muito mais.
- Ao digitar seu código, pressione
M-TAB
para ativar a sugestão de autocompletar.
- Ao digitar seu código, pressione
- Documentação Inline: Você pode acessar rapidamente a documentação de qualquer módulo ou função diretamente no Emacs.
- Coloque o cursor sobre um módulo ou nome de função e pressione
M-?
. Uma janela pop-up mostrará a documentação relevante.
- Coloque o cursor sobre um módulo ou nome de função e pressione
- Navegação: O Alchemist permite que você navegue rapidamente para a definição de qualquer módulo ou função.
- Posicione o cursor sobre um módulo ou nome de função e pressione
M-,
. Isso o levará diretamente à definição do módulo ou função.
- Posicione o cursor sobre um módulo ou nome de função e pressione
- Execução de Testes: O ambiente Emacs agora pode executar testes Elixir.
- Para executar todos os testes do projeto, pressione
M-x
e digitealchemist-mix-test
. - Para executar um teste específico, navegue até o teste desejado, pressione
M-x
e digitealchemist-mix-test-at-point
.
- Para executar todos os testes do projeto, pressione
- Integração REPL: Uma integração perfeita com o REPL
iex
do Elixir permite testes de código em tempo real e muito mais.- Para iniciar uma sessão
iex
através do Alchemist, simplesmente pressioneM-x
e digitealchemist-iex-run
e pressione Enter. Isso iniciará uma nova janela Emacs com uma sessãoiex
ativa. - Se você deseja iniciar o
iex
junto com sua aplicação Phoenix (se estiver trabalhando com o framework Phoenix), pode usar o comandoalchemist-phoenix-server-run
. Isso iniciará tanto o servidor Phoenix quanto a sessãoiex
associada. - Quando desejar encerrar a sessão
iex
, simplesmente digiteexit()
no REPL ou feche a janela do Emacs associada à sessãoiex
.
- Para iniciar uma sessão
Espero que tire bastante proveito do seu novo caldeirão e crie bons Elixires! E caso tenha alguma sugestão ou dúvida, não hesite em me mandar uma mensagem por meio de minhas redes sociais. Um grande abraço!