Skip to content

Commit 4dc5780

Browse files
committed
lint: adjust message evaluation for golangci-lint
1 parent 20d7bbb commit 4dc5780

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

autoload/go/lint.vim

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,11 @@ function! go#lint#Gometa(bang, autosave, ...) abort
110110
" Parse and populate our location list
111111

112112
if a:autosave
113-
call s:metalinterautosavecomplete(l:metalinter, fnamemodify(expand('%:p'), ':.'), 0, 1, l:messages)
113+
if l:metalinter == 'golangci-lint'
114+
call s:metalinterautosavecomplete(l:metalinter, expand('%:p'), 0, 1, l:messages)
115+
elseif l:metalinter == 'staticcheck'
116+
call s:metalinterautosavecomplete(l:metalinter, fnamemodify(expand('%:p'), ':.'), 0, 1, l:messages)
117+
endif
114118
endif
115119
call go#list#ParseFormat(l:listtype, l:errformat, l:messages, l:for, s:preserveerrors(a:autosave, l:listtype))
116120

@@ -396,7 +400,11 @@ function! s:lint_job(metalinter, args, bang, autosave)
396400
if a:autosave
397401
let l:opts.for = 'GoMetaLinterAutoSave'
398402
" s:metalinterautosavecomplete is needed for staticcheck and golangci-lint
399-
let l:opts.complete = funcref('s:metalinterautosavecomplete', [a:metalinter, expand('%:p:t')])
403+
if a:metalinter == 'golangci-lint'
404+
let l:opts.complete = funcref('s:metalinterautosavecomplete', [a:metalinter, expand('%:p')])
405+
elseif a:metalinter == 'staticcheck'
406+
let l:opts.complete = funcref('s:metalinterautosavecomplete', [a:metalinter, expand('%:p:t')])
407+
endif
400408
let l:opts.preserveerrors = funcref('s:preserveerrors', [a:autosave])
401409
endif
402410

@@ -448,6 +456,8 @@ function! s:metalinterautosavecomplete(metalinter, filepath, job, exit_code, mes
448456
return
449457
endif
450458

459+
let l:pathRE = printf('^%s:', a:filepath)
460+
451461
let l:idx = 0
452462
for l:item in a:messages
453463
" leave in any messages that report errors about a:filepath or that report
@@ -460,7 +470,6 @@ function! s:metalinterautosavecomplete(metalinter, filepath, job, exit_code, mes
460470
"
461471
" golangci-lint may provide a relative path to the file, so allow that,
462472
" too.
463-
let l:pathRE = printf('^\%%(\.%s\)\?%s', go#util#PathSep(), a:filepath)
464473
if (l:item =~# l:pathRE && l:item !~# l:pathRE . ':\d\+: : # ') || (a:metalinter == 'golangci-lint' && l:item =~# '^level=')
465474
let l:idx += 1
466475
continue

0 commit comments

Comments
 (0)