From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#22241: 25.0.50; etags Ruby parser problems Date: Sat, 26 Dec 2015 05:59:34 +0200 Message-ID: <86r3i9hnbt.fsf@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1451102424 8336 80.91.229.3 (26 Dec 2015 04:00:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 26 Dec 2015 04:00:24 +0000 (UTC) To: 22241@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Dec 26 05:00:13 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aCg1a-0006ED-S7 for geb-bug-gnu-emacs@m.gmane.org; Sat, 26 Dec 2015 05:00:11 +0100 Original-Received: from localhost ([::1]:37284 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aCg1Z-000630-SQ for geb-bug-gnu-emacs@m.gmane.org; Fri, 25 Dec 2015 23:00:09 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55597) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aCg1V-00062h-Sq for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 23:00:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aCg1S-00039h-NE for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 23:00:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:57248) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aCg1S-00039c-KM for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 23:00:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aCg1S-0002Ay-AD for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 23:00:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 26 Dec 2015 04:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 22241 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.14511023908317 (code B ref -1); Sat, 26 Dec 2015 04:00:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 26 Dec 2015 03:59:50 +0000 Original-Received: from localhost ([127.0.0.1]:36617 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aCg1F-0002A5-SV for submit@debbugs.gnu.org; Fri, 25 Dec 2015 22:59:50 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:36356) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aCg1E-00029t-9e for submit@debbugs.gnu.org; Fri, 25 Dec 2015 22:59:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aCg18-00037I-1s for submit@debbugs.gnu.org; Fri, 25 Dec 2015 22:59:42 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:51834) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aCg17-00037E-VO for submit@debbugs.gnu.org; Fri, 25 Dec 2015 22:59:41 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55558) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aCg16-00061Z-TW for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 22:59:41 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aCg13-00036U-ON for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 22:59:40 -0500 Original-Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]:36812) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aCg13-00036O-HP for bug-gnu-emacs@gnu.org; Fri, 25 Dec 2015 22:59:37 -0500 Original-Received: by mail-wm0-x22e.google.com with SMTP id p187so213406929wmp.1 for ; Fri, 25 Dec 2015 19:59:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:date:message-id:mime-version:content-type; bh=UY4RONVCnnVizfMkiYKH+lUerfgUcNOICuc0Jem4CNM=; b=pDZctI0UYL9GsfgntohOhhmzBHGPGgkl6GPyTUg1KPRCex1bYEqbl15Z9nkq022TvD bZNMoNLTBmVDedpwoUmbi97ZfCJFL3PT18p1vtHCTaLGRWExV1GHpdcsILZlOaO4jrmU eP8ekJuyH+ORpr4GvaJRZxWZdYkXpjJHkoRtQ7seFUnWJpxplLVeQEYIVdVEmM2sIS/w 3GD/9qkDsryvx1q5vHb9xJU/kws7SiOentiWHtyc7TFAC9FlmJLgrOYRDoe64h9wGgJr 0xyjG8iJEaFHIiA7Nf8UKjmr89K1R+EK/fsx28hi8ims/Y1aZ9RjILzjBaU7rx9eYonK ydzA== X-Received: by 10.194.112.130 with SMTP id iq2mr34905077wjb.102.1451102376425; Fri, 25 Dec 2015 19:59:36 -0800 (PST) Original-Received: from axl ([185.105.175.24]) by smtp.gmail.com with ESMTPSA id 79sm902442wmo.7.2015.12.25.19.59.35 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Dec 2015 19:59:35 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:110566 Archived-At: 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!