diff --git a/lua/taken/plugins/lsp/null-ls.lua b/lua/taken/plugins/lsp/null-ls.lua index 7524964..290628a 100644 --- a/lua/taken/plugins/lsp/null-ls.lua +++ b/lua/taken/plugins/lsp/null-ls.lua @@ -4,6 +4,7 @@ return { config = function() local null_ls = require("null-ls") + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) local formatting = null_ls.builtins.formatting local diagnostics = null_ls.builtins.diagnostics @@ -12,6 +13,19 @@ return { formatting.stylua, formatting.clang_format, }, + + on_attach = function(client, bufnr) + if 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({ async = false }) + end, + }) + end + end, }) end, }