From: Sam Roberts Date: 2005-03-24T09:25:43+09:00 Subject: exctags deficiencies (was Re: Getting the word to conventional programmers) Quoting joevandyk@gmail.com, on Thu, Mar 24, 2005 at 06:35:36AM +0900: > I'm a vim diehard, but it would be nice to have something like ctags > or similar for Ruby. It would be great to hit a key and see a list of > the available functions and their arguments. One of the problem(s) > probably would be that every class in Ruby has a ton of available > functions, as they all inherit from a base class. I've never seen a version of tags that searches inheritance trees for methods.. Quoting pete@petta-tech.com, on Thu, Mar 24, 2005 at 06:56:30AM +0900: > >I'm a vim diehard, but it would be nice to have something like ctags > >or similar for Ruby. > I'm using ctags and ruby. Maybe it's your version of ctags? Exuberant > Ctags (ctags.sf.net) has supported every language I've thrown at it. Yeah, but its support for ruby is really weak. Lots of language constructs it doesn't support. Biggest thing that hurs me is that it doesn't do qualified tags. jumping to the tag for "to_s" isn't going to get you anwhere in ruby that you want to go. If either of you are interested, I've hacked rdoc to generate tags for methods so that module Foo module Bar::None class Joe def to_s end end end end will create a tag for to_s Joe.to_s None.to_s Bar.None.to_s Foo.Bar.None.to_s among other things, this allows you to semi-navigate class hierarchies, you can type: Bar.None and see a list of all the next matches, all the tags in None. Its a quick hack, and has some problems. I mean to go back to it, I know more about tags now, I think I could do better. I want tags for constants, for example (exctags doesn't do that either). I'm not trashing the work of whoever did exctags. Parsing ruby is hard, and to get tags of the same quality of C++/Java/C you can look at what they had to do... and shudder. Its close to a full parser! Thats why I used rdoc, its a pretty good ruby parser, though a bit slow. Mail me off list if you want the rdoc diffs. Cheers, Sam