return { "neovim/nvim-lspconfig", keys = { { "d[", function() vim.diagnostic.goto_prev() end, desc = "Previous diagnostic", }, { "d]", function() vim.diagnostic.goto_next() end, desc = "Next diagnostic", }, { "gD", function() vim.lsp.buf.declaration() end, desc = "Go to declaration", }, { "gd", function() vim.lsp.buf.definition() end, desc = "Go to definition", }, { "K", function() vim.lsp.buf.hover() end, desc = "Show documentation", }, { "", "Lspsaga code_action", desc = "Code actions", }, { "", function() vim.lsp.buf.rename() end, desc = "Rename symbol", }, { "wa", function() vim.lsp.buf.add_workspace_folder() end, desc = "Add workspace folder", }, { "wr", function() vim.lsp.buf.remove_workspace_folder() end, desc = "Remove workspace folder", }, { "wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, desc = "List workspace folders", }, }, }