diff --git a/modules/lsp/config.nix b/modules/lsp/config.nix index 2bf25673..bcd69d49 100644 --- a/modules/lsp/config.nix +++ b/modules/lsp/config.nix @@ -36,20 +36,21 @@ in { end -- Enable formatting - format_callback = function(client, bufnr) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - if vim.g.formatsave then - if client.supports_method("textDocument/formatting") then - local params = require'vim.lsp.util'.make_formatting_params({}) - client.request('textDocument/formatting', params, nil, bufnr) + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - end - end - end - }) + format_callback = function(client, bufnr) + if vim.g.formatsave and client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ + bufnr = bufnr + }) + end, + }) + end end default_on_attach = function(client, bufnr)