diff --git a/home/vim/lua/ambroisie/lsp.lua b/home/vim/lua/ambroisie/lsp.lua index af87950..d4f3fad 100644 --- a/home/vim/lua/ambroisie/lsp.lua +++ b/home/vim/lua/ambroisie/lsp.lua @@ -18,22 +18,28 @@ M.on_attach = function(client, bufnr) severity_sort = true, }) - vim.cmd([[ - augroup DiagnosticsHover - autocmd! * - " Show diagnostics on "hover" - autocmd CursorHold,CursorHoldI lua vim.diagnostic.open_float(nil, {focus=false, scope="cursor"}) - augroup END - ]]) + -- Show diagnostics on "hover" + local augroup = vim.api.nvim_create_augroup("DiagnosticsHover", {}) + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI"}, { + group = augroup, + buffer = bufnr, + callback = function() + vim.diagnostic.open_float(nil, {focus=false, scope="cursor"}) + end, + }) -- Format on save - if client.resolved_capabilities.document_formatting then - vim.cmd([[ - augroup LspFormatting - autocmd! * - autocmd BufWritePre lua vim.lsp.buf.formatting_sync() - augroup END - ]]) + if client.supports_method("textDocument/formatting") then + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + 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 -- Mappings