|
|
|
local utils = require('go.utils')
|
|
|
|
local log = utils.log
|
|
|
|
local api = vim.api
|
|
|
|
-- ONLY SUPPORT GOPLS
|
|
|
|
|
|
|
|
local M = {}
|
|
|
|
function M.run_range_code_action(t)
|
|
|
|
local context = {}
|
|
|
|
t = t or {}
|
|
|
|
context.diagnostics = vim.diagnostic.get()
|
|
|
|
|
|
|
|
local bufnr = vim.api.nvim_get_current_buf()
|
|
|
|
|
|
|
|
local original_select = vim.ui.select
|
|
|
|
local original_input = vim.ui.input
|
|
|
|
|
|
|
|
local guihua = utils.load_plugin('guihua.lua', 'guihua.gui')
|
|
|
|
if guihua then
|
|
|
|
vim.ui.select = require('guihua.gui').select
|
|
|
|
vim.ui.input = require('guihua.input').input
|
|
|
|
end
|
|
|
|
vim.lsp.buf.code_action({
|
|
|
|
context = context,
|
|
|
|
range = t.range,
|
|
|
|
})
|
|
|
|
vim.defer_fn(function()
|
|
|
|
vim.ui.select = original_select
|
|
|
|
vim.ui.input = original_input
|
|
|
|
end, 1000)
|
|
|
|
end
|
|
|
|
|
|
|
|
function M.run_code_action()
|
|
|
|
local guihua = utils.load_plugin('guihua.lua', 'guihua.gui')
|
|
|
|
|
|
|
|
local original_select = vim.ui.select
|
|
|
|
local original_input = vim.ui.input
|
|
|
|
if guihua then
|
|
|
|
vim.ui.select = require('guihua.gui').select
|
|
|
|
vim.ui.input = require('guihua.input').input
|
|
|
|
end
|
|
|
|
log('codeaction')
|
|
|
|
|
|
|
|
if vim.api.nvim_get_mode().mode ~= 'v' then
|
|
|
|
vim.lsp.buf.code_action()
|
|
|
|
else
|
|
|
|
vim.lsp.buf.range_code_action()
|
|
|
|
end
|
|
|
|
|
|
|
|
vim.defer_fn(function()
|
|
|
|
vim.ui.select = original_select
|
|
|
|
vim.ui.input = original_input
|
|
|
|
end, 1000)
|
|
|
|
end
|
|
|
|
|
|
|
|
return M
|