Only set lsp keymaps if server attached

This commit is contained in:
Oliver Hartmann 2021-12-21 22:21:54 +01:00
parent b7020671d7
commit 0e92584aaf

View File

@ -25,32 +25,35 @@ local on_attach = function(client, bufnr)
-- Mappings.
local opts = { noremap=true, silent=true }
utils.map('n', '<space>,', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
utils.map('n', '<space>;', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
utils.map('n', '<space>a', '<cmd>Telescope lsp_code_actions<CR>', opts)
utils.map('n', '<space>d', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
utils.map('n', '<space>e', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
utils.map('n', '<space>h', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
utils.map('n', '<space>c', '<cmd>lua vim.lsp.buf.outgoing_calls()<CR>', opts)
utils.map('n', '<space>C', '<cmd>lua vim.lsp.buf.incoming_calls()<CR>', opts)
utils.map('n', '<space>m', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
-- utils.map('n', '<space>r', '<cmd>lua vim.lsp.buf.references()<CR, opts>')
utils.map('n', '<space>s', '<cmd>lua vim.lsp.buf.document_symbol()<CR>', opts)
utils.map('n', '<C-t>', '<cmd>Telescope lsp_dynamic_workspace_symbols<CR>', opts)
utils.map('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
utils.map('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
utils.map('n', '<space>r', '<cmd>Telescope lsp_references<cr>')
utils.map('n', '<C-S-o>', '<cmd>Telescope lsp_document_symbols<cr>')
utils.map('n', '<A-m>', '<cmd>Telescope lsp_document_symbols<cr>')
utils.map('n', '<space>v', '<cmd>Telescope diagnostics bufnr=0<cr>')
utils.map('n', '<A-o>', ':ClangdSwitchSourceHeader<CR>', opts)
buf_set_keymap('n', '<space>,', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
buf_set_keymap('n', '<space>;', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
buf_set_keymap('n', '<space>a', '<cmd>Telescope lsp_code_actions<CR>', opts)
buf_set_keymap('n', '<space>d', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', '<space>h', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
buf_set_keymap('n', '<space>c', '<cmd>lua vim.lsp.buf.outgoing_calls()<CR>', opts)
buf_set_keymap('n', '<space>C', '<cmd>lua vim.lsp.buf.incoming_calls()<CR>', opts)
buf_set_keymap('n', '<space>m', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
-- buf_set_keymap('n', '<space>r', '<cmd>lua vim.lsp.buf.references()<CR, opts>')
buf_set_keymap('n', '<space>s', '<cmd>lua vim.lsp.buf.document_symbol()<CR>', opts)
buf_set_keymap('n', '<C-t>', '<cmd>Telescope lsp_dynamic_workspace_symbols<CR>', opts)
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap('n', '<space>r', '<cmd>Telescope lsp_references<cr>', opts)
buf_set_keymap('n', '<C-S-o>', '<cmd>Telescope lsp_document_symbols<cr>', opts)
buf_set_keymap('n', '<A-m>', '<cmd>Telescope lsp_document_symbols<cr>', opts)
buf_set_keymap('n', '<space>v', '<cmd>Telescope diagnostics bufnr=0<cr>', opts)
buf_set_keymap('n', '<A-o>', ':ClangdSwitchSourceHeader<CR>', opts)
-- Symbols Outline
buf_set_keymap('n', '<leader>s', '<cmd>SymbolsOutline<cr>', opts)
-- Set some keybinds conditional on server capabilities
if client.resolved_capabilities.document_formatting then
utils.map('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
end
if client.resolved_capabilities.document_range_formatting then
utils.map('v', '<space>f', '<esc><cmd>lua vim.lsp.buf.range_formatting()<CR>', opts)
buf_set_keymap('v', '<space>f', '<esc><cmd>lua vim.lsp.buf.range_formatting()<CR>', opts)
end
-- Set autocommands conditional on server_capabilities