Exumerant Ctags 不适用于 Ruby,你可以看到 ruby.c 代码中有很多 hacks 并且基本上它无法识别很多情况。其中最重要的是这一点:
class SomeModule::SomeClass
end
Ctags 生成:
SomeModule someclass.rb /^class SomeModule::SomeClass$/;" c
这是错误的。正确和预期的条目是:
SomeClass someclass.rb /^class SomeModule::SomeClass$/;" c
这是非常有限的。有一些适用于 ctags 的补丁不起作用,例如https://github.com/xtao/overlay/blob/master/dev-util/ctags/files/ctags-5.5.4-ruby-classes.patch但正在寻找在 ctags ruby 代码库上,这确实需要完全重写。
所以我一直在玩其他选项,即https://github.com/rdoc/rdoc-tags,它效果更好,但速度很慢。我的意思是真的很慢。使用 ctags 在我的项目上生成标签需要 2 秒,但使用此工具需要 1 小时。真的。
我发现了一个旧项目,它自己解析 Ruby 并生成标签,但它仅适用于 Ruby 1.8。它比 ctags 慢,但还不错。
所以我正在寻找一些替代品。您是否知道任何其他工作的 ruby ctags 生成器可以为您提供适当的输出并且速度很快?
谢谢!
编辑:我发现了非常好的项目,它适用于 Ruby 1.9+,并且准确且快速。我推荐它: