[Geany] Scoped Ruby declarations, with a hackish patch

Colomban Wendling lists.ban at xxxxx
Thu Sep 6 19:34:10 UTC 2012

Le 06/09/2012 20:58, Colomban Wendling a écrit :
> Hi guys,
> I saw that the ruby parser don't properly generate tags declarations like:
> 	class Foo::Bar
> 	end
> which should generate a tag "Bar" with the scope "Foo";  but it
> generates a tag "Foo" and simply ignores "Bar".  This seems to apply to
> modules, classes and methods at least -- almost everything.
> So I wanted to fix that.  Unfortunately the scoping code in CTags don't
> really support to easily put several scopes at the same "level", e.g. if
> you want to push several scope you gotta handle the popping yourself.
> And since there is one single block end, it's tricky to do.
> Since I was way too lazy (and didn't even found a good implementation)
> to fix that, I just did it the dirty way: reading the whole "Foo::Bar"
> as a single tag name ("Foo.Bar") and tuning the code registering the tag
> to split this on the last ".", putting the left part (if any) in the
> scope.  Patch attached.

Ah, I forgot to mention that it'd be awesome if some true Ruby users
could test the patch and check whether it breaks anything I didn't see :)

More information about the Users mailing list