1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00

Merge pull request #101 from jdhao/lsp-map

refactor: lsp mapping
This commit is contained in:
jdhao 2022-09-09 19:42:42 +08:00 committed by GitHub
commit eaddee0c5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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", {