Replace lsp/nullls format on save with conform.nvim

This commit is contained in:
Fábio André Damas 2025-08-26 09:24:22 +01:00
parent 4ed2e26529
commit 8f912a52df
3 changed files with 26 additions and 39 deletions

View file

@ -0,0 +1,19 @@
return {
'stevearc/conform.nvim',
opts = {
formatters_by_ft = {
javascript = { "prettierd", "prettier", stop_after_first = true },
kulala = { "kulala-fmt" },
lua = { lsp_format = "fallback" },
go = { lsp_format = "fallback" },
rust = { lsp_format = "fallback" },
toml = { lsp_format = "fallback" },
yaml = { lsp_format = "fallback" },
java = { lsp_format = "fallback" }
},
format_on_save = {
timeout_ms = 500,
lsp_format = "fallback",
},
},
}

View file

@ -24,26 +24,6 @@ local format_on_save = function(client, bufnr)
end
vim.api.nvim_create_autocmd('LspAttach', {
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
if not client then return end
local LSP_CLIENT_NAMES_FORMAT_ON_SAVE = { "lua_ls", "jdtls", "gopls", "taplo", "yamlls" }
for _, client_name_autoformat in ipairs(LSP_CLIENT_NAMES_FORMAT_ON_SAVE) do
if client.name == client_name_autoformat and client.server_capabilities.documentFormattingProvider then
-- Format the current buffer on save
vim.api.nvim_create_autocmd('BufWritePre', {
buffer = args.buf,
callback = function()
vim.lsp.buf.format({ bufnr = args.buf, id = client.id })
end,
})
end
end
end,
})
vim.diagnostic.config({
virtual_lines = false,
virtual_text = false,
@ -110,24 +90,11 @@ return {
config = function()
local null_ls = require("null-ls")
local kulala_fmt = {
method = null_ls.methods.FORMATTING,
filetypes = { "http" },
generator = null_ls.formatter({
command = "kulala-fmt",
args = { "format", "--stdin" },
to_stdin = true,
}),
}
null_ls.setup({
on_attach = function(client, bufnr)
format_on_save(client, bufnr)
end,
sources = {
null_ls.builtins.formatting.prettierd,
kulala_fmt,
null_ls.builtins.diagnostics.dotenv_linter,
null_ls.builtins.diagnostics.editorconfig_checker,
null_ls.builtins.diagnostics.proselint,