From 28049ed5407dd5e6cfdf2dcaf4d6dace24d5d6ed Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Sun, 6 Mar 2022 13:11:12 +0530 Subject: [PATCH] nvim: lsp: Use the new auto command API --- nvim/.config/nvim/lua/lsp.lua | 37 +++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/nvim/.config/nvim/lua/lsp.lua b/nvim/.config/nvim/lua/lsp.lua index 9e76667..a564595 100644 --- a/nvim/.config/nvim/lua/lsp.lua +++ b/nvim/.config/nvim/lua/lsp.lua @@ -2,6 +2,7 @@ local nvim_lsp = require 'lspconfig' local protocol = require 'vim.lsp.protocol' local ts_utils = require 'nvim-lsp-ts-utils' local util = require 'lspconfig/util' +local lightbulb = require 'nvim-lightbulb' -- https://github.com/neovim/nvim-lspconfig/wiki/User-contributed-tips function FormatRangeOperator() @@ -138,15 +139,43 @@ local on_attach = function(client, bufnr) vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gq', 'lua vim.lsp.buf.formatting()', opts) end + if client.resolved_capabilities.code_lens or client.resolved_capabilities.document_highlight then + vim.api.nvim_create_augroup("LSP", {clear = true}) + end + if client.resolved_capabilities.code_lens then vim.api.nvim_buf_set_keymap(bufnr, "n", "l", "lua vim.lsp.codelens.run()", opts) - vim.api.nvim_command [[autocmd CursorHold,CursorHoldI,InsertLeave lua vim.lsp.codelens.refresh()]] - vim.api.nvim_command [[autocmd CursorHold,CursorHoldI lua require'nvim-lightbulb'.update_lightbulb()]] + vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI", "InsertLeave"}, { + group = "LSP", + buffer = bufnr, + callback = function () + vim.lsp.codelens.refresh() + end, + }) + vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI"}, { + group = "LSP", + buffer = bufnr, + callback = function () + lightbulb.update_lightbulb() + end, + }) end if client.resolved_capabilities.document_highlight then - vim.api.nvim_command [[autocmd CursorHold lua vim.lsp.buf.document_highlight()]] - vim.api.nvim_command [[autocmd CursorMoved lua vim.lsp.buf.clear_references()]] + vim.api.nvim_create_autocmd("CursorHold", { + group = "LSP", + buffer = bufnr, + callback = function () + vim.lsp.buf.document_highlight() + end, + }) + vim.api.nvim_create_autocmd("CursorMoved", { + group = "LSP", + buffer = bufnr, + callback = function () + vim.lsp.buf.clear_references() + end, + }) end end