From: Drew Adams <drew.adams@oracle.com>
To: Michael Albinus <michael.albinus@gmx.de>, Eli Zaretskii <eliz@gnu.org>
Cc: fgunbin@fastmail.fm, emacs-devel@gnu.org
Subject: RE: Introducing thread-safe Tramp
Date: Sat, 4 Aug 2018 08:42:49 -0700 (PDT) [thread overview]
Message-ID: <7c28f9d8-e2bb-4778-ab92-92707f12718f@default> (raw)
In-Reply-To: <877el6uwio.fsf@gmx.de>
Hm; interesting. Not sure I've seen this kind of thing before.
I don't really think we should call `C-x &' here a "prefix argument", in any case. For one thing, that muddies the waters for each other time we talk about "prefix argument".
Not sure how we should talk about this. It's kind of like a prefix key, but its binding is not a keymap but a command that reads a key sequence and invokes that key's command with particular variable binding in effect.
A command that dispatches to other commands, perhaps binding controlling variables is an old idea. But in this case you've made use of reading a second key sequence, with its own prefix arg, and involved that with the dispatching logic.
If we're going to do this then it really invites generalization, or at least copycat uses with other such kinda-prefix-keys. The handling of a subsequent prefix arg (for the followup command), in particular, seems something generally useful.
And then there's the possibility of, say, using a prefix arg with `C-x &' itself - to do whatever (temporarily turn on a mode, enabling a given keymap for control of the followup key reading,...). Lots of crazy possibilities.
What's the real reason for doing this, as the answer to the question of how to provide keys for async file commands?
We will now have the variable, which users can set to get or not get async behavior for file commands by default. I questioned whether we should "spend" a prefix argument on flipping the variable value during the use of a particular command. And you pointed out that some commands that we want to be able to give asyncness already use a prefix arg for other things. So using a normal prefix arg was apparently dropped. (Thank you for that.)
But is this the best way to offer users commands/keys that provide both sync and async file commands?
I suggested just duplicating the existing commands, which lets users themselves define any number of commands that combine pairs of sync/async commands, e.g., letting a prefix arg decide the behavior (one way or the other). E.g., a user can define a `my-find-file' command that uses a prefix arg to do sync/async, and s?he can remap `find-file' to that.
If necessary, Emacs could provide such sync/async pair commands for some or all of the file commands, so users don't need to define them (not that that's hard to do). But should such new commands usurp the keys of the standard commands now, or should we just (for now, at least) let users remap as desired?
Not sure what to think about the `C-x &' proposal. It certainly is interesting, though - seems even generally promising. We've never taken such an approach before, have we (dunno)? Is there a new need? Or is this discovery of a helpful, general new feature? Seems like the latter. (Could be both.) Perhaps this deserves some new terminology and general doc.
(Someone will probably point out that this is nothing special/new, and that I just haven't had enough coffee this morning...)
next prev parent reply other threads:[~2018-08-04 15:42 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-23 15:58 Introducing thread-safe Tramp Michael Albinus
2018-07-23 16:06 ` Eli Zaretskii
2018-07-23 16:11 ` Michael Albinus
2018-07-23 16:37 ` Eli Zaretskii
2018-07-23 16:55 ` Michael Albinus
2018-07-24 8:25 ` Ken Raeburn
2018-07-24 12:52 ` Michael Albinus
2018-07-24 13:20 ` martin rudalics
2018-07-25 9:51 ` Michael Albinus
2018-07-25 14:44 ` Eli Zaretskii
2018-07-25 17:32 ` Eli Zaretskii
2018-07-25 17:53 ` Michael Albinus
2018-07-26 7:56 ` martin rudalics
2018-07-26 8:14 ` Michael Albinus
2018-07-26 9:02 ` martin rudalics
2018-07-26 17:24 ` Eli Zaretskii
2018-07-24 15:06 ` Drew Adams
2018-07-25 9:46 ` Michael Albinus
2018-07-25 11:54 ` Phil Sainty
2018-07-25 12:14 ` Andreas Schwab
2018-07-25 13:02 ` Michael Albinus
2018-07-25 13:31 ` Robert Pluim
2018-07-27 15:05 ` Michael Albinus
2018-08-01 16:27 ` Robert Pluim
2018-08-01 21:28 ` Michael Albinus
2018-07-27 19:04 ` Filipp Gunbin
2018-07-27 19:42 ` Michael Albinus
2018-07-28 0:14 ` Filipp Gunbin
2018-07-28 7:01 ` Eli Zaretskii
2018-07-28 9:48 ` Michael Albinus
2018-07-29 18:29 ` Drew Adams
2018-07-30 8:44 ` Michael Albinus
2018-07-30 14:23 ` Eli Zaretskii
2018-08-04 12:47 ` Michael Albinus
2018-08-04 12:49 ` Michael Albinus
2018-08-04 15:00 ` Eli Zaretskii
2018-08-04 15:12 ` Michael Albinus
2018-08-04 15:43 ` Eli Zaretskii
2018-08-04 15:58 ` Michael Albinus
2018-08-04 16:11 ` Eli Zaretskii
2018-08-04 16:18 ` Michael Albinus
2018-08-04 16:58 ` Eli Zaretskii
2018-08-04 17:29 ` Michael Albinus
2018-08-04 18:34 ` Eli Zaretskii
2018-08-05 9:51 ` Michael Albinus
2018-08-05 15:06 ` Eli Zaretskii
2018-08-06 10:54 ` Michael Albinus
2018-08-06 14:55 ` Drew Adams
2018-08-06 15:25 ` C-x & (was: Introducing thread-safe Tramp) Michael Albinus
2018-08-06 17:59 ` Drew Adams
2018-08-06 19:17 ` C-x & Michael Albinus
2018-08-06 20:57 ` Drew Adams
2018-08-06 23:16 ` Drew Adams
2018-08-07 7:05 ` Michael Albinus
2018-08-07 7:01 ` Michael Albinus
2018-08-06 15:48 ` Introducing thread-safe Tramp Stefan Monnier
2018-08-06 15:24 ` Eli Zaretskii
2018-08-06 15:29 ` C-x & (was: Introducing thread-safe Tramp) Michael Albinus
2018-08-06 18:32 ` Introducing thread-safe Tramp Filipp Gunbin
2018-08-07 14:20 ` Michael Albinus
2018-08-07 14:53 ` Stephen Berman
2018-08-07 15:02 ` Robert Pluim
2018-08-07 15:06 ` Stephen Berman
2018-08-07 16:00 ` Michael Albinus
2018-08-07 15:58 ` Michael Albinus
2018-08-07 15:33 ` Drew Adams
2018-08-07 16:01 ` Michael Albinus
2018-08-07 16:12 ` Drew Adams
2018-08-07 16:18 ` Michael Albinus
2018-08-07 15:56 ` Michael Albinus
2018-08-07 16:24 ` Eli Zaretskii
2018-08-07 16:30 ` Michael Albinus
2018-08-07 15:56 ` Eli Zaretskii
2018-08-07 16:09 ` Michael Albinus
2018-08-07 16:23 ` Drew Adams
2018-08-07 16:46 ` Drew Adams
2018-08-07 16:54 ` Michael Albinus
2018-08-07 17:11 ` Eli Zaretskii
2018-08-08 8:18 ` Michael Albinus
2018-08-08 19:01 ` Filipp Gunbin
2018-08-08 20:52 ` Stefan Monnier
2018-08-08 20:54 ` Drew Adams
2018-08-04 15:42 ` Drew Adams [this message]
2018-08-04 15:56 ` Michael Albinus
2018-08-04 16:16 ` Drew Adams
2018-08-04 17:36 ` Michael Albinus
2018-08-04 22:41 ` Drew Adams
2018-08-05 10:03 ` Michael Albinus
2018-08-04 16:08 ` Eli Zaretskii
[not found] ` <<7c28f9d8-e2bb-4778-ab92-92707f12718f@default>
[not found] ` <<837el6t8r3.fsf@gnu.org>
2018-08-04 16:27 ` Drew Adams
2018-08-04 16:59 ` Eli Zaretskii
2018-08-05 1:59 ` Richard Stallman
2018-08-05 10:07 ` Michael Albinus
2018-08-06 1:20 ` Richard Stallman
2018-08-05 15:36 ` Drew Adams
2018-08-06 4:21 ` Howard Melman
2018-08-06 4:39 ` Werner LEMBERG
2018-08-06 8:07 ` Michael Albinus
2018-08-06 13:50 ` Clément Pit-Claudel
2018-08-06 14:57 ` Drew Adams
2018-08-06 14:52 ` Drew Adams
2018-08-06 15:52 ` Howard Melman
2018-08-06 15:46 ` Stefan Monnier
2018-07-27 21:08 ` Eli Zaretskii
2018-07-28 0:24 ` Filipp Gunbin
2018-07-28 9:02 ` Michael Albinus
2018-07-27 19:19 ` Dmitry Gutov
2018-07-27 19:32 ` Michael Albinus
2018-07-27 19:40 ` Yuri Khan
2018-07-27 19:43 ` Michael Albinus
2018-07-27 20:09 ` Yuri Khan
2018-07-27 21:15 ` Eli Zaretskii
2018-07-28 9:11 ` Michael Albinus
2018-07-28 9:57 ` Eli Zaretskii
2018-07-28 10:04 ` Michael Albinus
2018-07-27 22:57 ` Dmitry Gutov
2018-07-27 22:59 ` Dmitry Gutov
2018-07-28 9:18 ` Michael Albinus
2018-07-28 9:36 ` Dmitry Gutov
2018-07-28 9:51 ` Michael Albinus
2018-07-28 9:59 ` Dmitry Gutov
2018-07-28 10:13 ` Michael Albinus
2018-07-28 22:20 ` Dmitry Gutov
2018-07-29 9:54 ` Michael Albinus
2018-08-08 16:49 ` Dmitry Gutov
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=7c28f9d8-e2bb-4778-ab92-92707f12718f@default \
--to=drew.adams@oracle.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=fgunbin@fastmail.fm \
--cc=michael.albinus@gmx.de \
/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).