unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Philip Kaludercic <philipk@posteo.net>
To: Augusto Stoffel <arstoffel@gmail.com>
Cc: Lars Ingebrigtsen <larsi@gnus.org>,
	 Andreas Schwab <schwab@linux-m68k.org>,
	 emacs-devel@gnu.org
Subject: Re: Deprecation of define-key?
Date: Tue, 02 Aug 2022 09:54:42 +0000	[thread overview]
Message-ID: <87v8rbc6n1.fsf@posteo.net> (raw)
In-Reply-To: <871qtzou8e.fsf@gmail.com> (Augusto Stoffel's message of "Tue, 02 Aug 2022 11:44:17 +0200")

Augusto Stoffel <arstoffel@gmail.com> writes:

> On Sat, 30 Jul 2022 at 13:51, Lars Ingebrigtsen <larsi@gnus.org> wrote:
>
>> Philip Kaludercic <philipk@posteo.net> writes:
>>
>>> That is obvious, the question is should package developers avoid using
>>> `define-key' if possible or not?
>>
>> As the doc string says -- `keymap-set' is the recommended function to
>> use.  However, `define-key' is not (and won't be) obsoleted, so it's up
>> to them to follow the recommendation (or not).
>
> I didn't catch any of the previous discussion about keymap.el, but I
> have a comment -- sorry if redundant.
>
> Wouldn't it make sense to let keymap-set take multiple key-definition
> pairs as arguments, like setq et al?  This would be very convenient
> e.g. in user configuration files, where currently one often finds long
> sequences of define-key calls.  

One thing I still don't understand about keymap (which is part of the
reason I initiated this thread), is who the "target audience" is, if
any?  Core development, ELPA packages in general, user configurations,
or someone else?

>                                 This looks much better to me:
>
> (keymap-set some-map
>   "a" 'command-a
>   "b" 'command-b
>   "c" 'command-c)

Not quite the same, but that is what `defvar-keymap' allows you to do.  E.g.

(defvar-keymap gnus-undo-mode-map
  "C-M-_" #'gnus-undo
  "C-_" #'gnus-undo
  "C-x u" #'gnus-undo
  ;; many people are used to type `C-/' on GUI frames and get `C-_'.
  "C-/" #'gnus-undo)

Just in this case binding a variable and defining a map is merged into
one, instead of modifying an existing map.




  reply	other threads:[~2022-08-02  9:54 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-29 15:33 Deprecation of define-key? Philip Kaludercic
2022-07-29 16:16 ` Andreas Schwab
2022-07-30 11:46   ` Philip Kaludercic
2022-07-30 11:51     ` Lars Ingebrigtsen
2022-07-31  6:48       ` Jean Louis
2022-07-31  7:14         ` Visuwesh
2022-08-02  9:44       ` Augusto Stoffel
2022-08-02  9:54         ` Philip Kaludercic [this message]
2022-08-02 10:01           ` Lars Ingebrigtsen
2022-08-02 10:06             ` Philip Kaludercic
2022-08-02 10:11               ` Lars Ingebrigtsen
2022-08-02 10:00         ` Lars Ingebrigtsen
2022-08-02 10:11           ` Philip Kaludercic
2022-08-02 10:46             ` Lars Ingebrigtsen
2022-08-02 10:14           ` Augusto Stoffel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v8rbc6n1.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=arstoffel@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    --cc=schwab@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).