Received: (at 8725) by debbugs.gnu.org; 14 Apr 2014 02:03:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 22:03:50 2014 Received: from localhost ([127.0.0.1]:47624 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1WZWFS-0006SU-6A for submit <at> debbugs.gnu.org; Sun, 13 Apr 2014 22:03:50 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:60045) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <monnier@HIDDEN>) id 1WZWFP-0006SL-3a for 8725 <at> debbugs.gnu.org; Sun, 13 Apr 2014 22:03:47 -0400 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id s3E23jBU018592; Sun, 13 Apr 2014 22:03:45 -0400 Received: by pastel.home (Postfix, from userid 20848) id 2CC5D601BB; Sun, 13 Apr 2014 22:03:45 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Hui Liu <liuhui.zy@HIDDEN> Subject: Re: bug#8725: imenu--split-menu should not deliver surprises Message-ID: <jwvppkk651r.fsf-monnier+emacsbugs@HIDDEN> References: <BLU159-w47B119579809569FDD30F9CE750@HIDDEN> <CAB=Rzgkoibkhc3L-Vo37qdg6H-GA7Lvf+L+B08r7pviH7X2Vaw@HIDDEN> <jwvbnw68gz1.fsf-monnier+emacsbugs@HIDDEN> <CAB=Rzgn1FD40ZSrLWm1zTXt=jcPoed-qLYCB4k1K4=NrMourNw@HIDDEN> Date: Sun, 13 Apr 2014 22:03:45 -0400 In-Reply-To: <CAB=Rzgn1FD40ZSrLWm1zTXt=jcPoed-qLYCB4k1K4=NrMourNw@HIDDEN> (Hui Liu's message of "Sun, 13 Apr 2014 11:44:36 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0.2 X-NAI-Spam-Rules: 2 Rules triggered GEN_SPAM_FEATRE=0.2, RV4911=0 X-NAI-Spam-Version: 2.3.0.9378 : core <4911> : inlines <726> : streams <1158423> : uri <1728788> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 8725 Cc: 8725 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 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/cgi-bin/mailman/private/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> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) > At least Imenu could provide an option about whether to do so without > regard to the original order of items. Then let the major mode decide. We're in violent agreement. Stefan
bug-gnu-emacs@HIDDEN
:bug#8725
; Package emacs
.
Full text available.Received: (at 8725) by debbugs.gnu.org; 13 Apr 2014 03:44:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 12 23:44:45 2014 Received: from localhost ([127.0.0.1]:46595 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1WZBLY-0006uQ-G5 for submit <at> debbugs.gnu.org; Sat, 12 Apr 2014 23:44:44 -0400 Received: from mail-qa0-f68.google.com ([209.85.216.68]:50038) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <liuhui.zy@HIDDEN>) id 1WZBLX-0006u8-2O for 8725 <at> debbugs.gnu.org; Sat, 12 Apr 2014 23:44:43 -0400 Received: by mail-qa0-f68.google.com with SMTP id cm18so2158576qab.11 for <8725 <at> debbugs.gnu.org>; Sat, 12 Apr 2014 20:44:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=cVUYle996m2hYMKjmOz/LBzEr71AcpHsbzQsL5DdAgQ=; b=Tgt5kA0RZI96L6UW+DOysiIPrdF/CLLPIljlYT8sqv5Bav1NVJT2V8fF4RZGFBrEz3 3JkybC4e3JYzLcBj0X/6E48qGsC9KFdS15/ktah2zCU7dmN2qKypx5Sh6Ny9f8FuwuDe a73AvzIz8f0atu3EOvBa4V3tmls8tC8qDVhKVWFO4zyTo0cfOYKbOelF6Jw1f7af8Jer feaCeOhTKvq5+aDaVP28IDuJj/tXHNU5lCrmycZSk68H38Fs2pqwYXefqTNyiwVOv0dA 9RigSZQ8uMuDKhEWZWpqXsNOgZkPsvAtnh9uT/VJ/XpfcyZAjYszGrq6PKH7n0wtKzqJ QamQ== MIME-Version: 1.0 X-Received: by 10.224.30.131 with SMTP id u3mr10280178qac.50.1397360677018; Sat, 12 Apr 2014 20:44:37 -0700 (PDT) Received: by 10.140.34.80 with HTTP; Sat, 12 Apr 2014 20:44:36 -0700 (PDT) In-Reply-To: <jwvbnw68gz1.fsf-monnier+emacsbugs@HIDDEN> References: <BLU159-w47B119579809569FDD30F9CE750@HIDDEN> <CAB=Rzgkoibkhc3L-Vo37qdg6H-GA7Lvf+L+B08r7pviH7X2Vaw@HIDDEN> <jwvbnw68gz1.fsf-monnier+emacsbugs@HIDDEN> Date: Sun, 13 Apr 2014 11:44:36 +0800 Message-ID: <CAB=Rzgn1FD40ZSrLWm1zTXt=jcPoed-qLYCB4k1K4=NrMourNw@HIDDEN> Subject: Re: bug#8725: imenu--split-menu should not deliver surprises From: Hui Liu <liuhui.zy@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 8725 Cc: 8725 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 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/cgi-bin/mailman/private/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> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) I don't think it is better because it meaninglessly increases the depth of menus. In fact, this problem mainly occurs in writing related modes, and it is caused by the unreasonable sort in imenu--split-menu instead of menus provided by these modes. Is there any reason to put items with the submenu on top indiscriminately? At least Imenu could provide an option about whether to do so without regard to the original order of items. Then let the major mode decide. 2014-04-13 4:03 GMT+08:00 Stefan Monnier <monnier@HIDDEN>: >> and the reason is Imenu put items with submenus at the top. Such >> behaviour may be reasonable for programming modes, but is clearly >> unnecessary for text modes. > > Actually it doesn't have much to do with text-modes vs programming-modes > but with the way the menu is built. E.g. the menu could look like > > Index > |- ... > Section 1 > Section 2 > Section 3 > > if org-mode provided an "Index" submenu, in which case it would make a lot > of sense to put it on top. So a better option is to let the major > mode decide. > > > Stefan
bug-gnu-emacs@HIDDEN
:bug#8725
; Package emacs
.
Full text available.Received: (at 8725) by debbugs.gnu.org; 12 Apr 2014 20:03:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 12 16:03:55 2014 Received: from localhost ([127.0.0.1]:46490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1WZ49a-0002XL-Mo for submit <at> debbugs.gnu.org; Sat, 12 Apr 2014 16:03:54 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:35544) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <monnier@HIDDEN>) id 1WZ49X-0002X8-Ua for 8725 <at> debbugs.gnu.org; Sat, 12 Apr 2014 16:03:52 -0400 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id s3CK3oGc016177; Sat, 12 Apr 2014 16:03:50 -0400 Received: by pastel.home (Postfix, from userid 20848) id 254A46015D; Sat, 12 Apr 2014 16:03:50 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Hui Liu <liuhui.zy@HIDDEN> Subject: Re: bug#8725: imenu--split-menu should not deliver surprises Message-ID: <jwvbnw68gz1.fsf-monnier+emacsbugs@HIDDEN> References: <BLU159-w47B119579809569FDD30F9CE750@HIDDEN> <CAB=Rzgkoibkhc3L-Vo37qdg6H-GA7Lvf+L+B08r7pviH7X2Vaw@HIDDEN> Date: Sat, 12 Apr 2014 16:03:50 -0400 In-Reply-To: <CAB=Rzgkoibkhc3L-Vo37qdg6H-GA7Lvf+L+B08r7pviH7X2Vaw@HIDDEN> (Hui Liu's message of "Sat, 12 Apr 2014 21:52:30 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4910=0 X-NAI-Spam-Version: 2.3.0.9378 : core <4910> : inlines <726> : streams <1157686> : uri <1727594> X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 8725 Cc: 8725 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 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/cgi-bin/mailman/private/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> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > and the reason is Imenu put items with submenus at the top. Such > behaviour may be reasonable for programming modes, but is clearly > unnecessary for text modes. Actually it doesn't have much to do with text-modes vs programming-modes but with the way the menu is built. E.g. the menu could look like Index |- ... Section 1 Section 2 Section 3 if org-mode provided an "Index" submenu, in which case it would make a lot of sense to put it on top. So a better option is to let the major mode decide. Stefan
bug-gnu-emacs@HIDDEN
:bug#8725
; Package emacs
.
Full text available.Received: (at 8725) by debbugs.gnu.org; 12 Apr 2014 18:31:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 12 14:31:57 2014 Received: from localhost ([127.0.0.1]:46421 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1WZ2ia-0005kc-Iq for submit <at> debbugs.gnu.org; Sat, 12 Apr 2014 14:31:57 -0400 Received: from mail-qg0-f68.google.com ([209.85.192.68]:43033) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <liuhui.zy@HIDDEN>) id 1WYyMH-00065a-7R for 8725 <at> debbugs.gnu.org; Sat, 12 Apr 2014 09:52:38 -0400 Received: by mail-qg0-f68.google.com with SMTP id q108so2129741qgd.7 for <8725 <at> debbugs.gnu.org>; Sat, 12 Apr 2014 06:52:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=/3PqopgjLGBxwo8reYi6EZ+muYd38Ppz8oyGYeVVqXA=; b=GLox1cMEIg+7JBvs0faVIXyHtM28O9uJGH/k0Iubs/HBim7VEbXCuJoZ+RuaEaiSs7 fl9eVr2T+rjLGm+LlvtGTHZ1SKvv+PNJzwzISrOgMCzgBqiPR2HyWDcXXC8f/fbkVbjv Gt8dHKQkA1RtEl9kWdzUseY7m52AbcAm4rerH4Zc3kCYdCQ5CQz98trsT2G1Shdg3mSf NFRQCbcMqAkGxsC156Oc3NQFZ56WL6lBYxNTKMeW1KoZv2eiGdS4qeFB4bI1vEGJhScO ol8RXD6mZRI2jhHYn7mpL0siNggF47Wh+araCMALjAYuVneo2JyRdn0riW0nGkBQ6qmD GaoQ== MIME-Version: 1.0 X-Received: by 10.224.4.5 with SMTP id 5mr6330036qap.85.1397310750820; Sat, 12 Apr 2014 06:52:30 -0700 (PDT) Received: by 10.140.34.80 with HTTP; Sat, 12 Apr 2014 06:52:30 -0700 (PDT) Date: Sat, 12 Apr 2014 21:52:30 +0800 Message-ID: <CAB=Rzgkoibkhc3L-Vo37qdg6H-GA7Lvf+L+B08r7pviH7X2Vaw@HIDDEN> Subject: bug#8725: imenu--split-menu should not deliver surprises From: Hui Liu <liuhui.zy@HIDDEN> To: 8725 <at> debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 8725 X-Mailman-Approved-At: Sat, 12 Apr 2014 14:31:54 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 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/cgi-bin/mailman/private/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> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) Hi. This bug still exists in 24.4.50. An example: emacs -Q M-x org-mode ;;; type the following text * section 1 * section 2 ** 2.1 ** 2.2 * section 3 * section 4 ** 4.1 ** 4.2 ;;; end M-x imenu-add-menubar-index Then Imenu produces a confusing menu like this: section 2 |=E2=80=942.1 |=E2=80=942.2 section 4 |=E2=80=944.1 |=E2=80=944.2 section 1 section 3 and the reason is Imenu put items with submenus at the top. Such behaviour may be reasonable for programming modes, but is clearly unnecessary for text modes. How about making a discrimination in imenu--split-menu? --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -537,10 +537,11 @@ The returned alist DOES NOT share structure with MENULIST." (if (memq imenu--rescan-item menulist) (setq keep-at-top (list imenu--rescan-item) menulist (delq imenu--rescan-item menulist))) - (dolist (item menulist) + (unless (derived-mode-p 'text-mode) + (dolist (item menulist) (when (imenu--subalist-p item) (push item keep-at-top) - (setq menulist (delq item menulist)))) + (setq menulist (delq item menulist))))) (if imenu-sort-function (setq menulist (sort menulist imenu-sort-function))) (if (> (length menulist) imenu-max-items)
bug-gnu-emacs@HIDDEN
:bug#8725
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 24 May 2011 13:16:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 24 09:16:49 2011 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 1QOrTc-00030W-4T for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:16:49 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <dpchiesa@HIDDEN>) id 1QOrTZ-00030G-UL for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:16:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <dpchiesa@HIDDEN>) id 1QOrTQ-0004QB-FO for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:16: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]:40695) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <dpchiesa@HIDDEN>) id 1QOrTQ-0004Q6-DZ for submit <at> debbugs.gnu.org; Tue, 24 May 2011 09:16:36 -0400 Received: from eggs.gnu.org ([140.186.70.92]:47750) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <dpchiesa@HIDDEN>) id 1QOrTO-0006q4-Nu for bug-gnu-emacs@HIDDEN; Tue, 24 May 2011 09:16:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <dpchiesa@HIDDEN>) id 1QOrTM-0004PT-So for bug-gnu-emacs@HIDDEN; Tue, 24 May 2011 09:16:34 -0400 Received: from blu0-omc1-s27.blu0.hotmail.com ([65.55.116.38]:20342) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <dpchiesa@HIDDEN>) id 1QOrTM-0004PK-Mk for bug-gnu-emacs@HIDDEN; Tue, 24 May 2011 09:16:32 -0400 Received: from BLU159-W47 ([65.55.116.9]) by blu0-omc1-s27.blu0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 24 May 2011 06:16:32 -0700 Message-ID: <BLU159-w47B119579809569FDD30F9CE750@HIDDEN> Content-Type: multipart/alternative; boundary="_b592907e-47b1-485e-b5c4-99f01913932d_" X-Originating-IP: [71.60.182.236] From: dino chiesa <dpchiesa@HIDDEN> To: <bug-gnu-emacs@HIDDEN> Subject: 23.2; imenu--split-menu should not deliver surprises Date: Tue, 24 May 2011 06:16:32 -0700 Importance: Normal MIME-Version: 1.0 X-OriginalArrivalTime: 24 May 2011 13:16:32.0454 (UTC) FILETIME=[CCCCBE60:01CC1A14] 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-Debbugs-Envelope-To: submit 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 (------) --_b592907e-47b1-485e-b5c4-99f01913932d_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable imenu--split-menu sorts the menu structure=2C placing breakout menus at the top. This seems arbitrary=2C surprising=2C and unnecessary. =20 =20 A reasonable sorting behavior would be to sort in the order in which the menu items were found - that is to say=2C leave the order the way it was on entry to the defun. Another reasonable sorting behavior would be to sort menu items lexicographically. This defun does neither of those things but rather applies the arbitrary decision to put items with submenus at the top. Why? =20 This is not consistent with good UI design. It makes for a confusing menu=2C in which the order of items doesn't correspond to *anything* useful= . =20 Also=2C this behavior is not avoidable. Though imenu allows specification of a sort function for menbu items=2C the arbitrary sorting described above happens whether or not a custom sort function is provided. The only way around this is to advise or redefine imenu--split-menu. =20 To fix this=2C in imenu.el =2C redefine imenu--split-menu to remove the off= ending arbitrariness:=20 =20 (defun imenu--split-menu (menulist title) (let ((menulist (copy-sequence menulist)) keep-at-top tail) (if (memq imenu--rescan-item menulist) (setq keep-at-top (list imenu--rescan-item) menulist (delq imenu--rescan-item menulist))) =3B=3B DPC - ban menu fascism!=20 =3B=3B (setq tail menulist) =3B=3B (dolist (item tail) =3B=3B (when (imenu--subalist-p item) =3B=3B (push item keep-at-top) =3B=3B (setq menulist (delq item menulist)))) (if imenu-sort-function (setq menulist (sort menulist imenu-sort-function))) (if (> (length menulist) imenu-max-items) (setq menulist (mapcar (lambda (menu) (cons (format "From: %s" (caar menu)) menu)) (imenu--split menulist imenu-max-items)))) (cons title (nconc (nreverse keep-at-top) menulist)))) =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 input: Recent messages: 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: (browse-url mailalias mailclient sendmail gnus-msg gnus-art mm-uu mml2015 pgg pgg-parse pgg-def epg-config mm-view smime dig gnus-sum nnoo gnus-group gnus-undo nnmail mail-source format-spec gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems 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) = --_b592907e-47b1-485e-b5c4-99f01913932d_ 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'> imenu--split-menu sorts the menu structure=2C placing breakout menus at<BR>= the top. =3B This seems arbitrary=2C surprising=2C and unnecessary.&nbs= p=3B <BR>  =3B<BR> A reasonable sorting behavior would be to sort in the order in which the<BR= >menu items were found - that is to say=2C leave the order the way it was<B= R>on entry to the defun. =3B Another reasonable sorting behavior would = be to<BR>sort menu items lexicographically. =3B This defun does neither= of those<BR>things but rather applies the arbitrary decision to put items = with<BR>submenus at the top. Why?<BR>  =3B<BR> This is not consistent with good UI design. It makes for a confusing<BR>men= u=2C in which the order of items doesn't correspond to *anything* useful.<B= R>  =3B<BR> Also=2C this behavior is not avoidable. Though imenu allows specification<B= R>of a sort function for menbu items=2C the arbitrary sorting described<BR>= above happens whether or not a custom sort function is provided. The<BR>onl= y way around this is to advise or redefine imenu--split-menu.<BR>  =3B<BR> To fix this=2C in imenu.el =2C redefine imenu--split-menu to remove the off= ending<BR>arbitrariness: <BR>  =3B<BR>  =3B =3B =3B (defun imenu--split-menu (menulist title)<BR> = =3B =3B =3B =3B =3B (let ((menulist (copy-sequence menulist= ))<BR> =3B =3B =3B =3B =3B =3B =3B =3B = =3B =3B =3B keep-at-top tail)<BR> =3B =3B =3B =3B&n= bsp=3B =3B =3B (if (memq imenu--rescan-item menulist)<BR> =3B&n= bsp=3B =3B =3B =3B =3B =3B =3B =3B =3B = =3B (setq keep-at-top (list imenu--rescan-item)<BR> =3B =3B =3B=  =3B =3B =3B =3B =3B =3B =3B =3B =3B&nb= sp=3B =3B =3B =3B =3B menulist (delq imenu--rescan-item men= ulist)))<BR> =3B =3B =3B =3B =3B =3B =3B =3B=3B= DPC - ban menu fascism! <BR> =3B =3B =3B =3B =3B = =3B =3B =3B=3B (setq tail menulist)<BR> =3B =3B =3B =3B=  =3B =3B =3B =3B=3B (dolist (item tail)<BR> =3B =3B&nbs= p=3B =3B =3B =3B =3B =3B=3B =3B =3B (when (imenu--s= ubalist-p item)<BR> =3B =3B =3B =3B =3B =3B =3B= =3B=3B =3B =3B =3B =3B (push item keep-at-top)<BR> =3B=  =3B =3B =3B =3B =3B =3B =3B=3B =3B =3B&nbs= p=3B =3B (setq menulist (delq item menulist))))<BR> =3B =3B&nbs= p=3B =3B =3B =3B =3B (if imenu-sort-function<BR> =3B&nb= sp=3B =3B =3B =3B =3B =3B =3B =3B =3B = =3B (setq menulist (sort menulist imenu-sort-function)))<BR> =3B = =3B =3B =3B =3B =3B =3B (if (>=3B (length menulist) i= menu-max-items)<BR> =3B =3B =3B =3B =3B =3B =3B=  =3B =3B =3B =3B (setq menulist<BR> =3B =3B =3B=  =3B =3B =3B =3B =3B =3B =3B =3B =3B&nb= sp=3B =3B =3B =3B =3B (mapcar<BR> =3B =3B =3B&n= bsp=3B =3B =3B =3B =3B =3B =3B =3B =3B = =3B =3B =3B =3B =3B =3B (lambda (menu)<BR> =3B = =3B =3B =3B =3B =3B =3B =3B =3B =3B =3B=  =3B =3B =3B =3B =3B =3B =3B =3B =3B (c= ons (format "From: %s" (caar menu)) menu))<BR> =3B =3B =3B = =3B =3B =3B =3B =3B =3B =3B =3B =3B =3B=  =3B =3B =3B =3B =3B (imenu--split menulist imenu-max-i= tems))))<BR> =3B =3B =3B =3B =3B =3B =3B (cons = title<BR> =3B =3B =3B =3B =3B =3B =3B =3B&n= bsp=3B =3B =3B =3B =3B (nconc (nreverse keep-at-top) menuli= st))))<BR>  =3B<BR>  =3B<BR> In GNU Emacs 23.2.1 (i386-mingw-nt6.1.7601)<BR> =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> =3B value of $LC_ALL: nil<BR> =3B value of = $LC_COLLATE: nil<BR> =3B value of $LC_CTYPE: nil<BR> =3B value of $= LC_MESSAGES: nil<BR> =3B value of $LC_MONETARY: nil<BR> =3B value o= f $LC_NUMERIC: nil<BR> =3B value of $LC_TIME: nil<BR> =3B value of = $LANG: ENU<BR> =3B value of $XMODIFIERS: nil<BR> =3B locale-coding-= system: cp1252<BR> =3B default enable-multibyte-characters: t<BR> Major mode: Emacs-Lisp<BR> Minor modes in effect:<BR> =3B auto-revert-mode: t<BR> =3B yas/mino= r-mode: t<BR> =3B global-hl-line-mode: t<BR> =3B hl-line-mode: t<BR= > =3B global-auto-complete-mode: t<BR> =3B auto-complete-mode: t<BR= > =3B tooltip-mode: t<BR> =3B mouse-wheel-mode: t<BR> =3B menu-= bar-mode: t<BR> =3B file-name-shadow-mode: t<BR> =3B global-font-lo= ck-mode: t<BR> =3B font-lock-mode: t<BR> =3B blink-cursor-mode: t<B= R> =3B auto-encryption-mode: t<BR> =3B auto-compression-mode: t<BR>=  =3B line-number-mode: t<BR> =3B transient-mark-mode: t<BR> Recent input:<BR>Recent messages:<BR>Load-path shadows:<BR>/users/dino/elis= p/linum hides c:/emacs/lisp/linum<BR>/users/dino/elisp/css-mode hides c:/em= acs/lisp/textmodes/css-mode<BR> Features:<BR>(browse-url mailalias mailclient sendmail gnus-msg gnus-art mm= -uu<BR>mml2015 pgg pgg-parse pgg-def epg-config mm-view smime dig gnus-sum = nnoo<BR>gnus-group gnus-undo nnmail mail-source format-spec gnus-start gnus= -spec<BR>gnus-int gnus-range gnus-win gnus gnus-ems shadow sort mail-extr m= essage<BR>ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies<B= R>mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums<BR>mai= labbrev nnheader gnus-util netrc time-date mm-util mail-prsvr<BR>gmm-utils = wid-edit mailheader canlock sha1 hex-util hashcash mail-utils<BR>emacsbug h= elp-mode view js find-func dired-aux<BR>flymake-for-jslint-for-wsh flymake-= cursor flymake autopair espresso<BR>bytecomp byte-compile ido json thingatp= t etags imenu newcomment cc-mode<BR>cc-fonts cc-menus cc-cmds multi-isearch= grep compile comint ring<BR>time-stamp sgml-mode autorevert server cperl-m= ode paren mic-paren<BR>hideshow easymenu cc-styles cc-align cc-engine cc-va= rs cc-defs dired<BR>regexp-opt defaultcontent yasnippet-bundle dropdown-lis= t yasnippet<BR>easy-mmode cl cl-19 tfs skeleton httpget hl-line advice help= -fns<BR>advice-preload auto-complete-config auto-complete edmacro kmacro po= pup<BR>tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-tabl= e<BR>ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode<B= R>register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse<B= R>jit-lock font-lock syntax facemenu font-core frame cham georgian<BR>utf-8= -lang misc-lang vietnamese tibetan thai tai-viet lao korean<BR>japanese heb= rew greek romanian slovak czech european ethiopic indian<BR>cyrillic chines= e case-table epa-hook jka-cmpr-hook help simple abbrev<BR>loaddefs button m= inibuffer faces cus-face files text-properties overlay<BR>md5 base64 format= env code-pages mule custom widget<BR>hashtable-print-readable backquote ma= ke-network-process multi-tty emacs)<BR><BR> </body> </html>= --_b592907e-47b1-485e-b5c4-99f01913932d_--
dino chiesa <dpchiesa@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.owner <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
:bug#8725
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.