From 90a4a0571dc26510b3ffcd610524a4a6b1848315 Mon Sep 17 00:00:00 2001 From: ghthor Date: Fri, 26 Oct 2012 12:16:08 +0200 Subject: [PATCH] bugfix: run go compiler from package directory The compiler only works correctly if passed an import path or run from the package directory, the latter of which is the path of least resistance. --- syntax_checkers/go/go.vim | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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