- pc_lint seems to be working well now.

This commit is contained in:
Steve Bragg 2014-09-17 16:53:02 -04:00
parent 7f08cdde67
commit 19ee867129

View File

@ -9,6 +9,10 @@
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
"
"" To use a lint option file, rename it to options.lnt and put it in
"" the same directory as the file you're linting, or any parent directory
"" of that file. Syntastic will use the first options.lnt file it finds.
if exists("g:loaded_syntastic_c_pc_lint_checker")
finish
@ -18,46 +22,44 @@ let g:loaded_syntastic_c_pc_lint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
" stolen from c.vim of syntastic
if !exists('g:syntastic_pc_lint_config_file')
let g:syntastic_pc_lint_config_file = 'options.lnt'
endif
function! getLintFile(file)
" stolen from c.vim in syntastic
function! s:getOptionFile(file)
" search in the current file's directory upwards
let config = findfile(a:file, '.;')
if config == '' || !filereadable(config)
return ''
return ''
endif
" convert filename into absolute path
return '-i"' . fnamemodify(config, ':p:h') . '"'
" convert filename into absolute path filename
return fnamemodify(config, ':p')
endfunction
if !exists('g:syntastic_pc_lint_config_file')
let g:syntastic_pc_lint_config_file = '.lnt'
endif
function! SyntaxCheckers_c_pc_lint_GetLocList() dict
" gotta add something about the options file
" -hF1 always shows the filename, tries to make message 1 line
" -width(0,0) makes sure there's no line breaks
let makeprg = self.makeprgBuild({
\ 'args': ' -hF1 -width(0,0)' })
\ "args": syntastic#util#shescape(
\ s:getOptionFile(g:syntastic_pc_lint_config_file)) . ' -hF1 ' .
\ syntastic#util#shescape('-width(0,0)')})
let errorformat =
\ '%f %l %trror %n: %m,' .
\ '%f %l %tarning %n: %m,' .
\ '%f %l %tnfo %n: %m'
\ '%f %l %trror %n: %m,' .
\ '%f %l %tarning %n: %m,' .
\ '%W%f %l Info %n: %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat })
\ 'makeprg': makeprg,
\ 'errorformat': errorformat })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'c',
\ 'name': 'pc_lint',
\ 'exec': 'lint-nt'})
\ 'filetype': 'c',
\ 'name': 'pc_lint',
\ 'exec': 'lint-nt'})
let &cpo = s:save_cpo
unlet s:save_cpo