From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.bugs Subject: bug#8724: 23.2; js-mode imenu should be more thorough Date: Sun, 19 Jun 2011 13:40:36 -0700 Message-ID: <4DFE5EC4.3070103@gmail.com> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1308516093 27106 80.91.229.12 (19 Jun 2011 20:41:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 19 Jun 2011 20:41:33 +0000 (UTC) Cc: 8724@debbugs.gnu.org To: dino chiesa Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jun 19 22:41:23 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QYOo3-000263-Ej for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Jun 2011 22:41:19 +0200 Original-Received: from localhost ([::1]:49241 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYOo2-00076H-EM for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Jun 2011 16:41:18 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:55251) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYOnn-000760-QL for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2011 16:41:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QYOnm-00055L-M9 for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2011 16:41:03 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:34872) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYOnm-00055H-JI for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2011 16:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QYOnl-000669-Uy; Sun, 19 Jun 2011 16:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Daniel Colascione Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Jun 2011 20:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8724 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 8724-submit@debbugs.gnu.org id=B8724.130851604723416 (code B ref 8724); Sun, 19 Jun 2011 20:41:01 +0000 Original-Received: (at 8724) by debbugs.gnu.org; 19 Jun 2011 20:40:47 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QYOnX-00065c-HN for submit@debbugs.gnu.org; Sun, 19 Jun 2011 16:40:47 -0400 Original-Received: from mail-pv0-f172.google.com ([74.125.83.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QYOnV-00065P-2H for 8724@debbugs.gnu.org; Sun, 19 Jun 2011 16:40:45 -0400 Original-Received: by pvh18 with SMTP id 18so3104680pvh.3 for <8724@debbugs.gnu.org>; Sun, 19 Jun 2011 13:40:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version :newsgroups:to:cc:subject:references:in-reply-to:x-enigmail-version :content-type:content-transfer-encoding; bh=igT1j9NWej+wQYxx4l5oV5mil/VAVwwoiT6qg9EtJ/Y=; b=GBqABLwe8lGOFYELxLhY4/6EdIpF3JEhMg2R8Qz/Xe2MVXSuNqaausSh5Eo0soNGa7 ZAbJgXWL0BF6IBzCZr0N50KaK2UHPfqspIsqe2070mE9EdlDwiiVrMRnMUVVlZYsLX7k OSqcOUkI5dqwX1tgmhtPtmcUdLuVh6RBjTe0w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:newsgroups:to:cc :subject:references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=cxnZ7kYsipFKexRUCZ/plrZ0wMZzIy1LtjkNmx+NhbqB19+TFCWnLDAVseicYxbI7D iJdRe5DoMqOzoz0OAF7uvw1jFrneVP7MtE9BnFsaFMq5+SN8ALG5oP0VcWLiH+jBnA7O er8cunlbFGjT3XuWQ+X7AZJVIEQyVp7uH7E3w= Original-Received: by 10.68.30.71 with SMTP id q7mr1723724pbh.519.1308516039367; Sun, 19 Jun 2011 13:40:39 -0700 (PDT) Original-Received: from edith.local (c-24-18-179-193.hsd1.wa.comcast.net [24.18.179.193]) by mx.google.com with ESMTPS id o2sm2784577pbj.33.2011.06.19.13.40.38 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 19 Jun 2011 13:40:38 -0700 (PDT) User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 Original-Newsgroups: gmane.emacs.bugs In-Reply-To: X-Enigmail-Version: 1.1.1 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 19 Jun 2011 16:41:01 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.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:47334 Archived-At: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Dino, Thanks for the feature suggestion and code. On 5/24/11 5:51 AM, dino chiesa wrote: > > Module /emacs/lisp/progmodes/js.el > > In js-mode, editing a short javascript file, the imenu indexing works > nicely but the actual menu is incomplete, truncated. The defun > js--pitems-to-imenu seems to make an insufficient effort, when > nested function definitions are used in the source. > > For example, supposing this js source: > > jQuery(document).ready(function () { > var $th = jQuery('thead > tr > th'); > $th.each(function(column, elt) { > jQuery(this).addClass('sortable').click(function() { > ... > }); > }); > }); > > (this is fairly typical with javascript) Fair enough. > > In this case js-mode will index all of the anonymous functions, but will > produce an imenu that contains only the outer anonymous function. This is > done in js--pitems-to-imenu. Also, in the same defun, the imenu entry uses > "Unknown" as the name of the anonymous function. > > I propose 2 things: > - replace the name "unknown" with "Anonymous" > - recurse into js--pitems-to-imenu for functions that define > child functions. > > The proposed new code for the defun is: I'll see what I can do about looking at your code. In the meantime, it would be helpful if you could submit your changes as a patch against the latest code in trunk. Thanks, Daniel Colascione -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (Darwin) iEYEARECAAYFAk3+XsIACgkQ17c2LVA10Vta4ACfab5AvYokQAfTTOn+hmwKIRwl buIAoJC08O+cthOUL7UTHo+er6kZcFYT =bT2r -----END PGP SIGNATURE-----