【问题标题】:cscope and ctag cannot find a function definition which is located in class declarationcscope 和 ctag 找不到位于类声明中的函数定义
【发布时间】:2012-08-12 10:18:41
【问题描述】:

我在浏览 C++ 源代码时使用 vim + ctag + cscope。 当我想查找任何函数 cscope 和/或 ctag 的定义时,会生成一个候选人列表,这似乎是一个。

但是,当我为头文件的类声明中定义的函数尝试此操作时,这两个函数都不会生成候选列表。 当 ctag 和/或 cscope 像这样失败时,我现在知道函数定义应该在头文件中。于是我打开头文件,找到里面的函数定义。

但我想知道这是否是 ctag 和 cscope 不可避免的行为。 有没有办法让它们(ctag 和 cscope)在这种情况下变得聪明,这样我就可以找到每个函数的定义,即使它们是在头文件中定义的?

非常感谢。

Journeyer J.约翰

【问题讨论】:

    标签: function lookup definition cscope


    【解决方案1】:

    我生成了如下标签文件。

    ctags --langmap=C++:.inc --c++-kinds=+p --fields=+iaS --extra=+fq --sort=foldcase -R .
    

    但必须按照下面的方式进行纠正。

    ctags --langmap=C++:+.inc --c++-kinds=+p --fields=+iaS --extra=+fq --sort=foldcase -R .
    

    来自

    --langmap=C++:.inc
    

    --langmap=C++:+.inc
    

    man ctags 对此有说明:

    [...] 指定仅将扩展名为 .c 和 .x 的文件视为 C 语言文件,使用 "--langmap=c:.c.x";要将扩展名为 .j 的文件也添加为 Java 语言文件,请指定“--langmap=c:.c.x,java:+.j”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      相关资源
      最近更新 更多