Configurando editores para o GHDL-LS
Posted on seg 03 maio 2021 in vhdl • 2 min read
O GHDL é um analisador, compilador e simulador para VHDL, rápido e leve ideal para prototipação.
Instalando o GHDL e GHDL language server no Linux
Para instalar o language server é preciso compilar o GHDL manualmente:
É necessário ter o gcc-gnat
e o make
, caso não o tenha basta rodar sudo apt install gnat make zlib1g-dev
.
- Baixe o código do GHDL via zip ou
git clone https://github.com/ghdl/ghdl.git
- Entre no diretório baixado e configure o instalador com
./configure --prefix=/usr/local
- Compile o GHDL com
make
- Instale o GHDL com
make install
- Instale o GHDL-LS com
pip3 install .
- Como o GHDL-LS foi instalado com o PIP ele será colocado em
~/.local/bin/ghdl-ls
, para facilitar podemos adiciona-lo no$PATH
comecho 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
Configurando o editor para usar o GHDL-LS
Oque é o Language Service Protocol (LSP)
Suportar o autocomplete, checagem de sintaxe e outras ferramentas de edição é uma tarefa complexa. Até pouco tempo atras cada IDE tinha sua própria forma de fazer isso, e cada novo editor precisava reinventar a roda. O VSCode vem com uma nova abordagem, a biblioteca rodando seu próprio processo e se comunicando com o editor via um protocolo (o LSP) podendo assim ser utilizado por diversos editores.
Neovim
O Neovim 0.5v já vem com um cliente LSP integrado que será usado nesse tutorial. Há outras opções como o coc.nvim e neomake.
Tendo seu LSP já configurado basta cadastrar o ghdl-ls
no seu init.nvim
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Um exemplo de nvim
configurado pode ser encontrado aqui
Notas do professor
A maioria dos exemplos aqui se aplicam somente aos sistema *nix, mas você pode facilmente adaptar para o seu sistema e no próprio GIT do projeto os desenvolvedores fornecem um docker que pode ser executado em qualquer plataforma suportada.
Há outros editores (na verdade quase todos modernos) que suportam LSP. Veja se o seu suporta e, usando as informações que o Guilherme descreveu neste post, você poderá facilmente integrar com o GHDL-LS.
Contribuições
- 03/mai/2021: Guilherme Salustiano escreveu este post.
- 04/mai/2021: Bruno (professor) editou para corrigir alguns erros e as notas no final do post.