From bb032d952bfc692062fceb764ff2742c5bdd3324 Mon Sep 17 00:00:00 2001 From: Gregory Anders <8965202+gpanders@users.noreply.github.com> Date: Mon, 6 May 2024 08:13:50 -0500 Subject: [PATCH] revert: default LSP mappings (#28649) Revert the default LSP mappings before the 0.10 release as these might need some further consideration. In particular, it's not clear if "c" prefixed maps in Normal mode are acceptable as defaults since they interfere with text objects or operator ranges. We will re-introduce default mappings at the beginning of the 0.11 release cycle, this reversion is only for the imminent 0.10 release. --- runtime/doc/lsp.txt | 17 ++++------------- runtime/doc/news.txt | 6 ------ runtime/doc/vim_diff.txt | 6 ------ runtime/lua/vim/_defaults.lua | 30 ------------------------------ 4 files changed, 4 insertions(+), 55 deletions(-) diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt index 27c0bd8f0f..40a80b1261 100644 --- a/runtime/doc/lsp.txt +++ b/runtime/doc/lsp.txt @@ -61,18 +61,6 @@ options are not restored when the LSP client is stopped or detached. - |K| is mapped to |vim.lsp.buf.hover()| unless |'keywordprg'| is customized or a custom keymap for `K` exists. - *crr* *crn* *i_CTRL-S* *v_CTRL-R_CTRL-R* *v_CTRL-R_r* -Some keymaps are created unconditionally when Nvim starts: -- "crn" is mapped in Normal mode to |vim.lsp.buf.rename()| -- "crr" is mapped in Normal mode to |vim.lsp.buf.code_action()| -- CTRL-R CTRL-R (also "CTRL-R r") is mapped in Visual mode to - |vim.lsp.buf.code_action()| -- "gr" is mapped in Normal mode to |vim.lsp.buf.references()| |gr-default| -- CTRL-S is mapped in Insert mode to |vim.lsp.buf.signature_help()| - -If not wanted, these keymaps can be removed at any time using -|vim.keymap.del()| or |:unmap|. - *lsp-defaults-disable* To override the above defaults, set or unset the options on |LspAttach|: >lua @@ -92,8 +80,11 @@ Example: >lua vim.api.nvim_create_autocmd('LspAttach', { callback = function(args) local client = vim.lsp.get_client_by_id(args.data.client_id) + if client.supports_method('textDocument/rename') then + -- Create a keymap for vim.lsp.buf.rename() + end if client.supports_method('textDocument/implementation') then - vim.keymap.set('n', 'g', vim.lsp.buf.implementation, { buffer = args.buf }) + -- Create a keymap for vim.lsp.buf.implementation end end, }) diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 07ea31e1df..ed994472ac 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -418,12 +418,6 @@ The following changes to existing APIs or features add new behavior. • 'shortmess' includes the "C" flag. • 'grepprg' uses the -H and -I flags for grep by default, and defaults to using ripgrep if available. - • |crn| in Normal mode maps to |vim.lsp.buf.rename()|. - • |crr| in Normal mode maps to |vim.lsp.buf.code_action()|. - • |v_CTRL-R_CTRL-R| in Visual mode maps to |vim.lsp.buf.code_action()|. - • "gr" in Normal mode maps to |vim.lsp.buf.references()| |gr-default| - • |i_CTRL-S| in Insert mode maps to |vim.lsp.buf.signature_help()| - • "]d" and "[d" in Normal mode map to |vim.diagnostic.goto_next()| and |vim.diagnostic.goto_prev()|, respectively. |]d-default| |[d-default| • d (and ) map to |vim.diagnostic.open_float()| |CTRL-W_d-default| diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 0e5232bbf9..15134531e1 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -138,12 +138,6 @@ of these in your config by simply removing the mapping, e.g. ":unmap Y". - * |v_star-default| - gc |gc-default| |v_gc-default| |o_gc-default| - gcc |gcc-default| -- |crn| -- |crr| -- |v_CTRL-R_CTRL-R| -- r |v_CTRL-R_r| -- gr |gr-default| -- |i_CTRL-S| - ]d |]d-default| - [d |[d-default| - d |CTRL-W_d-default| diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua index bd1afd0beb..4684902410 100644 --- a/runtime/lua/vim/_defaults.lua +++ b/runtime/lua/vim/_defaults.lua @@ -146,36 +146,6 @@ do vim.keymap.set({ 'o' }, 'gc', textobject_rhs, { desc = 'Comment textobject' }) end - --- Default maps for LSP functions. - --- - --- These are mapped unconditionally to avoid confusion. If no server is attached, or if a server - --- does not support a capability, an error message is displayed rather than exhibiting different - --- behavior. - --- - --- See |gr-default|, |crn|, |crr|, |i_CTRL-S|. - do - vim.keymap.set('n', 'crn', function() - vim.lsp.buf.rename() - end, { desc = 'vim.lsp.buf.rename()' }) - - local function map_codeaction(mode, lhs) - vim.keymap.set(mode, lhs, function() - vim.lsp.buf.code_action() - end, { desc = 'vim.lsp.buf.code_action()' }) - end - map_codeaction('n', 'crr') - map_codeaction('x', 'r') - map_codeaction('x', '') - - vim.keymap.set('n', 'gr', function() - vim.lsp.buf.references() - end, { desc = 'vim.lsp.buf.references()' }) - - vim.keymap.set('i', '', function() - vim.lsp.buf.signature_help() - end, { desc = 'vim.lsp.buf.signature_help()' }) - end - --- Map [d and ]d to move to the previous/next diagnostic. Map d to open a floating window --- for the diagnostic under the cursor. ---