- 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. " 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") if exists("g:loaded_syntastic_c_pc_lint_checker")
finish finish
@ -18,46 +22,44 @@ let g:loaded_syntastic_c_pc_lint_checker = 1
let s:save_cpo = &cpo let s:save_cpo = &cpo
set cpo&vim 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
" stolen from c.vim in syntastic
function! s:getOptionFile(file)
function! getLintFile(file)
" search in the current file's directory upwards " search in the current file's directory upwards
let config = findfile(a:file, '.;') let config = findfile(a:file, '.;')
if config == '' || !filereadable(config) if config == '' || !filereadable(config)
return '' return ''
endif endif
" convert filename into absolute path filename
" convert filename into absolute path return fnamemodify(config, ':p')
return '-i"' . fnamemodify(config, ':p:h') . '"'
endfunction 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 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({ 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 = let errorformat =
\ '%f %l %trror %n: %m,' . \ '%f %l %trror %n: %m,' .
\ '%f %l %tarning %n: %m,' . \ '%f %l %tarning %n: %m,' .
\ '%f %l %tnfo %n: %m' \ '%W%f %l Info %n: %m'
return SyntasticMake({ return SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat }) \ 'errorformat': errorformat })
endfunction endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({ call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'c', \ 'filetype': 'c',
\ 'name': 'pc_lint', \ 'name': 'pc_lint',
\ 'exec': 'lint-nt'}) \ 'exec': 'lint-nt'})
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo