From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: =?UTF-8?Q?Cl=c3=a9ment_Pit-Claudel?= Newsgroups: gmane.emacs.devel Subject: Ideas to improve the output of C-h m? Date: Fri, 1 May 2020 10:34:46 -0400 Message-ID: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="R1s0osFC0Mfj0H4EogGAwqDrVy8d8paFu" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="43111"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri May 01 16:54:47 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jUX3u-000B73-LV for ged-emacs-devel@m.gmane-mx.org; Fri, 01 May 2020 16:54:46 +0200 Original-Received: from localhost ([::1]:49946 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUX3t-0001MO-Ok for ged-emacs-devel@m.gmane-mx.org; Fri, 01 May 2020 10:54:45 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58484) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUX10-00055Q-1W for emacs-devel@gnu.org; Fri, 01 May 2020 10:52:31 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUWzG-0006qR-Hr for emacs-devel@gnu.org; Fri, 01 May 2020 10:51:45 -0400 Original-Received: from mail-am6eur05olkn2073.outbound.protection.outlook.com ([40.92.91.73]:9084 helo=EUR05-AM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUWzF-0006lP-8j for emacs-devel@gnu.org; Fri, 01 May 2020 10:49:58 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WYRmp4u8BZweL78+SLD7pXAlBL7D9lVgbxPUwud0r+W6u/WwR3CVH91m1qLyuX7QEnO9xcGYyYYHEhvDj6jnTmAeN7kTHbF0JCkpYXBiOznSvSgV0o/OkhJwavQnkdap75Z7pYqJdhUcBW7pycJ6KTtRkCz5D54gIfvj1wS58H7yEbYPc75QP3Mkuu2xNtVs7PpLDjHr+0HOvgofGcsqa6dS84q/tXxLlyY5nh5sq+0MgTIj5apfjZHOcP3kpI5kWwynMutd2apBgCcaSv+p3K4Pfk+fXAxp92KYBohflnhuT8DE0oNQn9d9yFdZsSTlNVs6KCe++f4dWHZdNLPMhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rjCVLkPAOl1HC8EsyZBBS7ZOgavsNFt+jg83Z4GuTUw=; b=Otu4DfdknvnpklFhjWFASxVzwVxPpMNxOMaxX0SVmYom+fWwGBtLcQCU9R4lQmxV6PrV72mOX21F2bz3RAOnhy+9EU9DiRfEROqbsjvfrcpFLRfHzFzc1//FPlklL52Ac3ZGKdCJ+54u229GJpqAEdzN+3fnV14348fwxTgk6y3GFy6Haw5DJADXvzyCLGAhF3OpykKM60L+zw4wd7Jicuy+7zA6dwCNa6UrmTODemu4UnB3Lsr7w2qKBWpt6edL5+5aiZAOmC6MGOBQVXukrLu78+MkpdG9cQx50I915qDs0fXDy01UzBXcIllUEju8ucGuOEwuBrT0xe9SraUbmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=live.com; dmarc=pass action=none header.from=live.com; dkim=pass header.d=live.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rjCVLkPAOl1HC8EsyZBBS7ZOgavsNFt+jg83Z4GuTUw=; b=eL8zDIN7R/YhRcvOnsXj7j0l0yAWH2Wa0QUtSGt8YT5aSVEDKP1R9a0N4aiSpm0LHzpBC4rDeCearDk7qRO9YFNQHObuFTIMAXRIfNOrcfiE1NbiiLUQuiVgPPqpyVa8rjsfHhI9m+r2vsC3Zr7rTi+go/3i+i+v/I6A2JF4Tf+3f5hJmPbvn818sdu7ojCkqhL6g0XxrAFWz760mnTq4V6KQqD3JZJupR1VbCRUyMbUuWnHEYFJAmbmfw2ctr6Ef86O22L5QF5KTggMqCM+0qqXzvqvUoz31yboFiRJl304PKZ6eUkqulpRAbrHSoH+65H9QNWRH7bu9e2Yuxdx5A== Original-Received: from VI1EUR05FT048.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::52) by VI1EUR05HT093.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.15; Fri, 1 May 2020 14:34:52 +0000 Original-Received: from DB7PR03MB4700.eurprd03.prod.outlook.com (2a01:111:e400:fc12::51) by VI1EUR05FT048.mail.protection.outlook.com (2a01:111:e400:fc12::444) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.24 via Frontend Transport; Fri, 1 May 2020 14:34:52 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:BA07F4E90168FC254CFDF5A6725DE49F2DAA3EA4F36A42AF07BAF32759D310D6; UpperCasedChecksum:7D99D4CACB8BF20275A0FB8D51946AD5C468854A8DD84EF481851E8E632378BB; SizeAsReceived:12006; Count:46 Original-Received: from DB7PR03MB4700.eurprd03.prod.outlook.com ([fe80::e1ff:1cf8:514:7366]) by DB7PR03MB4700.eurprd03.prod.outlook.com ([fe80::e1ff:1cf8:514:7366%5]) with mapi id 15.20.2958.027; Fri, 1 May 2020 14:34:51 +0000 Autocrypt: addr=clement.pitclaudel@live.com; prefer-encrypt=mutual; keydata= xsFNBFStGiEBEAC8eHa+DdcrVtDSwYoIgoUtMfRAan4bdLxZuNIASy6iFytCHNsKqfPkq8zD YV2+uMtbdcnjapE038nidEMItNhO04JdZ+PJ6jvJo1gW+XI4fM8uzkGZauwR+d3hEq6goFSp rIlSlaVf2g5q4OKxI754yqwz00++EZhZQMntzoKQVV9stJ5eQ+gxTT1ANr7wQKbjn/8PM/Cg hBZvYLhh+WsS0Ko5qZuWdsvUBLpprmCWkP4FpZ234/tWpdVID65nlHpu25+6ajIcxfCIK+dN 2br0wN1szTeQFG19cfr3jXEvwHmLQbQqCg4UH+2b7JpMGR2/KWjqRWfWVvZMPVeJdOsZHx53 k6HIbEhvFBHbmqCI6FAZQjkgzGGkrSD92+jeMYiCTxRKqq2hFZ6xqQ6pJdXD1TXcIYPEs7rA MwcNMj8g4e6vuI+2CjHyQQkyMPAEi8guNPnyfBb648f1lxj7JiJu/ehRghIP5u/kLOsHNCKG QgCT04sawBZYHqEVYni8oHlGJcdWGT5/UI4B+wn70eXvYSScZEaB+S2s/bD0cdlSpHY5Od3l tpRZTva+ydswlrz4fxbYF45s6rFpqVwBMfNv3gqhBFXbuiEEctcTSGqhHxxT4R+24Yn+ZSBa EfUbrKnVTUmV20k+57rghiVw2wpj8v7sn3QXt96HJ9ImY4JvuwARAQABzTNDbMOpbWVudCBQ aXQtLUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbEBsaXZlLmNvbT7CwXsEEwECACUCGyMG CwkIBwMC X-ClientProxiedBy: MN2PR15CA0029.namprd15.prod.outlook.com (2603:10b6:208:1b4::42) To DB7PR03MB4700.eurprd03.prod.outlook.com (2603:10a6:10:1c::25) X-Microsoft-Original-Message-ID: <0a58899a-9c3c-e02f-cc6d-6f0cb3e2212a@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from [IPv6:2601:184:4180:66e7:f4e8:31c1:7b74:7617] (2601:184:4180:66e7:f4e8:31c1:7b74:7617) by MN2PR15CA0029.namprd15.prod.outlook.com (2603:10b6:208:1b4::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20 via Frontend Transport; Fri, 1 May 2020 14:34:50 +0000 X-Microsoft-Original-Message-ID: <0a58899a-9c3c-e02f-cc6d-6f0cb3e2212a@live.com> X-TMN: [ZYO6USBATTvoBEms0vRyrYB3yyACvw5/6lnk2fn+M/8pmYPbfkrEn8z5LXfZ93b5] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 43365520-43af-4295-0d18-08d7eddcce80 X-MS-TrafficTypeDiagnostic: VI1EUR05HT093: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pLWX2hGGuQDQoeq/BdR4Wy9XapB4HBqRrFtRzLpGg+aPh5va8JmYtHy3eIVGzj0NU147szYMtND8DTQtCTKSBKX7C+hHflcvh3Bix07ctYW18moHxI5ZC20+QJGz1mFJd0NzRikyichjGaFTxbl69+zR88ciOvzokW+ABo5eiQrRvi02Bl0FUcD+ENEkGQLeWS98VXOVy1d8zxZRexfmaA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:0; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4700.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:; DIR:OUT; SFP:1901; X-MS-Exchange-AntiSpam-MessageData: b8S30H8tDCINio2aDTk1Q0HLq7qwsUgC28Az3/5UVWdcIBQhPbeB8HIWfYaI3S4jrnh71WcoPN5byH5y3nMQ+yNyLELfevF4XV4ve/kjYw12YmS7OgZnNkJc0EyFEN8zuNADtvK7bq5woh3tQtpS5It0WCdNm81ug8G0qAXuH+U5KZ80XVRCIgF85JBF2KWHFBqw0NDmfZ3u+oLfIQcAXA== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43365520-43af-4295-0d18-08d7eddcce80 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2020 14:34:51.5847 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1EUR05HT093 Received-SPF: pass client-ip=40.92.91.73; envelope-from=clement.pitclaudel@live.com; helo=EUR05-AM6-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/01 10:49:54 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Received-From: 40.92.91.73 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:248305 Archived-At: --R1s0osFC0Mfj0H4EogGAwqDrVy8d8paFu Content-Type: multipart/mixed; boundary="2nBGPDCGxasWymFfxWBidsVy8aieLPHaG"; protected-headers="v1" From: =?UTF-8?Q?Cl=c3=a9ment_Pit-Claudel?= To: Emacs developers Message-ID: <0a58899a-9c3c-e02f-cc6d-6f0cb3e2212a@live.com> Subject: Ideas to improve the output of C-h m? --2nBGPDCGxasWymFfxWBidsVy8aieLPHaG Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: quoted-printable Hi all, A while ago I tried to improve the discoverability of the keybindings of = one of my packages by writing an enhanced version of the keybindings part= of C-h m. The idea was to list keybindings along with the first line of= their docstrings, instead of just listing the name of the function. I have pasted at the botom of this email the output of the current C-h m = and the output of the code I wrote a while ago. Here's how it looks for = a single entry, to see the difference (note that unlike C-h m, it current= ly groups keybindings that map to the same command): Current output: h describe-mode =E2=80=A6 ? describe-mode In biblio.el: =E2=80=98h=E2=80=99, =E2=80=98?=E2=80=99 (describe-mode) Display documentation of current major mode and minor modes. Is there interest in integrating something like this to the usual C-h m? = I'm not thinking of replacing the existing code with the one I wrote; rat= her, I'm wondering if some of its ideas could be used to improve C-h m, b= y adjusting the layout slightly and inserting (maybe only when a user-cus= tomizable option is set?) the first line of each docstring (possibly with= a button to expand the full docstring?). Or maybe there's a better way to display this information? (one thing I d= id in that package was to use the order of bindings as defined in the key= map, while C-h m sorts the keybindings alphabetically; the idea was to gi= ve control to package developers over the order of the keybindings) Cheers, Cl=C3=A9ment. key binding --- ------- C-c Prefix Command ESC Prefix Command C-c C-a outline-show-all C-c C-b outline-backward-same-level C-c C-c outline-hide-entry C-c C-d outline-hide-subtree C-c C-e outline-show-entry C-c C-f outline-forward-same-level C-c TAB outline-show-children C-c C-k outline-show-branches C-c C-l outline-hide-leaves C-c RET outline-insert-heading C-c C-n outline-next-visible-heading C-c C-o outline-hide-other C-c C-p outline-previous-visible-heading C-c C-q outline-hide-sublevels C-c C-s outline-show-subtree C-c C-t outline-hide-body C-c C-u outline-up-heading C-c C-v outline-move-subtree-down C-c C-^ outline-move-subtree-up C-c @ outline-mark-subtree C-c C-< outline-promote C-c C-> outline-demote After: Help with =E2=80=98outline-mode=E2=80=99 =E2=80=98C-c @=E2=80=99 (outline-mark-subtree) Mark the current subtree in an outlined document. =E2=80=98C-c C-n=E2=80=99 (outline-next-visible-heading) Move to the next visible heading line. =E2=80=98C-c C-p=E2=80=99 (outline-previous-visible-heading) Move to the previous heading line. =E2=80=98C-c TAB=E2=80=99 (outline-show-children) Show all direct subheadings of this heading. =E2=80=98C-c C-s=E2=80=99 (outline-show-subtree) Show everything after this heading at deeper levels. =E2=80=98C-c C-d=E2=80=99 (outline-hide-subtree) Hide everything after this heading at deeper levels. =E2=80=98C-c C-u=E2=80=99 (outline-up-heading) Move to the visible heading line of which the present line is a sub= heading. =E2=80=98C-c C-f=E2=80=99 (outline-forward-same-level) Move forward to the ARG'th subheading at same level as this one. =E2=80=98C-c C-b=E2=80=99 (outline-backward-same-level) Move backward to the ARG'th subheading at same level as this one. =E2=80=98C-c C-t=E2=80=99 (outline-hide-body) Hide all body lines in buffer, leaving all headings visible. =E2=80=98C-c C-a=E2=80=99 (outline-show-all) Show all of the text in the buffer. =E2=80=98C-c C-c=E2=80=99 (outline-hide-entry) Hide the body directly following this heading. =E2=80=98C-c C-e=E2=80=99 (outline-show-entry) Show the body directly following this heading. =E2=80=98C-c C-l=E2=80=99 (outline-hide-leaves) Hide the body after this heading and at deeper levels. =E2=80=98C-c C-k=E2=80=99 (outline-show-branches) Show all subheadings of this heading, but not their bodies. =E2=80=98C-c C-q=E2=80=99 (outline-hide-sublevels) Hide everything but the top LEVELS levels of headers, in whole buff= er. =E2=80=98C-c C-o=E2=80=99 (outline-hide-other) Hide everything except current body and parent and top-level headin= gs. =E2=80=98C-c C-^=E2=80=99 (outline-move-subtree-up) Move the current subtree up past ARG headlines of the same level. =E2=80=98C-c C-v=E2=80=99 (outline-move-subtree-down) Move the current subtree down past ARG headlines of the same level.= =E2=80=98C-c C-<=E2=80=99 (outline-promote) Promote headings higher up the tree. =E2=80=98C-c C->=E2=80=99 (outline-demote) Demote headings lower down the tree. =E2=80=98C-c RET=E2=80=99 (outline-insert-heading) Insert a new heading at same depth at point. (in a real Emacs window, the function names and the keybindings are highl= ighted, and on graphical terminals there's a thin line between each entry= ). --2nBGPDCGxasWymFfxWBidsVy8aieLPHaG-- --R1s0osFC0Mfj0H4EogGAwqDrVy8d8paFu Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEElGa8adIcPra4Jxxu+qD5xOb3TCMFAl6sM4YACgkQ+qD5xOb3 TCO9RhAAtPbq6Tp2efP/2Ay79LzOceSK8Qd2a9DxZdHbmUE6xCVca11so7za9Onu 7TxBXMEEKVm5aZJ4CJZC3QmC7qRIplhLasNH4ULJDoy+09ocSkTaVX5DTsWSzyqO VC5mgTxDtIU+IUBfpPcltWDjSij8WVL1h+VlAiEtAqROYajkHQIwrcx/n3fA+ebw 6HkGtgaG7VD+ShsZnBUh54OXUBoRE5GiEODp215XFnCTedkYNqtDl/AhrP+VFyHU pXGXIba6PhGTaUXE06Lm5QDeB/C98vX+wABrgRrLVqKRy2YgnFb84Td/c/9bFys8 EbWBwk01K6ccwkPLIPTArOvC9+vVK8PR9Gh9RW2ZuMguJkm4KCapOigy1aR3aZ2n Cow2f3mctfpTdfoXS18B/s8oXgdu5OVRt/uyymFZdfrQk//d9Ka0/z/lB++UA6Zd sokyz/FbdmK/4e3ewVwNGh1Ge84eDrrN/OyiFkCIMJcaA2OiI8E+RR1klopRZDab jHp5KO8urCrkVnmU8YwQXZgHlPvuBJG3B9LvK+YiD6NEboJMLnqeXIk7g5YwprRV N3ZahrPJcdf4DuW0ZyF5o6hEAlxLiHZ+V8Cw3sz45IodfBZAK0f4ULUp2hFEY6Ju duFeH/3Qy8RB47TqkhdtORHANepO7WlBZJRXMOPsrN3lxyoJhLU= =5rhk -----END PGP SIGNATURE----- --R1s0osFC0Mfj0H4EogGAwqDrVy8d8paFu--