diff --git a/autoload/bazel.vim b/autoload/bazel.vim index a11f18f..01bd112 100644 --- a/autoload/bazel.vim +++ b/autoload/bazel.vim @@ -21,8 +21,21 @@ function! bazel#Run(arguments) abort call s:PLUGIN.logger.Info( \ 'Invoking bazel with arguments "%s"', string(a:arguments)) call s:Autowrite() - let l:syscall = maktaba#syscall#Create(['bazel'] + a:arguments) - call l:syscall.CallForeground(1, 0) + if a:arguments[0] == "build" + set errorformat=ERROR:\ %f:%l:%c:%m + set errorformat+=%f:%l:%c:%m + + " Ignore build output lines starting with INFO:, Loading:, or [ + set errorformat+=%-GINFO:\ %.%# + set errorformat+=%-GLoading:\ %.%# + set errorformat+=%-G[%.%# + + execute "set makeprg=bazel\\ build\\" substitute(join(a:arguments[1:100]), ' ', '\\ ', 'g') + make + else + let l:syscall = maktaba#syscall#Create(['bazel'] + a:arguments) + call l:syscall.CallForeground(1, 0) + endif " Note: Intentionally doesn't check v:shell_error. " Errors are printed on console by bazel, and visible until explicitly " dismissed because we use CallForeground in pause mode.