mirror of https://github.com/ray-x/go.nvim
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
786 B
Lua
33 lines
786 B
Lua
local runner = require('go.runner')
|
|
local utils = require('go.utils')
|
|
local M = {}
|
|
|
|
-- args: tidy or vendor
|
|
function M.run(...)
|
|
local args = { ... }
|
|
local cmd = { 'go', 'work' }
|
|
cmd = vim.list_extend(cmd, args)
|
|
utils.log(cmd)
|
|
local opts = {
|
|
on_exit = function(code, signal, data)
|
|
if code ~= 0 or signal ~= 0 then
|
|
utils.warn('go work failed' .. vim.inspect(data))
|
|
return
|
|
end
|
|
data = vim.split(data, '\n')
|
|
data = utils.handle_job_data(data)
|
|
if data then
|
|
vim.schedule(function()
|
|
utils.info('gowork success')
|
|
end)
|
|
end
|
|
end,
|
|
}
|
|
if vim.fn.expand('%:t'):find('go.mod') or vim.fn.expand('%:t'):find('go.work') then
|
|
opts.cwd = vim.fn.expand('%:p:h')
|
|
end
|
|
runner.run(cmd, opts)
|
|
end
|
|
|
|
return M
|