From 0582f26abeee0c7eba66dd01b381b9bd1e6c9fb6 Mon Sep 17 00:00:00 2001 From: jdhao Date: Fri, 9 Sep 2022 19:42:01 +0800 Subject: [PATCH] refactor: lsp mapping --- lua/config/lsp.lua | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index 43586c2..76436a4 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -7,27 +7,33 @@ local utils = require("utils") local custom_attach = function(client, bufnr) -- Mappings. - local opts = { silent = true, buffer = bufnr } - keymap.set("n", "gd", vim.lsp.buf.definition, opts) - keymap.set("n", "", vim.lsp.buf.definition, opts) - keymap.set("n", "K", vim.lsp.buf.hover, opts) - keymap.set("n", "", vim.lsp.buf.signature_help, opts) - keymap.set("n", "rn", vim.lsp.buf.rename, opts) - keymap.set("n", "gr", vim.lsp.buf.references, opts) - keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) - keymap.set("n", "]d", vim.diagnostic.goto_next, opts) - keymap.set("n", "q", function() vim.diagnostic.setqflist({open = true}) end, opts) - keymap.set("n", "ca", vim.lsp.buf.code_action, opts) - keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, opts) - keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) - keymap.set("n", "wl", function() inspect(vim.lsp.buf.list_workspace_folders()) end, opts) + local map = function(mode, l, r, opts) + opts = opts or {} + opts.silent = true + opts.buffer = bufnr + keymap.set(mode, l, r, opts) + end + + map("n", "gd", vim.lsp.buf.definition, {desc = 'go to definition'}) + map("n", "", vim.lsp.buf.definition) + map("n", "K", vim.lsp.buf.hover) + map("n", "", vim.lsp.buf.signature_help) + map("n", "rn", vim.lsp.buf.rename, { desc = 'varialbe rename' }) + map("n", "gr", vim.lsp.buf.references, { desc = 'show references' }) + map("n", "[d", vim.diagnostic.goto_prev, { desc = 'previous diagnostic' }) + map("n", "]d", vim.diagnostic.goto_next, { desc = 'next diagnostic' }) + map("n", "q", function() vim.diagnostic.setqflist({open = true}) end, { desc = 'put diagnostic to qf' }) + map("n", "ca", vim.lsp.buf.code_action, { desc = 'LSP code action' }) + map("n", "wa", vim.lsp.buf.add_workspace_folder, { desc = 'add workspace folder' } ) + map("n", "wr", vim.lsp.buf.remove_workspace_folder, { desc = 'remove workspace folder' }) + map("n", "wl", function() inspect(vim.lsp.buf.list_workspace_folders()) end, { desc = 'list workspace folder' }) -- Set some key bindings conditional on server capabilities if client.resolved_capabilities.document_formatting then - keymap.set("n", "f", vim.lsp.buf.formatting_sync, opts) + map("n", "f", vim.lsp.buf.formatting_sync, { desc = 'format code' }) end if client.resolved_capabilities.document_range_formatting then - keymap.set("x", "f", vim.lsp.buf.range_formatting, opts) + map("x", "f", vim.lsp.buf.range_formatting, { desc = 'range format' }) end api.nvim_create_autocmd("CursorHold", {