go.nvim/lua/go/list.lua
2021-11-13 14:29:42 +11:00

24 lines
497 B
Lua

local M = {}
function M.list(mod, args)
local cmd = {'go', 'list', '-json'}
local out
if mod == false then
table.insert(cmd, 1, 'GO111MODULE=off')
end
vim.list_extend(cmd, args or {'.'})
out = vim.fn.systemlist(table.concat(cmd, ' '))
if vim.v.shell_error ~= 0 then
return false
end
for i, e in ipairs(out) do
if e == '}' and out[i + 1] == '{' then
out[i] = '},'
end
end
return true, vim.json.decode('[' .. table.concat(out, '') .. ']')
end
return M