在Vim中启用Cppcheck时遇到一个问题,对于普通代码,它工作正常,但通常我有typedef
和一些Cppcheck可能不知道的函数。对于个别检查,我没有问题因为我可以为Cppcheck编写库和规则,例如mycppcheck.cfg
文件:
<?xml version="1.0"?>
<def>
<!-- 2015-Oct-23 requested by Chen How -->
<function name="Printf"><noreturn>false</noreturn></function>
</def>
<def>
<podtype name="Int8" sign="s" size="1"/>
<podtype name="UInt8" sign="u" size="1"/>
<podtype name="Int16" sign="s" size="2"/>
<podtype name="UInt16" sign="u" size="2"/>
<podtype name="Int32" sign="s" size="4"/>
<podtype name="UInt32" sign="u" size="4"/>
</def>
<def>
<memory>
<alloc>my_malloc</alloc>
<dealloc>my_free</dealloc>
</memory>
</def>
当我使用Cppcheck时,我执行以下命令:
$ cppcheck --library=mycppcheck.cfg
当我在Vim中使用Cppcheck时,如何告诉Cppcheck当前文件应该使用哪个库?没有图书馆,Cppcheck无法确定正确的风险。
我使用syntastic
作为Vim的插件。是否有其他方法可以在没有此插件的情况下启用Cppcheck工具?
我还检查了主题 Which error format should be used for Vim and Cppcheck? 。我认为它可以为我工作,但我没有找到这个库定义。关于上述主题,我的第一个猜测正在改变:
set makeprg=cppcheck\ --enable=all\ %
到
set makeprg=cppcheck\ --library=mycppcheck.cfg --enable=all\ %
更多调查结果 @ syntastic
4.8。如何将其他参数传递给检查器?
一个。几乎所有语法检查器都使用makeprgBuild()函数。那些可以使用全局变量配置的检查器。全局参数变量的一般形式是syntastic ___ args。
因此,如果您想将--my --args --here
传递给Ruby mri检查器,您可以将此行添加到vimrc文件中:
let g:syntastic_ruby_mri_args = "--my --args --here"
有关详细信息,请参阅:help syntastic-checker-options
。