Formatting LSP
Definição curta: Tutorial para configurar formatação automática de código via LSP no Neovim. Usa
null-lsou built-in LSP formatting.
Antes de começar
- Neovim v0.11 ou mais recente instalado — confira com
nvim --version - Um
init.luaque já carrega, ainda que vazio
O que você vai aprender
- Explicar Built-in formatting com suas palavras
- Explicar null-ls setup com suas palavras
- Explicar Formatting on save com suas palavras
- Localizar o assunto desta página no
:helpdo seu próprio Neovim
O que é
O LSP permite formatação de código padronizada. No Neovim v0.11+, o formatting pode ser feito via built-in vim.lsp.buf.format() ou com null-ls.
Índice de sub-tópicos
Built-in formatting
Disponível no Neovim 0.10+:
vim.keymap.set("n", "<leader>gf", function()
vim.lsp.buf.format({ async = true })
end, { silent = true })null-ls setup
-- plugins/null-ls.lua
return {
"jose-elias-alvarez/null-ls.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
}-- setup/null-ls.lua
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.stylua, -- Lua
null_ls.builtins.formatting.black, -- Python
null_ls.builtins.formatting.prettier, -- JS/TS
null_ls.builtins.formatting.rustfmt, -- Rust
null_ls.builtins.formatting.gofmt, -- Go
},
})Formatting on save
-- setup/formatting.lua
vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*.lua",
callback = function()
vim.lsp.buf.format({ async = true })
end,
})Keymaps
vim.keymap.set("n", "<leader>gf", function()
vim.lsp.buf.format({ async = true })
end, { desc = "Format buffer with LSP" })Você aprendeu
- Built-in formatting
- null-ls setup
- Formatting on save
- Keymaps
Perguntas para reflexão
- O que Built-in formatting resolve, e o que se perde sem isso?
- O que null-ls setup resolve, e o que se perde sem isso?
- O que Formatting on save resolve, e o que se perde sem isso?
- Qual parte desta página você conseguiria reproduzir sem consultar, direto no editor?
Artigos relacionados
Veja também
- Configuração LSP — Setup LSP
- Configuração Treesitter — Indentação Treesitter
Referências
- conform.nvim — Alternativa moderna ao null-ls
- Neovim Formatting — Documentação oficial