Vim YouCompleteMe clang 不完成 C++11 'auto' 变量
Vim YouCompleteMe clang does not complete C++11 'auto' variables
我为 YouCompleteMe vim 插件使用 clang 完成器。我发现它不为声明为 'auto'.
类型的变量提供预测
这是一个已知问题吗?如果不是,我应该检查哪些可能的配置参数来寻找解决方案?
考虑以下代码片段:
std::vector <int> persistent_data_container = {1, 2, 3};
const auto &data = persistent_data_container;
data. // on typing this dot, I would expect a list of completion suggestions
我最终使用以下方法隔离了问题:
:YcmForceCompileAndDiagnostics # To retry new config
:YcmDebugInfo # for debug info (derp!)
:messages # for runtime diagnostics
这指出了我的 .ycm_extra_conf.py 模板中的语法错误:
import os
import ycm_core
flags = ['-std=c++11',
'-x', 'c++', # <- I had an extra comma here :(
'-DUSE_CLANG_COMPLETER',
'-I/usr/local/include',
'-I/usr/include/clang/3.5/include',
'-I/usr/include/x86_64-linux-gnu',
'-I/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include',
'-I/usr/include',
'-I/usr/include/c++/4.9', %s]
# youcompleteme is calling this function to get flags
# You can also set database for flags. Check: JSONCompilationDatabase.html in
# clang-3.2-doc package
def FlagsForFile( filename ):
return {
'flags': flags,
'do_cache': True
}
我为 YouCompleteMe vim 插件使用 clang 完成器。我发现它不为声明为 'auto'.
类型的变量提供预测这是一个已知问题吗?如果不是,我应该检查哪些可能的配置参数来寻找解决方案?
考虑以下代码片段:
std::vector <int> persistent_data_container = {1, 2, 3};
const auto &data = persistent_data_container;
data. // on typing this dot, I would expect a list of completion suggestions
我最终使用以下方法隔离了问题:
:YcmForceCompileAndDiagnostics # To retry new config
:YcmDebugInfo # for debug info (derp!)
:messages # for runtime diagnostics
这指出了我的 .ycm_extra_conf.py 模板中的语法错误:
import os
import ycm_core
flags = ['-std=c++11',
'-x', 'c++', # <- I had an extra comma here :(
'-DUSE_CLANG_COMPLETER',
'-I/usr/local/include',
'-I/usr/include/clang/3.5/include',
'-I/usr/include/x86_64-linux-gnu',
'-I/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include',
'-I/usr/include',
'-I/usr/include/c++/4.9', %s]
# youcompleteme is calling this function to get flags
# You can also set database for flags. Check: JSONCompilationDatabase.html in
# clang-3.2-doc package
def FlagsForFile( filename ):
return {
'flags': flags,
'do_cache': True
}