issue #264 coverage line num mismatch 🎄🎆

pull/265/head
ray-x 2 years ago
parent 9f0d92ab2d
commit 02fbdd126c

@ -266,6 +266,7 @@ first run of `GoFmt` may fail. Recommended to run `GoInstallBinaries` to install
| GoCoverage -p | go test -coverprofile (only tests package for current buffer) | | GoCoverage -p | go test -coverprofile (only tests package for current buffer) |
| GoCoverage -f coverage_file_name | load coverage file | | GoCoverage -f coverage_file_name | load coverage file |
| GoCoverage {flags} | -t : toggle, -r: remove signs, -R remove sings from all files, -m show metrics| | GoCoverage {flags} | -t : toggle, -r: remove signs, -R remove sings from all files, -m show metrics|
| GoCoverage {flags} {go test flags} | e.g: GoCoverage -p -coverpkg 'yourpackagename' |
| GoTermClose | `closes the floating term` | | GoTermClose | `closes the floating term` |
Note: Note:

@ -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

@ -1,6 +1,6 @@
//+build integration,unit //+build integration,unit
package "testing" package main
func TestTag(t *testing.T) { func TestTag(t *testing.T) {
t.Log("TestTag") t.Log("TestTag")

Loading…
Cancel
Save