clang_complete不能完成构造函数

时间:2013-01-13 11:57:46

标签: c++ vim clang-complete

考虑这个源片段:

class Z
{
  public:
    Z(int){}
    void foo() {}
};

这可以按预期工作:

int main()
{
  Z a(1);
  a.        // <- at this point, a list of functions appears in a menu

这根本不起作用:

  Z b       // <- at this point, nothing happens if I press <Tab> or C-X C-U
            // except a "pattern not found" message
  Z b(      // <- same here

但这样做:

  Z b = Z   // a list of constructors appears in a menu when <Tab> is pressed

是否可以设置clang_complete以使构造函数完成在两种情况下都有效?

1 个答案:

答案 0 :(得分:2)

这是clang(和libclang)问题,而不是Vim的插件clang_complete问题。

clang现在处于活动开发阶段AFAIK,因此,您可以在http://llvm.org/bugs处提交错误报告。但是,我自己在一个多月前提交了几个与代码完成相关的错误(例如this one),但它们仍然没有得到解决。

当我需要获得可用的构造函数列表时,我编写像你的Z b = Z之类的代码,选择构造函数,然后将Z b = Z转换为我真正需要的东西。不是很好,但总比没有好。