diff options
| author | jdhao <jdhao@hotmail.com> | 2022-09-09 19:42:42 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-09 19:42:42 +0800 |
| commit | eaddee0c5cbf7581a73be77c7bb95c8e88640130 (patch) | |
| tree | eba1ec895845c51d671956e2f78940879ac1e8eb | |
| parent | e209ef686a3ebc0838e21abc4b274005ba9edcd6 (diff) | |
| parent | 0582f26abeee0c7eba66dd01b381b9bd1e6c9fb6 (diff) | |
Merge pull request #101 from jdhao/lsp-map
refactor: lsp mapping
| -rw-r--r-- | lua/config/lsp.lua | 38 |
1 files 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", "<C-]>", vim.lsp.buf.definition, opts) - keymap.set("n", "K", vim.lsp.buf.hover, opts) - keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts) - keymap.set("n", "<space>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", "<space>q", function() vim.diagnostic.setqflist({open = true}) end, opts) - keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts) - keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts) - keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts) - keymap.set("n", "<space>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", "<C-]>", vim.lsp.buf.definition) + map("n", "K", vim.lsp.buf.hover) + map("n", "<C-k>", vim.lsp.buf.signature_help) + map("n", "<space>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", "<space>q", function() vim.diagnostic.setqflist({open = true}) end, { desc = 'put diagnostic to qf' }) + map("n", "<space>ca", vim.lsp.buf.code_action, { desc = 'LSP code action' }) + map("n", "<space>wa", vim.lsp.buf.add_workspace_folder, { desc = 'add workspace folder' } ) + map("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, { desc = 'remove workspace folder' }) + map("n", "<space>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", "<space>f", vim.lsp.buf.formatting_sync, opts) + map("n", "<space>f", vim.lsp.buf.formatting_sync, { desc = 'format code' }) end if client.resolved_capabilities.document_range_formatting then - keymap.set("x", "<space>f", vim.lsp.buf.range_formatting, opts) + map("x", "<space>f", vim.lsp.buf.range_formatting, { desc = 'range format' }) end api.nvim_create_autocmd("CursorHold", { |
