GNU logs - #8724, boring messages


Message sent to owner <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#8724: 23.2; js-mode imenu should be more thorough
Resent-From: dino chiesa <dpchiesa@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-To: owner <at> debbugs.gnu.org
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 24 May 2011 13:16:02 +0000
Resent-Message-ID: <handler.8724.B.130624295011453 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 8724
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 8724 <at> debbugs.gnu.org
X-Debbugs-Original-To: <bug-gnu-emacs@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.130624295011453
          (code B ref -1); Tue, 24 May 2011 13:16:02 +0000
Received: (at submit) by debbugs.gnu.org; 24 May 2011 13:15:50 +0000
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1QOrSf-0002yf-7G
	for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:15:50 -0400
Received: from eggs.gnu.org ([140.186.70.92])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <dpchiesa@HIDDEN>) id 1QOrSb-0002yT-Vf
	for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:15:47 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dpchiesa@HIDDEN>) id 1QOrSV-000410-CO
	for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:15:40 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
	HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RECEIVED_FROM_WINDOWS_HOST,
	RFC_ABUSE_POST, T_RP_MATCHES_RCVD autolearn=no version=3.3.1
Received: from lists.gnu.org ([140.186.70.17]:40510)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dpchiesa@HIDDEN>) id 1QOrSV-00040w-AL
	for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:15:39 -0400
Received: from eggs.gnu.org ([140.186.70.92]:47549)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dpchiesa@HIDDEN>) id 1QOrST-0006gA-Ke
	for bug-gnu-emacs@HIDDEN; Tue, 24 May 2011 09:15:39 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dpchiesa@HIDDEN>) id 1QOrSS-00040b-4G
	for bug-gnu-emacs@HIDDEN; Tue, 24 May 2011 09:15:37 -0400
Received: from blu0-omc1-s14.blu0.hotmail.com ([65.55.116.25]:52904)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dpchiesa@HIDDEN>) id 1QOrSR-00040X-W6
	for bug-gnu-emacs@HIDDEN; Tue, 24 May 2011 09:15:36 -0400
Received: from BLU159-W1 ([65.55.116.9]) by blu0-omc1-s14.blu0.hotmail.com
	with Microsoft SMTPSVC(6.0.3790.4675); 
	Tue, 24 May 2011 05:51:36 -0700
Message-ID: <BLU159-w1BD508A3BC8FDB4EA3337CE750@HIDDEN>
Content-Type: multipart/alternative;
	boundary="_a96799d3-bcd9-40d4-83aa-39cac8955e13_"
X-Originating-IP: [71.60.182.236]
From: dino chiesa <dpchiesa@HIDDEN>
Date: Tue, 24 May 2011 05:51:36 -0700
Importance: Normal
MIME-Version: 1.0
X-OriginalArrivalTime: 24 May 2011 12:51:36.0583 (UTC)
	FILETIME=[5130F170:01CC1A11]
X-detected-operating-system: by eggs.gnu.org: Windows 2000 SP4, XP SP1+
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3)
X-Received-From: 140.186.70.17
X-Spam-Score: -6.0 (------)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.0 (------)

--_a96799d3-bcd9-40d4-83aa-39cac8955e13_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


Module /emacs/lisp/progmodes/js.el
=20
In js-mode=2C editing a short javascript file=2C the imenu indexing works
nicely but the actual menu is incomplete=2C truncated. The defun
js--pitems-to-imenu seems to make an insufficient effort=2C when
nested function definitions are used in the source.=20
=20
For example=2C supposing this js source:=20
=20
  jQuery(document).ready(function () {
      var $th =3D jQuery('thead > tr > th')=3B
      $th.each(function(column=2C elt) {
          jQuery(this).addClass('sortable').click(function() {
             ...
          })=3B
      })=3B
  })=3B
=20
(this is fairly typical with javascript)
=20
In this case js-mode will index all of the anonymous functions=2C but will=
=20
produce an imenu that contains only the outer anonymous function. This is=20
done in js--pitems-to-imenu. Also=2C in the same defun=2C the imenu entry u=
ses
"Unknown" as the name of the anonymous function.
=20
I propose 2 things:=20
  - replace the name "unknown" with "Anonymous"
  - recurse into js--pitems-to-imenu for functions that define=20
    child functions.=20

The proposed new code for the defun is:=20
=20
     (defun js--pitems-to-imenu (pitems unknown-ctr)
       "Convert list of pitems PITEMS to imenu format"
       (let (imenu-items pitem pitem-type pitem-name subitems)
         (while (setq pitem (pop pitems))
           (setq pitem-type (js--pitem-type pitem))
           (setq pitem-name (js--pitem-strname pitem))
           (when (eq pitem-name t)
             (setq pitem-name (format "Anonymous %s"
                                      (incf (car unknown-ctr)))))
           (cond
            ((memq pitem-type '(function macro))
             (assert (integerp (js--pitem-h-begin pitem)))
             =3B=3B DPC check for children (nested fnc defns)
             (cond
              ((js--pitem-children pitem)
               (setq subitems (js--pitems-to-imenu
                               (js--pitem-children pitem)
                               unknown-ctr))
               (cond
                (subitems
                 =3B=3B DPC index "top" and "bottom" of the enclosure
                 (push (cons "(top)"
                             (js--maybe-make-marker
                              (js--pitem-h-begin pitem)))
                       subitems)
                 (let ((b-end (js--pitem-b-end pitem)))
                   (if b-end
                       (setq subitems
                             (append subitems
                                     (list (cons "(bottom)"
                                                 (js--maybe-make-marker b-e=
nd)))
                                     subitems))))
                 (push (cons pitem-name subitems)
                       imenu-items))
                (t
                 (push (cons pitem-name
                             (js--maybe-make-marker
                              (js--pitem-h-begin pitem)))
                       imenu-items))))
              (t
               (push (cons pitem-name
                           (js--maybe-make-marker
                            (js--pitem-h-begin pitem)))
                     imenu-items))))
            ((consp pitem-type) =3B class definition
             (setq subitems (js--pitems-to-imenu
                             (js--pitem-children pitem)
                             unknown-ctr))
             (cond (subitems
                    (push (cons pitem-name subitems)
                          imenu-items))
                   ((js--pitem-h-begin pitem)
                    (assert (integerp (js--pitem-h-begin pitem)))
                    (setq subitems (list
                                    (cons "[empty]"
                                          (js--maybe-make-marker
                                           (js--pitem-h-begin pitem)))))
                    (push (cons pitem-name subitems)
                          imenu-items))))
            (t (error "Unknown item type: %S" pitem-type))))
         imenu-items))
=20
=20
In GNU Emacs 23.2.1 (i386-mingw-nt6.1.7601)
 of 2010-05-08 on G41R2F1
Windowing system distributor `Microsoft Corp.'=2C version 6.1.7601
configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/xpm/inc=
lude'
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default enable-multibyte-characters: t
Major mode: Emacs-Lisp
Minor modes in effect:
  auto-revert-mode: t
  yas/minor-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Mark saved where search started
Mark set
No closing parenthesis found
Mark set
Matches   '(... [-73-]
Matches (eval-after-load "js" [-74]
Mark set [2 times]
Saving file c:/Users/Dino/elisp/emacs.el...
Wrote c:/Users/Dino/elisp/emacs.el
Mark set
Load-path shadows:
/users/dino/elisp/linum hides c:/emacs/lisp/linum
/users/dino/elisp/css-mode hides c:/emacs/lisp/textmodes/css-mode
Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils emacsbug help-mode view js find-func
dired-aux flymake-for-jslint-for-wsh flymake-cursor flymake autopair
espresso bytecomp byte-compile ido json thingatpt etags imenu newcomment
cc-mode cc-fonts cc-menus cc-cmds multi-isearch grep compile comint ring
time-stamp sgml-mode autorevert server cperl-mode paren mic-paren
hideshow easymenu cc-styles cc-align cc-engine cc-vars cc-defs dired
regexp-opt defaultcontent yasnippet-bundle dropdown-list yasnippet
easy-mmode cl cl-19 tfs skeleton httpget hl-line advice help-fns
advice-preload auto-complete-config auto-complete edmacro kmacro popup
tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table
ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
loaddefs button minibuffer faces cus-face files text-properties overlay
md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty emacs)
 		 	   		  =

--_a96799d3-bcd9-40d4-83aa-39cac8955e13_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<style><!--
.hmmessage P
{
margin:0px=3B
padding:0px
}
body.hmmessage
{
font-size: 10pt=3B
font-family:Tahoma
}
--></style>
</head>
<body class=3D'hmmessage'>
Module /emacs/lisp/progmodes/js.el<BR>
&nbsp=3B<BR>
In js-mode=2C editing a short javascript file=2C the imenu indexing works<B=
R>nicely but the actual menu is incomplete=2C truncated. The defun<BR>js--p=
items-to-imenu seems to make an insufficient effort=2C when<BR>nested funct=
ion definitions&nbsp=3Bare used in the source. <BR>
&nbsp=3B<BR>
For example=2C supposing this js source: <BR>
&nbsp=3B<BR>
&nbsp=3B jQuery(document).ready(function () {<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B var $th =3D jQuery('thead &gt=3B t=
r &gt=3B th')=3B<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B $th.each(function(column=2C elt) {=
<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B jQ=
uery(this).addClass('sortable').click(function() {<BR>&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
 ...<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B })=3B<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B })=3B<BR>&nbsp=3B }=
)=3B<BR>
&nbsp=3B<BR>
(this is fairly typical with javascript)<BR>
&nbsp=3B<BR>
In this case&nbsp=3Bjs-mode will index all of the anonymous functions=2C bu=
t will <BR>produce an imenu that contains only the outer anonymous function=
. This is <BR>done in js--pitems-to-imenu. Also=2C in the same defun=2C the=
 imenu entry uses<BR>"Unknown" as the name of the anonymous function.<BR>
&nbsp=3B<BR>
I propose 2 things: <BR>
&nbsp=3B - replace the name "unknown" with "Anonymous"<BR>
&nbsp=3B - recurse into js--pitems-to-imenu for functions that define <BR>&=
nbsp=3B&nbsp=3B&nbsp=3B child functions. <BR>
<BR>The proposed new code for the defun is: <BR>
&nbsp=3B<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (defun js--pitems-to-imenu (pitems unknown=
-ctr)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B "Convert list of =
pitems PITEMS to imenu format"<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (let (imenu-items pitem pi=
tem-type pitem-name subitems)<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (while (se=
tq pitem (pop pitems))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (setq pitem-type (js--pitem-type pitem))<BR=
>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&n=
bsp=3B (setq pitem-name (js--pitem-strname pitem))<BR>&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (when (eq pitem=
-name t)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (setq pitem-name (format "Anonymous %s"=
<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B (incf (car unknown-ctr)))))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B (cond<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B ((memq pitem-type '(function macro))<BR>&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B (assert (integerp (js--pitem-h-begin pitem)))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B =3B=3B DPC check for children (nested fnc defns)<BR>&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B (cond<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B ((js--pitem-chi=
ldren pitem)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (setq subitems (js--p=
items-to-imenu<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--pitem-children pitem)<BR>&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B unknown-ctr))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (cond<BR>&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (subitems<BR>&nbsp=3B&nbsp=3B&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B =3B=3B DPC index "top" and "bottom" of =
the enclosure<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (pus=
h (cons "(top)"<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B (js--maybe-make-marker<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--pitem-h-begin pi=
tem)))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B subitems)<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (let ((b-end (js--pit=
em-b-end pitem)))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B (if b-end<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (setq subitems<BR>=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
 (append subitems<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B (list (cons "(bottom)"<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--maybe-make-marker b-e=
nd)))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B su=
bitems))))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (push (cons pitem-nam=
e subitems)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B imenu-items))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (t<BR>&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (push (cons pitem-name<BR>&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--maybe-make=
-marker<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B (js--pitem-h-begin pitem)))<BR>&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B imenu-items))))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B (t<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
 (push (cons pitem-name<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B (js--maybe-make-marker<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--pitem-h-begin pitem)))<BR>&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B im=
enu-items))))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B ((consp pitem-type) =3B class definition<BR>&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B (setq subitems (js--pitems-to-imenu<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--pitem-children pitem)<BR=
>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
 unknown-ctr))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (cond (subitems<BR>&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (push (cons p=
item-name subitems)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
 imenu-items))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B ((js-=
-pitem-h-begin pitem)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B (assert (integerp (js--pitem-h-begin pitem)))<B=
R>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B (setq subitems (list<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B (cons "[empty]"<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--maybe-ma=
ke-marker<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B (js--pitem-h-begin pite=
m)))))<BR>&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&=
nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbs=
p=3B&nbsp=3B (push (cons pitem-name subitems)<BR>&nbsp=3B&nbsp=3B&nbsp=3B&n=
bsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=
=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B=
&nbsp=3B&nbsp=3B&nbsp=3B imenu-items))))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nb=
sp=3B&nbsp=3B (t (error "Unknown item type: %S" pitem-type))))<BR>
&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B&nbsp=3B imenu-item=
s))<BR>
&nbsp=3B<BR>
&nbsp=3B<BR>
In GNU Emacs 23.2.1 (i386-mingw-nt6.1.7601)<BR>&nbsp=3Bof 2010-05-08 on G41=
R2F1<BR>Windowing system distributor `Microsoft Corp.'=2C version 6.1.7601<=
BR>configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/xpm/=
include'<BR>
Important settings:<BR>&nbsp=3B value of $LC_ALL: nil<BR>&nbsp=3B value of =
$LC_COLLATE: nil<BR>&nbsp=3B value of $LC_CTYPE: nil<BR>&nbsp=3B value of $=
LC_MESSAGES: nil<BR>&nbsp=3B value of $LC_MONETARY: nil<BR>&nbsp=3B value o=
f $LC_NUMERIC: nil<BR>&nbsp=3B value of $LC_TIME: nil<BR>&nbsp=3B value of =
$LANG: ENU<BR>&nbsp=3B value of $XMODIFIERS: nil<BR>&nbsp=3B locale-coding-=
system: cp1252<BR>&nbsp=3B default enable-multibyte-characters: t<BR>
Major mode: Emacs-Lisp<BR>
Minor modes in effect:<BR>&nbsp=3B auto-revert-mode: t<BR>&nbsp=3B yas/mino=
r-mode: t<BR>&nbsp=3B global-hl-line-mode: t<BR>&nbsp=3B hl-line-mode: t<BR=
>&nbsp=3B global-auto-complete-mode: t<BR>&nbsp=3B auto-complete-mode: t<BR=
>&nbsp=3B tooltip-mode: t<BR>&nbsp=3B mouse-wheel-mode: t<BR>&nbsp=3B menu-=
bar-mode: t<BR>&nbsp=3B file-name-shadow-mode: t<BR>&nbsp=3B global-font-lo=
ck-mode: t<BR>&nbsp=3B font-lock-mode: t<BR>&nbsp=3B blink-cursor-mode: t<B=
R>&nbsp=3B auto-encryption-mode: t<BR>&nbsp=3B auto-compression-mode: t<BR>=
&nbsp=3B line-number-mode: t<BR>&nbsp=3B transient-mark-mode: t<BR>
<BR>Recent messages:<BR>Mark saved where search started<BR>Mark set<BR>No c=
losing parenthesis found<BR>Mark set<BR>Matches&nbsp=3B&nbsp=3B '(... [-73-=
]<BR>Matches (eval-after-load "js" [-74]<BR>Mark set [2 times]<BR>Saving fi=
le c:/Users/Dino/elisp/emacs.el...<BR>Wrote c:/Users/Dino/elisp/emacs.el<BR=
>Mark set<BR>
Load-path shadows:<BR>/users/dino/elisp/linum hides c:/emacs/lisp/linum<BR>=
/users/dino/elisp/css-mode hides c:/emacs/lisp/textmodes/css-mode<BR>
Features:<BR>(shadow sort mail-extr message ecomplete rfc822 mml mml-sec<BR=
>password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231<BR=
>rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc<BR>time-=
date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1<BR>hex-u=
til hashcash mail-utils emacsbug help-mode view js find-func<BR>dired-aux f=
lymake-for-jslint-for-wsh flymake-cursor flymake autopair<BR>espresso bytec=
omp byte-compile ido json thingatpt etags imenu newcomment<BR>cc-mode cc-fo=
nts cc-menus cc-cmds multi-isearch grep compile comint ring<BR>time-stamp s=
gml-mode autorevert server cperl-mode paren mic-paren<BR>hideshow easymenu =
cc-styles cc-align cc-engine cc-vars cc-defs dired<BR>regexp-opt defaultcon=
tent yasnippet-bundle dropdown-list yasnippet<BR>easy-mmode cl cl-19 tfs sk=
eleton httpget hl-line advice help-fns<BR>advice-preload auto-complete-conf=
ig auto-complete edmacro kmacro popup<BR>tooltip ediff-hook vc-hooks lisp-f=
loat-type mwheel dos-w32 disp-table<BR>ls-lisp w32-win w32-vars tool-bar dn=
d fontset image fringe lisp-mode<BR>register page menu-bar rfn-eshadow time=
r select scroll-bar mldrag mouse<BR>jit-lock font-lock syntax facemenu font=
-core frame cham georgian<BR>utf-8-lang misc-lang vietnamese tibetan thai t=
ai-viet lao korean<BR>japanese hebrew greek romanian slovak czech european =
ethiopic indian<BR>cyrillic chinese case-table epa-hook jka-cmpr-hook help =
simple abbrev<BR>loaddefs button minibuffer faces cus-face files text-prope=
rties overlay<BR>md5 base64 format env code-pages mule custom widget<BR>has=
htable-print-readable backquote make-network-process multi-tty emacs)<BR><B=
R> 		 	   		  </body>
</html>=

--_a96799d3-bcd9-40d4-83aa-39cac8955e13_--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.427 (Entity 5.427)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: dino chiesa <dpchiesa@HIDDEN>
Subject: bug#8724: Acknowledgement (23.2; js-mode imenu should be more
 thorough)
Message-ID: <handler.8724.B.130624295011453.ack <at> debbugs.gnu.org>
References: <BLU159-w1BD508A3BC8FDB4EA3337CE750@HIDDEN>
X-Gnu-PR-Message: ack 8724
X-Gnu-PR-Package: emacs
Reply-To: 8724 <at> debbugs.gnu.org
Date: Tue, 24 May 2011 13:16:02 +0000

Thank you for filing a new bug report with GNU.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 8724 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
8724: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D8724
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to owner <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#8724: 23.2; js-mode imenu should be more thorough
Resent-From: Daniel Colascione <dan.colascione@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-To: owner <at> debbugs.gnu.org
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 19 Jun 2011 20:41:01 +0000
Resent-Message-ID: <handler.8724.B8724.130851604723416 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 8724
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: dino chiesa <dpchiesa@HIDDEN>
Cc: 8724 <at> debbugs.gnu.org
Received: via spool by 8724-submit <at> debbugs.gnu.org id=B8724.130851604723416
          (code B ref 8724); Sun, 19 Jun 2011 20:41:01 +0000
Received: (at 8724) by debbugs.gnu.org; 19 Jun 2011 20:40:47 +0000
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1QYOnX-00065c-HN
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2011 16:40:47 -0400
Received: from mail-pv0-f172.google.com ([74.125.83.172])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <dan.colascione@HIDDEN>) id 1QYOnV-00065P-2H
	for 8724 <at> debbugs.gnu.org; Sun, 19 Jun 2011 16:40:45 -0400
Received: by pvh18 with SMTP id 18so3104680pvh.3
	for <8724 <at> 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=
Received: by 10.68.30.71 with SMTP id q7mr1723724pbh.519.1308516039367;
	Sun, 19 Jun 2011 13:40:39 -0700 (PDT)
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)
Message-ID: <4DFE5EC4.3070103@HIDDEN>
Date: Sun, 19 Jun 2011 13:40:36 -0700
From: Daniel Colascione <dan.colascione@HIDDEN>
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
MIME-Version: 1.0
Newsgroups: gmane.emacs.bugs
References: <BLU159-w1BD508A3BC8FDB4EA3337CE750@HIDDEN>
In-Reply-To: <BLU159-w1BD508A3BC8FDB4EA3337CE750@HIDDEN>
X-Enigmail-Version: 1.1.1
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Spam-Score: -4.1 (----)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -4.1 (----)

-----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-----




Message sent to owner <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#8724: 23.2; js-mode imenu should be more thorough
Resent-From: Daniel Colascione <dan.colascione@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-To: owner <at> debbugs.gnu.org
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 19 Jun 2011 20:46:02 +0000
Resent-Message-ID: <handler.8724.B.130851631925405 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 8724
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 8724 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
X-Debbugs-Original-Cc: 8724 <at> debbugs.gnu.org
Received: via spool by submit <at> debbugs.gnu.org id=B.130851631925405
          (code B ref -1); Sun, 19 Jun 2011 20:46:02 +0000
Received: (at submit) by debbugs.gnu.org; 19 Jun 2011 20:45:19 +0000
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1QYOru-0006bB-AJ
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2011 16:45:18 -0400
Received: from eggs.gnu.org ([140.186.70.92])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrs-0006R0-9C
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2011 16:45:16 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrm-0005e5-9a
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2011 16:45:11 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
	RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL
	autolearn=unavailable version=3.3.1
Received: from lists.gnu.org ([140.186.70.17]:52158)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrm-0005e1-89
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2011 16:45:10 -0400
Received: from eggs.gnu.org ([140.186.70.92]:58308)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrk-0007Go-Va
	for bug-gnu-emacs@HIDDEN; Sun, 19 Jun 2011 16:45:10 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrj-0005ci-JR
	for bug-gnu-emacs@HIDDEN; Sun, 19 Jun 2011 16:45:08 -0400
Received: from lo.gmane.org ([80.91.229.12]:45739)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrj-0005cF-AN
	for bug-gnu-emacs@HIDDEN; Sun, 19 Jun 2011 16:45:07 -0400
Received: from list by lo.gmane.org with local (Exim 4.69)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1QYOrh-0003cz-E6
	for bug-gnu-emacs@HIDDEN; Sun, 19 Jun 2011 22:45:05 +0200
Received: from c-24-18-179-193.hsd1.wa.comcast.net ([24.18.179.193])
	by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
	id 1AlnuQ-0007hv-00
	for <bug-gnu-emacs@HIDDEN>; Sun, 19 Jun 2011 22:45:05 +0200
Received: from dan.colascione by c-24-18-179-193.hsd1.wa.comcast.net with
	local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00
	for <bug-gnu-emacs@HIDDEN>; Sun, 19 Jun 2011 22:45:05 +0200
X-Injected-Via-Gmane: http://gmane.org/
From: Daniel Colascione <dan.colascione@HIDDEN>
Date: Sun, 19 Jun 2011 13:40:36 -0700
Lines: 58
Message-ID: <4DFE5EC4.3070103@HIDDEN>
References: <BLU159-w1BD508A3BC8FDB4EA3337CE750@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Complaints-To: usenet@HIDDEN
X-Gmane-NNTP-Posting-Host: c-24-18-179-193.hsd1.wa.comcast.net
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
In-Reply-To: <BLU159-w1BD508A3BC8FDB4EA3337CE750@HIDDEN>
X-Enigmail-Version: 1.1.1
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3)
X-Received-From: 140.186.70.17
X-Spam-Score: -5.2 (-----)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -5.2 (-----)

-----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-----






Last modified: Fri, 31 Oct 2014 17:00:04 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.