refactor(struct_tags): use vim.system

This commit is contained in:
Oleksandr Smirnov 2025-02-28 14:44:07 +02:00
parent bb3c5111de
commit 0924937768
No known key found for this signature in database

View file

@ -38,15 +38,8 @@ local function modify(...)
return return
end end
-- stylua: ignore
local cmd_args = {
"-transform", c.gotag.transform,
"-format", "json",
"-file", fpath,
"-w"
}
-- by struct name of line pos -- by struct name of line pos
local cmd_args = {}
if ns.name == nil then if ns.name == nil then
local _, csrow, _, _ = unpack(vim.fn.getpos ".") local _, csrow, _, _ = unpack(vim.fn.getpos ".")
table.insert(cmd_args, "-line") table.insert(cmd_args, "-line")
@ -67,17 +60,24 @@ local function modify(...)
table.insert(cmd_args, "json") table.insert(cmd_args, "json")
end end
local output = r.sync(c.commands.gomodifytags, { local rs = r.sync {
args = cmd_args, c.commands.gomodifytags,
on_exit = function(data, status) "-transform",
if not status == 0 then c.gotag.transform,
error("gotag failed: " .. data) "-format",
"json",
"-w",
"-file",
fpath,
unpack(cmd_args),
}
if rs.code ~= 0 then
error("failed to set tags " .. rs.stderr)
end end
end,
})
-- decode value -- decode value
local tagged = vim.json.decode(table.concat(output)) local tagged = vim.json.decode(rs.stdout)
if if
tagged.errors ~= nil tagged.errors ~= nil
or tagged.lines == nil or tagged.lines == nil