I'm looking for tagging of constants, classes, modules, and methods,
and particularly for qualified tags (so MyClass#to_s and YourClass#to_s
are different tags).
I know about the rtags reference in the Pickaxe books, that program has
vanished from the net.
I also know about exhuberant ctags, it only tags classes, module, and
methods, and doesn't have qualified tags, which is a killer in any
project with more than a few classes.
Does anybody have a copy of the pre-merged-with-ruby irb-tools project
hanging around? I'd really, really like to get a hold of that rtags.rb
mentioned in the pickaxe, if I had a copy I might be able to get tags
working!
Cheers,
Sam
For those not familiar with how tags works with languages that are
supported really well, like C++, here is an example.
···
---
module Foo
class Aclass
ACONST = 1
def to_s
end
end
end
module Bar
class Aclass
ACONST = 1
def to_s
end
end
end
---
Exhuberant ctags generates this for the above example:
--- tags ---
...
!_TAG_PROGRAM_VERSION 5.5.4 //
Aclass ex.rb /^ class Aclass$/;" c
Bar ex.rb /^module Bar$/;" m
Foo ex.rb /^module Foo$/;" m
to_s ex.rb /^ def to_s$/;" f
---
I want all the tags:
--- tags ---
Aclass ...
Aclass.to_s
ACONST
Bar ...
Bar.Aclass ...
Bar.Aclass.to_s ...
Bar.ACONST
Foo ...
Foo.Aclass ...
Foo.Aclass.to_s ...
Foo.ACONST
to_s ...
---
So I can do a tag jump to Aclass.to_s and go the right one.
In case you wonder, you can get the above for C++ and Java using "ctags
--extra=+q", but not for ruby.