From 236d48befb60b53c2b117a21738f0319ff37af3c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 3 Nov 2022 17:57:41 +0100 Subject: [PATCH] home: vim: lua: lsp: update for nvim 0.8 Two big changes: * Making use of the lua API for creating autocmds. * Using `client.supports_method`. --- home/vim/lua/ambroisie/lsp.lua | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) 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