Subject: bug#22241: closed (Re: bug#22241: 25.0.50; etags Ruby parser problems)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 04 Feb 2016 20:07:02 +0000

Your bug report

#22241: 25.0.50; etags Ruby parser problems

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
22241: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22241
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#22241: 25.0.50; etags Ruby parser problems
From: Dmitry Gutov <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Thu, 4 Feb 2016 23:06:47 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

On 02/04/2016 08:24 PM, Eli Zaretskii wrote:

>> Just skip it as well.
> Done.

Thanks a lot, marking this as done.

Subject: 25.0.50; etags Ruby parser problems
From: Dmitry Gutov <[email-masked]>
To: [email-masked]
Date: Sat, 26 Dec 2015 05:59:34 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

In GNU Emacs 25.0.50.5 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.7).

It's great that we've incorporated some Ruby support, but it has some
apparent problems:

- Constants are not indexed.

- Class methods (def self.foo) are given the wrong name ("self."
  shouldn't be included).

- "class << self" blocks are given a separate entry.

- Qualified tag names are never generated.

Take this example file:

module A
  class B
    ABC = 4

    def foo!
    end

    def self._bar?(abc)
    end

    class << self
      def qux=(tee)
      end
    end
  end
end

It should have this unqualified index:

A
B
ABC
foo!
_bar?
qux=

And the qualified names should look like this:

A
A::B
A::B::ABC
A::B#foo!
A::B.bar?
A::B.qux=

Lastly, it would be great if the parser recognized some built-in
code-generating methods. Example:

def A
  attr_reader :foo
  attr_writer :bar
  attr_accessor :tee
  alias_method :qux, :tee
end

should become (the unqualified version):

A
foo
bar=
tee
tee=
qux

All attr_* methods can take a variable number of arguments. The parser
should take each argument, check that it's a symbol and not a variable
(starts with :), and if so, record the corresponding method name.

Thanks!