通用Ctags的难点:获得完全合格的C++作用域

tvz2xvvm  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(123)

我目前正在做一个C项目,使用通用Ctags进行代码导航。我在获得完全限定的C作用域(包括名称空间、类和函数)方面遇到了困难。
以下是我迄今为止尝试的方法:
使用标准的通用Ctags命令:

  1. ctags --languages=c++ --fields=+n -R .

字符串
但是,这个命令似乎没有像预期的那样捕获完全限定的作用域。
我特别感兴趣的函数是在client.cpp文件中声明和定义的,该文件位于一个名称空间中,也可能位于一个类中。
我是否在通用Ctags命令中缺少任何特定的标志或选项?是否有代码结构问题影响标记过程?
如果任何人有通用Ctags的经验,并成功地获得了完全合格的C++范围,我将非常感谢您的指导和任何提示,以改善标记过程。
谢谢你,谢谢

suzh9iv8

suzh9iv81#

在命令行中添加--extras=+q或--extras=+{qualified}选项,如:

  1. $ cat /tmp/foo.cpp
  2. class C {
  3. void method(void) {}
  4. };
  5. $ ctags --languages=c++ --fields=+n -R --extras=+q -o - /tmp/foo.cpp
  6. C /tmp/foo.cpp /^class C {$/;" c line:1 file:
  7. C::method /tmp/foo.cpp /^ void method(void) {}$/;" f line:2 class:C typeref:typename:void file:
  8. method /tmp/foo.cpp /^ void method(void) {}$/;" f line:2 class:C typeref:typename:void file:

字符串

相关问题