标签: omnicppcomplete

omn​​icppcomplete不支持所有形式的const

我有omnicppcomplete工作正常,除了偶尔它不会完成一些变量方法/成员.我终于厌倦了深入研究为什么,我相信原因是omnicppcomplete确实支持函数参数中的语法"Foo const&foo".

例如,如果我将函数定义为:

int foo( Bar const & b ){
}
Run Code Online (Sandbox Code Playgroud)

当我稍后输入"b."时,我将无法获得完成信息.但是,如果我将签名更改为:

int foo( const Bar & b ){
}
Run Code Online (Sandbox Code Playgroud)

当我输入"b."时,我将能够获得完成信息.它似乎只是在函数参数列表中,因为我尝试使用签名"Bar const&bref"在函数中定义一个变量,并且我能够获得bref的完成信息.

如果这是omnicppcomplete的实际限制,我会感到惊讶; 任何人都不知道这是否是一个错误和/或是否有解决方法?改变编码风格似乎不是一个合理的解决方案.

c++ vim omnicppcomplete

6
推荐指数
1
解决办法
270
查看次数

如何使vim标签跳转像OmniCppComplete一样智能?

我生成我的标签(Exuberant Ctags 5.9~svn20110310),如下所示:

 ctags --c++-kinds=+p --fields=+iaS --extra=+q -L ctags.files
Run Code Online (Sandbox Code Playgroud)

我大致有这个类结构:

class RenderObject
{
    InterpolatedVector offset;
};

class Quad : public RenderObject
{
};

class KeyframeWidget : public Quad
{
    void shiftRight()
    {
        if (!offset.isInterpolating())
            offset.interpolateTo(Vector(offset.x+80, 0), 0.1, 0, 0, 0);
    }
};
Run Code Online (Sandbox Code Playgroud)

(代码来自Aquaria的开源版本.)

如果我标记跳转offset(Ctrl- ]),那么我offset在代码库中得到一个列表.输入offset.结束后shiftRight(),OmniCppComplete仅开始提供完成InterpolatedVector.

如何让我的标签像OmniCppComplete一样聪明?

只是标签跳转不使用任何上下文,所以他们只知道符号名称?(它是否完全相同:tag <C-r><C-w><CR>?)是否存在使其具有上下文感知能力的vim替代方案?

c++ vim ctags omnicppcomplete exuberant-ctags

5
推荐指数
1
解决办法
580
查看次数

标签 统计

c++ ×2

omnicppcomplete ×2

vim ×2

ctags ×1

exuberant-ctags ×1