|
|
@ -80,19 +80,19 @@ end
|
|
|
|
function M.add(bufnr, signs)
|
|
|
|
function M.add(bufnr, signs)
|
|
|
|
local to_place = {}
|
|
|
|
local to_place = {}
|
|
|
|
for _, s in ipairs(signs or {}) do
|
|
|
|
for _, s in ipairs(signs or {}) do
|
|
|
|
local count = s.cnt
|
|
|
|
local covered = s.covered
|
|
|
|
local stype = 'goCoverageCovered'
|
|
|
|
local sign_group = 'goCoverageCovered'
|
|
|
|
if count == 0 then
|
|
|
|
if covered == 0 then
|
|
|
|
stype = 'goCoverageUncovered'
|
|
|
|
sign_group = 'goCoverageUncovered'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
M.define(bufnr, stype, { text = _GO_NVIM_CFG.gocoverage_sign, texthl = stype })
|
|
|
|
M.define(bufnr, sign_group, { text = _GO_NVIM_CFG.gocoverage_sign, texthl = sign_group })
|
|
|
|
for lnum = s.range.start.line, s.range['end'].line + 1 do
|
|
|
|
for lnum = s.range.start.line, s.range['end'].line do
|
|
|
|
-- log(lnum, bufnr) --verbose
|
|
|
|
log(lnum, covered, bufnr) --verbose
|
|
|
|
to_place[#to_place + 1] = {
|
|
|
|
to_place[#to_place + 1] = {
|
|
|
|
id = lnum,
|
|
|
|
id = lnum,
|
|
|
|
group = ns,
|
|
|
|
group = ns,
|
|
|
|
name = stype,
|
|
|
|
name = sign_group,
|
|
|
|
buffer = bufnr,
|
|
|
|
buffer = bufnr,
|
|
|
|
lnum = lnum,
|
|
|
|
lnum = lnum,
|
|
|
|
priority = _GO_NVIM_CFG.sign_priority,
|
|
|
|
priority = _GO_NVIM_CFG.sign_priority,
|
|
|
@ -180,7 +180,7 @@ local function parse_line(line)
|
|
|
|
['end'] = { line = tonumber(m[5]), character = tonumber(m[6]) },
|
|
|
|
['end'] = { line = tonumber(m[5]), character = tonumber(m[6]) },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
num = tonumber(m[7]),
|
|
|
|
num = tonumber(m[7]),
|
|
|
|
cnt = tonumber(m[8]),
|
|
|
|
covered = tonumber(m[8]),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
@ -203,7 +203,7 @@ M.read_cov = function(covfn)
|
|
|
|
local total_covered = 0
|
|
|
|
local total_covered = 0
|
|
|
|
|
|
|
|
|
|
|
|
if vfn.filereadable(covfn) == 0 then
|
|
|
|
if vfn.filereadable(covfn) == 0 then
|
|
|
|
vim.notify(string.format('cov file not exist: %s please run cover test first', covfn), vim.lsp.log_levels.WARN)
|
|
|
|
vim.notify(string.format('cov file %s not exist please run cover test first', covfn), vim.lsp.log_levels.WARN)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
end
|
|
|
|
end
|
|
|
|
local cov = vfn.readfile(covfn)
|
|
|
|
local cov = vfn.readfile(covfn)
|
|
|
@ -218,7 +218,7 @@ M.read_cov = function(covfn)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
coverage[cl.filename].file_lines = (coverage[cl.filename].file_lines or 0) + cl.num
|
|
|
|
coverage[cl.filename].file_lines = (coverage[cl.filename].file_lines or 0) + cl.num
|
|
|
|
file_lines = file_lines + cl.num
|
|
|
|
file_lines = file_lines + cl.num
|
|
|
|
if cl.cnt > 0 then
|
|
|
|
if cl.covered > 0 then
|
|
|
|
coverage[cl.filename].file_covered = (coverage[cl.filename].file_covered or 0) + cl.num
|
|
|
|
coverage[cl.filename].file_covered = (coverage[cl.filename].file_covered or 0) + cl.num
|
|
|
|
total_covered = total_covered + cl.num
|
|
|
|
total_covered = total_covered + cl.num
|
|
|
|
end
|
|
|
|
end
|
|
|
|