syntastic/syntax_checkers/ruby/mri.vim
Matt Edlefsen c658f06756 Remove broken rvm handling in mri ruby checker
RVM does not always provide an executable for  specific ruby version
that is loaded (the "system" version).

RVM, or whatever else the user uses, should always setup "ruby" to point
to the correct version so this can always be used.
2013-02-05 07:07:52 -05:00

57 lines
2.1 KiB
VimL

"============================================================================
"File: mri.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.
"
"============================================================================
function! s:FindRubyExec()
return "ruby"
endfunction
if !exists("g:syntastic_ruby_exec")
let g:syntastic_ruby_exec = s:FindRubyExec()
endif
function! SyntaxCheckers_ruby_mri_IsAvailable()
return executable(expand(g:syntastic_ruby_exec))
endfunction
function! SyntaxCheckers_ruby_mri_GetLocList()
let exe = expand(g:syntastic_ruby_exec)
if !has('win32')
let exe = 'RUBYOPT= ' . exe
endif
let makeprg = syntastic#makeprg#build({
\ 'exe': exe,
\ 'args': '-w -T1 -c',
\ 'subchecker': 'mri' })
"this is a hack to filter out a repeated useless warning in rspec files
"containing lines like
"
" foo.should == 'bar'
"
"Which always generate the warning below. Note that ruby >= 1.9.3 includes
"the word "possibly" in the warning
let errorformat = '%-G%.%#warning: %\(possibly %\)%\?useless use of == in void context'
" filter out lines starting with ...
" long lines are truncated and wrapped in ... %p then returns the wrong
" column offset
let errorformat .= ',%-G%\%.%\%.%\%.%.%#'
let errorformat .= ',%-GSyntax OK,%E%f:%l: syntax error\, %m'
let errorformat .= ',%Z%p^,%W%f:%l: warning: %m,%Z%p^,%W%f:%l: %m,%-C%.%#'
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'ruby',
\ 'name': 'mri'})