reworked lspconfig

This commit is contained in:
Oliver Hartmann 2023-07-04 10:35:03 +02:00
parent 62e90c9279
commit 9aea25954f

View File

@ -1,4 +1,43 @@
on_attach = function(client, bufnr)
local lspKeys = function(bufnr)
local tele_builtins = require('telescope.builtin')
local options = { noremap = true, silent = false, buffer = bufnr }
vim.keymap.set('n', '<space>,', vim.diagnostic.goto_prev,
vim.tbl_extend('error', options, { desc = 'Diag prev' }))
vim.keymap.set('n', '<space>;', vim.diagnostic.goto_next,
vim.tbl_extend('error', options, { desc = 'Diag next' }))
vim.keymap.set({ 'n', 'x' }, '<space>a', vim.lsp.buf.code_action,
vim.tbl_extend('error', options, { desc = 'Code action' }))
vim.keymap.set('n', '<space>d', tele_builtins.lsp_definitions,
vim.tbl_extend('error', options, { desc = 'Definition' }))
vim.keymap.set('n', '<space>e',
vim.lsp.buf.declaration, vim.tbl_extend('error', options, { desc = 'Declaration' }))
vim.keymap.set('n', '<space>h', function() require('pretty_hover').hover() end,
vim.tbl_extend('error', options, { desc = 'Hover' }))
vim.keymap.set('n', '<space>c', vim.lsp.buf.outgoing_calls,
vim.tbl_extend('error', options, { desc = 'Outgoing calls' }))
vim.keymap.set('n', '<space>C', vim.lsp.buf.incoming_calls,
vim.tbl_extend('error', options, { desc = 'Incoming calls' }))
vim.keymap.set('n', '<space>m', vim.lsp.buf.rename,
vim.tbl_extend('error', options, { desc = 'Rename' }))
vim.keymap.set('n', '<C-t>', tele_builtins.lsp_dynamic_workspace_symbols,
vim.tbl_extend('error', options, { desc = 'Workspace symbols' }))
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition,
vim.tbl_extend('error', options, { desc = 'Type definition' }))
vim.keymap.set({ 'n', 'i', 'x' }, '<C-k>', vim.lsp.buf.signature_help,
vim.tbl_extend('error', options, { desc = 'Signature help' }))
vim.keymap.set('n', '<space>r', tele_builtins.lsp_references,
vim.tbl_extend('error', options, { desc = 'References' }))
vim.keymap.set('n', '<A-m>', tele_builtins.lsp_document_symbols,
vim.tbl_extend('error', options, { desc = 'References' }))
vim.keymap.set('n', '<scapce>s', tele_builtins.lsp_dynamic_workspace_symbols,
vim.tbl_extend('error', options, { desc = 'Workspace symbols' }))
vim.keymap.set('n', '<space>v', function() tele_builtins.diagnostics({ bufnr = 0 }) end,
vim.tbl_extend('error', options, { desc = 'Diagnostics' }))
vim.keymap.set('n', '<A-o>', '<cmd>ClangdSwitchSourceHeader<CR>',
vim.tbl_extend('error', options, { desc = 'Switch Source/Header' }))
end
local on_attach = function(client, bufnr)
local function buf_set_option(...)
vim.api.nvim_buf_set_option(bufnr, ...)
end
@ -6,42 +45,7 @@ on_attach = function(client, bufnr)
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
vim.api.nvim_buf_set_option(0, 'formatexpr', 'v:lua.vim.lsp.formatexpr()')
-- Mappings.
local tele_builtins = require('telescope.builtin')
vim.keymap.set('n', '<space>,', vim.diagnostic.goto_prev,
{ noremap = true, silent = false, desc = 'Diag prev', buffer = bufnr })
vim.keymap.set('n', '<space>;', vim.diagnostic.goto_next,
{ noremap = true, silent = false, desc = 'Diag next', buffer = bufnr })
vim.keymap.set({ 'n', 'x' }, '<space>a', vim.lsp.buf.code_action,
{ noremap = true, silent = false, desc = 'Code action', buffer = bufnr })
vim.keymap.set('n', '<space>d', tele_builtins.lsp_definitions,
{ noremap = true, silent = false, desc = 'Definition', buffer = bufnr })
vim.keymap.set('n', '<space>e', vim.lsp.buf.declaration,
{ noremap = true, silent = false, desc = 'Declaration', buffer = bufnr })
vim.keymap.set('n', '<space>h', function() require('pretty_hover').hover() end,
{ noremap = true, silent = false, desc = 'Hover', buffer = bufnr })
vim.keymap.set('n', '<space>c', vim.lsp.buf.outgoing_calls,
{ noremap = true, silent = false, desc = 'Outgoing calls', buffer = bufnr })
vim.keymap.set('n', '<space>C', vim.lsp.buf.incoming_calls,
{ noremap = true, silent = false, desc = 'Incoming calls', buffer = bufnr })
vim.keymap.set('n', '<space>m', vim.lsp.buf.rename,
{ noremap = true, silent = false, desc = 'Rename', buffer = bufnr })
vim.keymap.set('n', '<C-t>', tele_builtins.lsp_dynamic_workspace_symbols,
{ noremap = true, silent = false, desc = 'Workspace symbols', buffer = bufnr })
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition,
{ noremap = true, silent = false, desc = 'Type definition', buffer = bufnr })
vim.keymap.set({ 'n', 'i', 'x' }, '<C-k>', vim.lsp.buf.signature_help,
{ noremap = true, silent = false, desc = 'Signature help', buffer = bufnr })
vim.keymap.set('n', '<space>r', tele_builtins.lsp_references,
{ noremap = true, silent = false, desc = 'References', buffer = bufnr })
vim.keymap.set('n', '<A-m>', tele_builtins.lsp_document_symbols,
{ noremap = true, silent = false, desc = 'References', buffer = bufnr })
vim.keymap.set('n', '<scapce>s', tele_builtins.lsp_dynamic_workspace_symbols,
{ noremap = true, silent = false, desc = 'Workspace symbols', buffer = bufnr })
vim.keymap.set('n', '<space>v', function() tele_builtins.diagnostics({ bufnr = 0 }) end,
{ noremap = true, silent = false, desc = 'Diagnostics', buffer = bufnr })
vim.keymap.set('n', '<A-o>', '<cmd>ClangdSwitchSourceHeader<CR>',
{ noremap = true, silent = false, desc = 'Switch Source/Header', buffer = bufnr })
lspKeys(bufnr)
vim.cmd([[autocmd CursorHold <buffer> lua OpenDiagFloat()]])