syntastic/syntax_checkers/go/go.vim
ghthor 90a4a0571d 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.
2012-10-26 12:16:08 +02:00

32 lines
1.3 KiB
VimL

"============================================================================
"File: go.vim
"Description: Check go syntax using 'go build'
"Maintainer: Kamil Kisiel <kamil@kamilkisiel.net>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
function! SyntaxCheckers_go_GetLocList()
let makeprg = 'go build -o /dev/null'
let errorformat = '%f:%l:%c:%m,%E%f:%l:%m,%C%m,%-G#%.%#'
" 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