diff --git a/README.md b/README.md index 3e90a5e..5132166 100644 --- a/README.md +++ b/README.md @@ -429,7 +429,7 @@ In `playground` folder, there is a `init.lua` and source code for you to play wi | n | K | hover doc | | n | \ca | code action (when you see 🏏 ) | | n | \la | code lens action (when you see a codelens indicator) | -| v | \cA | range code action (when you see 🏏 ) | +| v | \ca | range code action (when you see 🏏 ) | | n | \rn | rename with floating window | | n | \re | rename (lsp default) | | n | \gi | hierarchy incoming calls | diff --git a/lua/navigator/codeAction.lua b/lua/navigator/codeAction.lua index 4c1a413..97c1d69 100644 --- a/lua/navigator/codeAction.lua +++ b/lua/navigator/codeAction.lua @@ -173,16 +173,27 @@ end code_action.range_code_action = function(startpos, endpos) local context = {} context.diagnostics = vim.lsp.diagnostic.get_line_diagnostics() - local params = util.make_given_range_params(startpos, endpos) + + local bufnr = vim.api.nvim_get_current_buf() + startpos = startpos or api.nvim_buf_get_mark(bufnr, '<') + endpos = endpos or api.nvim_buf_get_mark(bufnr, '>') + log(startpos, endpos) + local params = vim.lsp.util.make_given_range_params(startpos, endpos) params.context = context local original_select = vim.ui.select vim.ui.select = require('guihua.gui').select + local original_input = vim.ui.input + vim.ui.input = require('guihua.input').input vim.lsp.buf.range_code_action(context, startpos, endpos) vim.defer_fn(function() vim.ui.select = original_select end, 1000) + + vim.defer_fn(function() + vim.ui.input = original_input + end, 1000) end code_action.code_action_prompt = function() diff --git a/lua/navigator/lspclient/mapping.lua b/lua/navigator/lspclient/mapping.lua index 434ce7d..b04040f 100644 --- a/lua/navigator/lspclient/mapping.lua +++ b/lua/navigator/lspclient/mapping.lua @@ -36,7 +36,7 @@ local key_maps = { { key = 'ct', func = "require('navigator.ctags').ctags()" }, { key = 'K', func = 'hover({ popup_opts = { border = single, max_width = 80 }})' }, { key = 'ca', mode = 'n', func = "require('navigator.codeAction').code_action()" }, - { key = 'cA', mode = 'v', func = 'range_code_action()' }, + { key = 'ca', mode = 'v', func = "require('navigator.codeAction').range_code_action()" }, -- { key = 're', func = 'rename()' }, { key = 'rn', func = "require('navigator.rename').rename()" }, { key = 'gi', func = 'incoming_calls()' },