LSP, Autocomplete e Machine Learning - Neovim com Lua
Instalamos LSP do Neovim, assinatura de função, snippets e entre outros e deixamos muito mais confortável!
Hoje vamos finalizar nossa série aqui no blog, mas ainda teremos um vídeo(somente para instalarmos alguns plugins adicionais e revisar conceitos) para completar essa série e o vídeo postarei aqui e no primeiro artigo dessa série assim que ficar pronto.
Se você não viu os capítulos anteriores, segue os links:
nvim-lsp - Um servidor de linguagem(LSP, serve para completar palavras reservadas da linguagem que estiver escrevendo) criado pelo próprio time do Neovim;
nvim-cmp - Um autocomplete para exibir as opções do servidor de linguagem e entre outros;
lsp_signature.nvim - Para obtermos a assinatura da função que utilizarmos;
cmp-tabnine - Machine Learning para um autocomplete mais avançado;
lspkind-nvim - Quando o combo do autocomplete for aberto exibir ícones e informações amigáveis .
Instalando o LSP e o Autocomplete
Já de primeira vamos adicionar todos os plugins e depois vamos criar os arquivos de configuração porque todos ficarão aninhados.
Adicione essas linhas ao seu ~/.config/nvim/lua/plugins/plugins.lua:
Perceba que o tabnine rodará um script sh assim que for adicionado e possui o nvim-cmp como dependência.
E em seguida rode: :PackerInstall .
Configurando para o Tabnine
Agora vamos criar outro arquivo ainda em : ~/.config/nvim/lua/plugins/tabnine.lua e adicionar o código para Machine Learning:
Ainda NÃO adicione ao seu init.lua, pois vamos criar uma condição.
Configurações para o LSP
Vamos criar outro arquivo(~/.config/nvim/lua/plugins/lsp.lua) com o código parecido(você pode achar que haverá codigo duplicado, mas estamos usando todas as variáveis locais e o arquivo só será carregado de acordo com o arquivo posterior que vamos criar), mas para o LSP:
Configurando os arquivos dinamicamente
Existe alguns detalhes para fazer todos funcionarem normalmente. O tabnine é interessante rodá-lo quando não há LSP disponível, geralmente eu incluo nos arquivos Markdown porque fica mais fácil, já quando estou escrevendo código, ele pode atrapalhar seu LSP.
Então, para separarmos vamos fazer o seguinte, vamos criar um arquivo dentro de lua/plugins de nome complete.lua e inserir o seguinte conteúdo:
vim ~/.config/nvim/lua/plugins/complete.lua
E para carregar esse novo arquivo, importe no seu init.lua:
Agora é só testar!
No vídeo dessa série vou explicar os trechos de cada código e adicionar mais coisas!
Veja abaixo alguns vídeos/gif/imagem dos plugins que instalamos:
Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!