From 9aea25954f64a67eab24fb87b7f2867cbe4f67a8 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Tue, 4 Jul 2023 10:35:03 +0200 Subject: [PATCH] reworked lspconfig --- lua/plugins/lspconfig.lua | 78 ++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index a6fa0dd..1664af2 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -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', ',', vim.diagnostic.goto_prev, + vim.tbl_extend('error', options, { desc = 'Diag prev' })) + vim.keymap.set('n', ';', vim.diagnostic.goto_next, + vim.tbl_extend('error', options, { desc = 'Diag next' })) + vim.keymap.set({ 'n', 'x' }, 'a', vim.lsp.buf.code_action, + vim.tbl_extend('error', options, { desc = 'Code action' })) + vim.keymap.set('n', 'd', tele_builtins.lsp_definitions, + vim.tbl_extend('error', options, { desc = 'Definition' })) + vim.keymap.set('n', 'e', + vim.lsp.buf.declaration, vim.tbl_extend('error', options, { desc = 'Declaration' })) + vim.keymap.set('n', 'h', function() require('pretty_hover').hover() end, + vim.tbl_extend('error', options, { desc = 'Hover' })) + vim.keymap.set('n', 'c', vim.lsp.buf.outgoing_calls, + vim.tbl_extend('error', options, { desc = 'Outgoing calls' })) + vim.keymap.set('n', 'C', vim.lsp.buf.incoming_calls, + vim.tbl_extend('error', options, { desc = 'Incoming calls' })) + vim.keymap.set('n', 'm', vim.lsp.buf.rename, + vim.tbl_extend('error', options, { desc = 'Rename' })) + vim.keymap.set('n', '', tele_builtins.lsp_dynamic_workspace_symbols, + vim.tbl_extend('error', options, { desc = 'Workspace symbols' })) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, + vim.tbl_extend('error', options, { desc = 'Type definition' })) + vim.keymap.set({ 'n', 'i', 'x' }, '', vim.lsp.buf.signature_help, + vim.tbl_extend('error', options, { desc = 'Signature help' })) + vim.keymap.set('n', 'r', tele_builtins.lsp_references, + vim.tbl_extend('error', options, { desc = 'References' })) + vim.keymap.set('n', '', tele_builtins.lsp_document_symbols, + vim.tbl_extend('error', options, { desc = 'References' })) + vim.keymap.set('n', 's', tele_builtins.lsp_dynamic_workspace_symbols, + vim.tbl_extend('error', options, { desc = 'Workspace symbols' })) + vim.keymap.set('n', 'v', function() tele_builtins.diagnostics({ bufnr = 0 }) end, + vim.tbl_extend('error', options, { desc = 'Diagnostics' })) + vim.keymap.set('n', '', 'ClangdSwitchSourceHeader', + 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', ',', vim.diagnostic.goto_prev, - { noremap = true, silent = false, desc = 'Diag prev', buffer = bufnr }) - vim.keymap.set('n', ';', vim.diagnostic.goto_next, - { noremap = true, silent = false, desc = 'Diag next', buffer = bufnr }) - vim.keymap.set({ 'n', 'x' }, 'a', vim.lsp.buf.code_action, - { noremap = true, silent = false, desc = 'Code action', buffer = bufnr }) - vim.keymap.set('n', 'd', tele_builtins.lsp_definitions, - { noremap = true, silent = false, desc = 'Definition', buffer = bufnr }) - vim.keymap.set('n', 'e', vim.lsp.buf.declaration, - { noremap = true, silent = false, desc = 'Declaration', buffer = bufnr }) - vim.keymap.set('n', 'h', function() require('pretty_hover').hover() end, - { noremap = true, silent = false, desc = 'Hover', buffer = bufnr }) - vim.keymap.set('n', 'c', vim.lsp.buf.outgoing_calls, - { noremap = true, silent = false, desc = 'Outgoing calls', buffer = bufnr }) - vim.keymap.set('n', 'C', vim.lsp.buf.incoming_calls, - { noremap = true, silent = false, desc = 'Incoming calls', buffer = bufnr }) - vim.keymap.set('n', 'm', vim.lsp.buf.rename, - { noremap = true, silent = false, desc = 'Rename', buffer = bufnr }) - vim.keymap.set('n', '', tele_builtins.lsp_dynamic_workspace_symbols, - { noremap = true, silent = false, desc = 'Workspace symbols', buffer = bufnr }) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, - { noremap = true, silent = false, desc = 'Type definition', buffer = bufnr }) - vim.keymap.set({ 'n', 'i', 'x' }, '', vim.lsp.buf.signature_help, - { noremap = true, silent = false, desc = 'Signature help', buffer = bufnr }) - vim.keymap.set('n', 'r', tele_builtins.lsp_references, - { noremap = true, silent = false, desc = 'References', buffer = bufnr }) - vim.keymap.set('n', '', tele_builtins.lsp_document_symbols, - { noremap = true, silent = false, desc = 'References', buffer = bufnr }) - vim.keymap.set('n', 's', tele_builtins.lsp_dynamic_workspace_symbols, - { noremap = true, silent = false, desc = 'Workspace symbols', buffer = bufnr }) - vim.keymap.set('n', 'v', function() tele_builtins.diagnostics({ bufnr = 0 }) end, - { noremap = true, silent = false, desc = 'Diagnostics', buffer = bufnr }) - vim.keymap.set('n', '', 'ClangdSwitchSourceHeader', - { noremap = true, silent = false, desc = 'Switch Source/Header', buffer = bufnr }) + lspKeys(bufnr) vim.cmd([[autocmd CursorHold lua OpenDiagFloat()]])