当类被定义为“class Gem :: SystemExitException”时,ctags不起作用

时间:2010-04-04 17:23:10

标签: ruby vim ctags

您可以在名称空间中定义类

class Gem
  class SystemExitException
  end
end

class Gem::SystemExitException
end

当代码使用第一种类定义方法时,ctags会对类定义进行索引,如下所示:

SystemExitException     test_class.rb   /^  class SystemExitException$/;"      c       class:Gem

使用第二种方式,ctags将其编入索引:

Gem      rubygems/exceptions.rb  /^class Gem::SystemExitException < SystemExit$/;"       c

第二种方法的问题是你不能把你的光标(在vim中)放在对“Gem :: SystemExitException”的引用上,并直接跳转到类定义。您唯一的办法是浏览所有以“Gem ::”开头的(110!)类定义,找到您正在寻找的那个。

有没有人知道解决方法?也许我应该向ctags的维护者报告这个?

2 个答案:

答案 0 :(得分:3)

选项是--extra = + q,但ctags仅支持C ++,Java和Eiffel。

http://ctags.sourceforge.net/faq.html#7

所以是的,你必须要求为Ruby扩展+ q模式。

答案 1 :(得分:2)

http://www.mail-archive.com/geany@uvena.de/msg05290.html

上有一个修补此行为的补丁