diff --git a/syntax_checkers/go/go.vim b/syntax_checkers/go/go.vim index 3cbbc023..4bc2abe0 100644 --- a/syntax_checkers/go/go.vim +++ b/syntax_checkers/go/go.vim @@ -13,5 +13,19 @@ function! SyntaxCheckers_go_GetLocList() let makeprg = 'go build -o /dev/null' let errorformat = '%f:%l:%c:%m,%E%f:%l:%m,%C%m,%-G#%.%#' - return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + " The go compiler needs to either be run with an import path as an + " argument or directly from the package directory. Since figuring out + " the poper import path is fickle, just pushd/popd to the package. + let popd = getcwd() + let pushd = expand('%:p:h') + " + " pushd + exec 'lcd ' . fnameescape(pushd) + + let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + " popd + exec 'lcd ' . fnameescape(popd) + + return errors endfunction