diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 7ad5897..a293801 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -97,7 +97,7 @@ M.general = { --{{{ ["n"] = { " set nu! set rnu!", "toggle line number" }, -- option toggle cursor line - ["l"] = { " set cul!", "toggle line number" }, + ["l"] = { " set cul!", "toggle cursor line" }, ["c"] = { "ccloselclose", "close quickfix" }, @@ -267,9 +267,14 @@ M.general = { --{{{ return "g@l" end, "TS swap left with sibling", opts = { expr = true } }, + -- quickfix ["]e"] = { " cn ", "quickfix next error" }, ["[e"] = { " cp ", "quickfix previous error" }, + -- loclist + ["]l"] = { " lne ", "quickfix next error" }, + ["[l"] = { " lp ", "quickfix previous error" }, + -- Tabularize mappings ["a&"] = { " Tabularize /&" }, @@ -474,6 +479,9 @@ M.comment = { --{{{ }, } --}}} +-- keys relatd to lsp, to be loaded inside `on_attach`. these are generic lsp +-- keys, refer to navigator's config for the rest. +-- see ../custom/plugins/configs/navigator.lua M.lspconfig = { --{{{ plugin = true, @@ -508,13 +516,6 @@ M.lspconfig = { --{{{ "lsp implementation", }, - ["ls"] = { - function() - vim.lsp.buf.signature_help() - end, - "lsp signature_help", - }, - ["D"] = { function() vim.lsp.buf.type_definition() @@ -522,83 +523,24 @@ M.lspconfig = { --{{{ "lsp definition type", }, - ["ra"] = { - function() - require("nvchad_ui.renamer").open() - end, - "lsp rename", - }, - - ["ca"] = { - function() - vim.lsp.buf.code_action() - end, - "lsp code_action", - }, - - ["gr"] = { - function() - vim.lsp.buf.references() - end, - "lsp references", - }, - - ["f"] = { - function() - vim.diagnostic.open_float() - end, - "lsp floating diagnostic", - }, - - ["[d"] = { - function() - vim.diagnostic.goto_prev() - end, - "lsp goto prev", - }, - - ["d]"] = { - function() - vim.diagnostic.goto_next() - end, - "lsp goto_next", - }, - ["q"] = { - function() - vim.diagnostic.setloclist() - end, - "lsp diagnostic setloclist", - }, + ["[d"] = { vim.diagnostic.goto_prev , "lsp goto prev" }, - ["fm"] = { - function() - vim.lsp.buf.formatting {} - end, - "lsp formatting", + ["]d"] = { vim.diagnostic.goto_next, "lsp goto_next", }, - ["wa"] = { - function() - vim.lsp.buf.add_workspace_folder() - end, - "lsp add workspace folder", - }, + [']O'] = { vim.diagnostic.setloclist, "lsp diagnostic setloclist" }, - ["wr"] = { - function() - vim.lsp.buf.remove_workspace_folder() - end, - "lsp remove workspace folder", - }, + ["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' }, - ["wl"] = { - function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, - "lsp list workspace folders", - }, }, + i = { + [''] = { vim.lsp.buf.signature_help, 'lsp signature help' }, + } } --}}} M.dap = { -- {{{ @@ -1138,4 +1080,5 @@ M.null_ls = { } } + return M diff --git a/lua/custom/plugins/configs/navigator.lua b/lua/custom/plugins/configs/navigator.lua index 1460af1..4b8f2f4 100644 --- a/lua/custom/plugins/configs/navigator.lua +++ b/lua/custom/plugins/configs/navigator.lua @@ -11,28 +11,41 @@ local config = { transparency = 5, lsp_signature_help = false, -- needs plugin lsp_signature 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 = 'gr', func = require('navigator.reference').reference, desc = 'lsp reference' }, -- reference deprecated - { - key = '', - mode = 'i', - func = vim.lsp.buf.signature_help, - desc = 'lsp signature_help' - }, -- { key = '', func = vim.lsp.buf.signature_help, desc = 'lsp signature_help' }, { 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 = 'gd', func = require('navigator.definition').definition, desc = 'lsp definition' }, - { key = 'gD', func = vim.lsp.buf.declaration, desc = 'lsp declaration' }, { key = 'gp', func = require('navigator.definition').definition_preview, desc = 'lsp definition_preview' }, -- handled by main mappings -- { key = 'gt', func = require('navigator.treesitter').buf_ts, desc = 'lsp buf_ts' }, -- { key = 'gT', func = require('navigator.treesitter').bufs_ts, desc = 'lsp bufs_ts' }, -- { key = 'ct', func = require('navigator.ctags').ctags, desc = 'lsp ctags' }, - { key = 'K', func = vim.lsp.buf.hover, desc = 'lsp hover' }, + -- handled by main mappings (lspconfig section) + -- { key = 'gD', func = vim.lsp.buf.declaration, desc = 'lsp declaration' }, + -- { + -- key = '', + -- mode = 'i', + -- func = vim.lsp.buf.signature_help, + -- desc = 'lsp signature_help' + -- }, + -- { key = 'K', func = vim.lsp.buf.hover, desc = 'lsp hover' }, + -- { key = 'gm', func = vim.lsp.buf.implementation, desc = 'lsp implementation' }, + -- { key = 'D', func = vim.lsp.buf.type_definition, desc = 'lsp type_definition' }, + -- { key = ']d', func = vim.diagnostic.goto_next, desc = 'lsp next diagnostics' }, + -- { key = '[d', func = vim.diagnostic.goto_prev, desc = 'lsp prev diagnostics' }, + -- { key = ']O', func = vim.diagnostic.setloclist, desc = 'lsp diagnostics set loclist' }, + -- { key = 'fm', func = vim.lsp.buf.format, mode = 'n', desc = 'lsp format' }, + -- { 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 = '', func = vim.lsp.buf.definition, desc = 'lsp definition' }, + -- { key = 'g', func = vim.lsp.buf.implementation, desc = 'lsp implementation' }, + { 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' }, { key = '', mode = 'n', func = require('navigator.symbols').side_panel, desc = 'toggle lsp outline pannel'}, @@ -44,21 +57,12 @@ local config = { }, -- { key = 're', func = 'rename()' }, { 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 = 'gm', func = vim.lsp.buf.implementation, desc = 'lsp implementation' }, - { key = 'D', func = vim.lsp.buf.type_definition, desc = 'lsp type_definition' }, { 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' }, -- { key = 'dt', func = require('navigator.diagnostics').toggle_diagnostics, desc = 'lsp toggle_diagnostics' }, -- { key = 'td', func = require('spike.diagnostics').toggle, desc = 'lsp toggle_diagnostics' }, - { key = ']d', func = vim.diagnostic.goto_next, desc = 'lsp next diagnostics' }, - { key = '[d', func = vim.diagnostic.goto_prev, desc = 'lsp prev diagnostics' }, - { key = ']O', func = vim.diagnostic.set_loclist, desc = 'lsp 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 = '', func = vim.lsp.buf.definition, desc = 'lsp definition' }, - { key = 'g', func = vim.lsp.buf.implementation, desc = 'lsp implementation' }, { 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' }, { @@ -66,7 +70,6 @@ local config = { func = require('navigator.workspace').remove_workspace_folder, desc = 'lsp lsp remove_workspace_folder', }, - { key = 'fm', func = vim.lsp.buf.format, mode = 'n', desc = 'lsp format' }, -- { key = 'ff', func = vim.lsp.buf.range_formatting, mode = 'v', desc = 'lsp range format' }, -- DEPRECATED -- { @@ -176,7 +179,7 @@ local config = { pylsp = { plugins = { autopep8 = { enabled = false }, - -- pylint = { enabled = false }, + -- pylint = { enabled = false }, -- disabled in null-ls flake8 = { enabled = false }, pycodestyle= { enabled = false}, pyflakes = { enabled = false }, diff --git a/lua/custom/plugins/configs/null-ls.lua b/lua/custom/plugins/configs/null-ls.lua index 0792727..fc50cdd 100644 --- a/lua/custom/plugins/configs/null-ls.lua +++ b/lua/custom/plugins/configs/null-ls.lua @@ -24,11 +24,13 @@ M.config = { null_ls.builtins.formatting.autoflake, null_ls.builtins.formatting.autopep8, + null_ls.builtins.formatting.black, -- golang revive (manually enabled with shortcut from mappings) -- null_ls.builtins.diagnostics.revive, }, on_attach = function(client, bufnr) + require('plugins.configs.lspconfig').on_attach(client, bufnr) local util = require('navigator.util') local log = util.log local trace = util.trace diff --git a/lua/plugins/configs/lspconfig.lua b/lua/plugins/configs/lspconfig.lua index 4358142..9f305cb 100644 --- a/lua/plugins/configs/lspconfig.lua +++ b/lua/plugins/configs/lspconfig.lua @@ -20,6 +20,11 @@ function M.setup() end +-- my custom on_attach to inject in other lsp clients +M.on_attach = function(client, bufnr) + require('core.utils').load_mappings 'lspconfig' +end + -- local utils = require "core.utils" --