range code action

pull/209/head
ray-x 2 years ago
parent 38ac0162ee
commit 7d22162f59

@ -1,22 +1,57 @@
local utils = require("go.utils")
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 {}
local startpos, endpos
context.diagnostics = vim.lsp.diagnostic.get_line_diagnostics()
local bufnr = vim.api.nvim_get_current_buf()
startpos = api.nvim_buf_get_mark(bufnr, '<')
endpos = 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
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
if vim.fn.has('nvim-0.8') then
vim.lsp.buf.code_action({ context = context, range = { start = startpos, ['end'] = endpos } })
else
vim.lsp.buf.range_code_action(context, startpos, endpos)
end
vim.defer_fn(function()
vim.ui.select = original_select
end, 1000)
vim.defer_fn(function()
vim.ui.input = original_input
end, 1000)
end
function M.run_action()
local guihua = utils.load_plugin("guihua.lua", "guihua.gui")
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
vim.ui.select = require('guihua.gui').select
vim.ui.input = require('guihua.input').input
end
log("codeaction")
log('codeaction')
if vim.api.nvim_get_mode().mode ~= "v" then
if vim.api.nvim_get_mode().mode ~= 'v' then
vim.lsp.buf.code_action()
else
vim.lsp.buf.range_code_action()

@ -19,7 +19,7 @@ local dap_config = function()
if not dap then
return
end
dap.set_breakpoint(nil,nil,vfn.input('Log message: '))
dap.set_breakpoint(nil, nil, vfn.input('Log message: '))
end)
create_cmd('ReplRun', function(_)
@ -229,9 +229,13 @@ return {
create_cmd('GoCodeLenAct', function(_)
require('go.codelens').run_action()
end)
create_cmd('GoCodeAction', function(_)
require('go.codeaction').run_action()
end)
create_cmd('GoCodeAction', function(t)
if t.range ~= 0 then
require('go.codeaction').run_range_code_action({t.line1, t.line2})
else
require('go.codeaction').run_code_action()
end
end, {range = true})
create_cmd('GoModifyTag', function(opts)
require('go.tags').modify(unpack(opts.fargs))
@ -331,13 +335,15 @@ return {
require('go.lsp').hover_returns()
end)
create_cmd('GoJson2Struct', function(opts) require('go.json2struct').run(opts) end, {
create_cmd('GoJson2Struct', function(opts)
require('go.json2struct').run(opts)
end, {
nargs = '*',
bang = true,
register = true,
-- complete = function(ArgLead, CmdLine, CursorPos)
complete = function(_, _, _)
return { 'myStruct'}
return { 'myStruct' }
end,
range = true,
})

Loading…
Cancel
Save