da78242123
Many of the syntax checkers were setting the 'bufnr' key for each error manually and one was setting 'text' if it didnt exist too. Add the 'defaults' option to SyntasticMake to set default values in the returned error list - it only sets values if they are empty.
35 lines
1.6 KiB
VimL
35 lines
1.6 KiB
VimL
"============================================================================
|
|
"File: eruby.vim
|
|
"Description: Syntax checking plugin for syntastic.vim
|
|
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
|
|
"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.
|
|
"
|
|
"============================================================================
|
|
if exists("loaded_eruby_syntax_checker")
|
|
finish
|
|
endif
|
|
let loaded_eruby_syntax_checker = 1
|
|
|
|
"bail if the user doesnt have ruby or cat installed
|
|
if !executable("ruby") || !executable("cat")
|
|
finish
|
|
endif
|
|
|
|
function! SyntaxCheckers_eruby_GetLocList()
|
|
if has('win32') || has('win64')
|
|
let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| ruby -c'
|
|
else
|
|
let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| RUBYOPT= ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| RUBYOPT= ruby -c'
|
|
endif
|
|
|
|
let errorformat='%-GSyntax OK,%E-:%l: syntax error\, %m,%Z%p^,%W-:%l: warning: %m,%Z%p^,%-C%.%#'
|
|
return SyntasticMake({ 'makeprg': makeprg,
|
|
\ 'errorformat': errorformat,
|
|
\ 'defaults': {'bufnr': bufnr("")} })
|
|
|
|
endfunction
|