Skip to content

Commit f951333

Browse files
committed
respect :compiler!
otherwise :compiler does not respect global settings; setting &l:makeprg is fine though, see discussion at vim/vim#18686
1 parent 6c1d3ee commit f951333

3 files changed

Lines changed: 6 additions & 0 deletions

File tree

compiler/go.vim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ let &l:makeprg = gopher#str#fold_space(printf('go %s %s %s %s',
1212
\ gopher#bufsetting('gopher_build_tags', -1) is# -1 ? '' :
1313
\ gopher#system#join(['-tags', join(gopher#bufsetting('gopher_build_tags', []), ',')]),
1414
\ gopher#bufsetting('gopher_build_package', '')))
15+
exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
1516

1617
setl errorformat =%-G#\ %.%# " Ignore lines beginning with '#' ('# command-line-arguments' line sometimes appears?)
1718
setl errorformat+=%-G%.%#panic:\ %m " Ignore lines containing 'panic: message'
@@ -20,6 +21,7 @@ setl errorformat+=%A%f:%l:%c:\ %m " Start of multiline unspecified
2021
setl errorformat+=%A%f:%l:\ %m " Start of multiline unspecified string is 'filename:linenumber:'
2122
setl errorformat+=%C%*\\s%m " Continuation of multiline error message is indented
2223
setl errorformat+=%-G%.%# " All lines not matching any of the above patterns are ignored
24+
exe 'CompilerSet errorformat='..escape(&l:errorformat, ' \|"')
2325

2426
let &cpoptions = s:save_cpo
2527
unlet s:save_cpo

compiler/golint.vim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ let &l:makeprg = 'staticcheck ./...'
1111
if len(get(g:, 'gopher_build_tags', [])) > 0
1212
let &l:makeprg .= printf(' --build-tags "%s"', join(gopher#bufsetting('gopher_build_tags', []) ' '))
1313
endif
14+
exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
1415

1516
" golangci-lint:
1617
" benchmark_test.go:34:2 deadcode `valFormT2` is unused
@@ -23,6 +24,7 @@ endif
2324
" # zgo.at/goatcounter
2425
" ./hit.go:38:2: struct field tag `db: "id" json:"-"` not compatible with reflect.StructTag.Get: bad syntax for struct tag value
2526
let &l:errorformat = '%-G# %.%#,%f:%l:%c:\\? %m'
27+
exe 'CompilerSet errorformat='..escape(&l:errorformat, ' \|"')
2628

2729
let &cpoptions = s:save_cpo
2830
unlet s:save_cpo

compiler/gotest.vim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ set cpoptions-=C
1010
" CompilerSet makeprg=go\ test
1111
let &l:makeprg = gopher#str#fold_space(printf('go test %s',
1212
\ gopher#system#join(gopher#bufsetting('gopher_build_flags', []))))
13+
exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
1314

1415
let s:goroot = system('go env s:goroot')[:-2]
1516

@@ -180,6 +181,7 @@ let &l:errorformat .= ",%G%\\t%m"
180181
let &l:errorformat .= ',%-C%.%#'
181182
" Match and ignore everything else not in a multi-line message:
182183
let &l:errorformat .= ',%-G%.%#'
184+
exe 'CompilerSet errorformat='..escape(&l:errorformat, ' \|"')
183185

184186
""" vim-go end """
185187

0 commit comments

Comments
 (0)