From 9a5a2c7a100410818a0e0b95822819505191f419 Mon Sep 17 00:00:00 2001 From: blob42 Date: Wed, 6 Sep 2023 12:56:34 +0200 Subject: [PATCH] lsp move mappings to navigator so nvim can unregister keys on detach --- lua/core/mappings.lua | 29 +-------- lua/custom/plugins/configs/navigator.lua | 80 ++++++++++++++++++++++-- 2 files changed, 75 insertions(+), 34 deletions(-) diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 542633d..8809522 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -578,34 +578,7 @@ M.lspconfig = { --{{{ -- See ` :help vim.lsp.*` for documentation on any of the below functions - n = { - ["gD"] = { vim.lsp.buf.declaration, - "lsp declaration", - }, - ["K"] = { vim.lsp.buf.hover, "lsp hover", }, - - ["gm"] = { vim.lsp.buf.implementation, "lsp implementation", }, - - ["D"] = { vim.lsp.buf.type_definition, "lsp definition type", }, - - - ["[d"] = { vim.diagnostic.goto_prev , "lsp goto prev" }, - - ["]d"] = { vim.diagnostic.goto_next, "lsp goto_next", - }, - - [']O'] = { vim.diagnostic.setloclist, "lsp diagnostic setloclist" }, - - ["fm"] = { vim.lsp.buf.format, "lsp formatting" }, - ["gi"] = { vim.lsp.buf.incoming_calls, "lsp incoming_calls" }, - ["go"] = { vim.lsp.buf.outgoing_calls, "lsp outgoing_calls" }, - [""] = { vim.lsp.buf.definition, "lsp definition" }, - ["g"] = { vim.lsp.buf.implementation, "lsp implementation" }, - ["h"] = { function() - vim.lsp.inlay_hint(0, nil) - end, "toggle lsp hints" }, - - }, + n = { }, i = { [''] = { vim.lsp.buf.signature_help, 'lsp signature help' }, } diff --git a/lua/custom/plugins/configs/navigator.lua b/lua/custom/plugins/configs/navigator.lua index 8be85b2..d474a16 100644 --- a/lua/custom/plugins/configs/navigator.lua +++ b/lua/custom/plugins/configs/navigator.lua @@ -31,12 +31,50 @@ local config = { default_mapping = false, on_attach = require('plugins.configs.lspconfig').on_attach, keymaps = { - { key = 'gr', func = require('navigator.reference').async_ref, desc = 'lsp async_ref' }, - { key = 'g0', func = require('navigator.symbols').document_symbols, desc = 'lsp document_symbols' }, - { key = 'gW', func = require('navigator.workspace').workspace_symbol_live, desc = 'lsp workspace_symbol_live' }, - { key = '', func = require('navigator.definition').definition, desc = 'lsp definition' }, - { key = 'gp', func = require('navigator.definition').definition_preview, desc = 'lsp definition preview' }, - { key = 'gP', func = require('navigator.definition').type_definition_preview, desc = 'lsp type definition preview' }, + { + key = 'gr', + func = require('navigator.reference').async_ref, + desc = 'lsp async_ref' + }, + { + key = 'lr', + func = require('navigator.reference').reference, + desc = 'lsp reference' + }, + { + key = 'g0', + func = require('navigator.symbols').document_symbols, + desc = 'lsp document_symbols' + }, + { + key = 'gW', + func = require('navigator.workspace').workspace_symbol_live, + desc = 'lsp workspace_symbol_live' + }, + { + key = '', + func = require('navigator.definition').definition, + desc = 'lsp definition' + }, + { + key = '', + func = require('navigator.definition').definition, + desc = "lsp definition" + }, + { key = 'gd', func = require('navigator.definition').definition, desc = 'definition' }, + { key = 'gD', func = vim.lsp.buf.declaration, desc = 'declaration' }, + { key = 'gm', func = vim.lsp.buf.implementation, desc = 'implementation' }, + { key = 'g', func = vim.lsp.buf.implementation, desc = 'implementation' }, + { + key = 'gp', + func = require('navigator.definition').definition_preview, + desc = 'lsp definition preview' + }, + { key = "h", func = function() + vim.lsp.inlay_hint(0, nil) + end, desc = "toggle lsp hints"}, + { key = 'D', func = vim.lsp.buf.type_definition, desc = 'type_definition' }, + { key = 'Dp', func = require('navigator.definition').type_definition_preview, desc = 'lsp type definition preview' }, { key = '', mode = 'n', func = require('navigator.codeAction').code_action, desc = 'lsp code_action' }, { key = '', mode = 'i', func = require('navigator.codeAction').code_action, desc = 'lsp code_action' }, @@ -48,10 +86,40 @@ local config = { desc = 'lsp range_code_action', }, { key = 'rn', func = require('navigator.rename').rename, desc = 'lsp rename' }, + { key = 'gi', func = vim.lsp.buf.incoming_calls, desc = 'lsp incoming_calls' }, + { key = 'go', func = vim.lsp.buf.outgoing_calls, desc = 'lsp outgoing_calls' }, { key = 'gL', func = require('navigator.diagnostics').show_diagnostics, desc = 'lsp show_diagnostics' }, { key = 'gG', func = require('navigator.diagnostics').show_buf_diagnostics, desc = 'lsp show_buf_diagnostics' }, + --TODO: toggle diagnostics + { + key = ']d', + func = vim.diagnostic.goto_next, + desc = 'next diagnostics', + }, + { + key = '[d', + func = vim.diagnostic.goto_prev, + desc = 'prev diagnostics', + }, + { + key = ']O', + func = vim.diagnostic.set_loclist, + desc = 'diagnostics set loclist', + }, { key = ']r', func = require('navigator.treesitter').goto_next_usage, desc = 'lsp goto_next_usage' }, { key = '[r', func = require('navigator.treesitter').goto_previous_usage, desc = 'lsp goto_previous_usage' }, + { + key = 'lf', + func = vim.lsp.buf.format, + mode = 'n', + desc = 'lsp format' + }, + { + key = 'lf', + func = vim.lsp.buf.range_formatting, + mode = 'v', + desc = 'lsp range format' + }, { key = 'k', func = require('navigator.dochighlight').hi_symbol, desc = 'lsp hi_symbol' }, { key = 'wa', func = require('navigator.workspace').add_workspace_folder, desc = 'lsp add_workspace_folder' }, {