Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix overriding metalinter command (fix #1622) #2101

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions autoload/go/lint.vim
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,22 @@ function! go#lint#Gometa(bang, autosave, ...) abort
let goargs = a:000
endif

let bin_path = go#path#CheckBinPath("gometalinter")
if empty(bin_path)
return
endif
if empty(go#config#MetalinterCommand())
let bin_path = go#path#CheckBinPath("gometalinter")
if empty(bin_path)
return
endif

let cmd = [bin_path]
let cmd += ["--disable-all"]

let cmd = [bin_path]
let cmd += ["--disable-all"]
" gometalinter has a --tests flag to tell its linters whether to run
" against tests. While not all of its linters respect this flag, for those
" that do, it means if we don't pass --tests, the linter won't run against
" test files. One example of a linter that will not run against tests if
" we do not specify this flag is errcheck.
let cmd += ["--tests"]

if a:autosave || empty(go#config#MetalinterCommand())
" linters
let linters = a:autosave ? go#config#MetalinterAutosaveEnabled() : go#config#MetalinterEnabled()
for linter in linters
Expand All @@ -27,16 +34,9 @@ function! go#lint#Gometa(bang, autosave, ...) abort
for linter in go#config#MetalinterDisabled()
let cmd += ["--disable=".linter]
endfor

" gometalinter has a --tests flag to tell its linters whether to run
" against tests. While not all of its linters respect this flag, for those
" that do, it means if we don't pass --tests, the linter won't run against
" test files. One example of a linter that will not run against tests if
" we do not specify this flag is errcheck.
let cmd += ["--tests"]
else
" the user wants something else, let us use it.
let cmd += split(go#config#MetalinterCommand(), " ")
let cmd = split(go#config#MetalinterCommand(), " ")
endif

if a:autosave
Expand Down