diff --git a/lua/lspsaga/codeaction/preview.lua b/lua/lspsaga/codeaction/preview.lua index 1d793b5c5..73480cd87 100644 --- a/lua/lspsaga/codeaction/preview.lua +++ b/lua/lspsaga/codeaction/preview.lua @@ -2,18 +2,13 @@ local api, lsp = vim.api, vim.lsp local config = require('lspsaga').config local win = require('lspsaga.window') local util = require('lspsaga.util') +local act = require('lspsaga.codeaction') local function get_action_diff(main_buf, tuple) - if not tuple then + if not tuple or not tuple[2] then return end - local act = require('lspsaga.codeaction') - local action = tuple[2] - if not action then - return - end - - local id = tuple[1] + local id, action = unpack(tuple) local client = lsp.get_client_by_id(id) if not action.edit and client and act:support_resolve(client) then action = act:get_resolve_action(client, action, main_buf) @@ -22,7 +17,6 @@ local function get_action_diff(main_buf, tuple) end tuple[2] = action end - if not action.edit then return end diff --git a/lua/lspsaga/diagnostic/init.lua b/lua/lspsaga/diagnostic/init.lua index 82648ec9d..4737c3658 100644 --- a/lua/lspsaga/diagnostic/init.lua +++ b/lua/lspsaga/diagnostic/init.lua @@ -77,14 +77,10 @@ function diag:get_diagnostic(opt) return vim.diagnostic.get() end -function diag:code_action_cb(action_tuples, enriched_ctx, counts) - local win_conf = api.nvim_win_get_config(self.float_winid) - win_conf.title = gen_float_title(counts) - api.nvim_win_set_config(self.float_winid, win_conf) +function diag:code_action_cb(action_tuples, enriched_ctx, win_conf) local contents = { util.gen_truncate_line(win_conf.width), } - for index, client_with_actions in pairs(action_tuples) do if #client_with_actions ~= 2 then vim.notify('[lspsaga] failed indexing client actions') @@ -255,7 +251,7 @@ function diag:goto_pos(pos, opts) if not entry then return end - (is_forward and vim.diagnostic.goto_next or vim.diagnostic.goto_prev)(vim.tbl_extend("keep", { + (is_forward and vim.diagnostic.goto_next or vim.diagnostic.goto_prev)(vim.tbl_extend('keep', { float = { border = config.ui.border, header = '', @@ -285,6 +281,9 @@ function diag:goto_pos(pos, opts) end local curbuf = api.nvim_get_current_buf() local diagnostics, counts = self:get_cursor_diagnostic() + local win_conf = api.nvim_win_get_config(self.float_winid) + win_conf.title = gen_float_title(counts) + api.nvim_win_set_config(self.float_winid, win_conf) act:send_request(curbuf, { context = { diagnostics = diagnostics }, range = { @@ -298,7 +297,7 @@ function diag:goto_pos(pos, opts) end vim.bo[self.float_bufnr].modifiable = true self.main_buf = curbuf - self:code_action_cb(action_tuples, enriched_ctx, counts) + self:code_action_cb(action_tuples, enriched_ctx, win_conf) vim.bo[self.float_bufnr].modifiable = false end) end)