From: Thomas Lord <lord@emf.net>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Chong Yidong <cyd@stupidchicken.com>,
Dan Nicolaescu <dann@ics.uci.edu>, "Kim F. Storm" <storm@cua.dk>,
emacs-devel@gnu.org
Subject: shift-select harmony
Date: Sat, 15 Mar 2008 15:01:02 -0700 [thread overview]
Message-ID: <47DC471E.3050705@emf.net> (raw)
In-Reply-To: <jwvy78jhfw7.fsf-monnier+emacs@gnu.org>
I was thinking about a test-case of the shift-select
design I proposed. Consider a hypothetical
"yank-as-s-exp" command. It:
inserts '(' at the point
yanks
inserts ')' at the point
Such a command could be created as a keyboard
macro, for example.
With my design, and a naively coded yank-as-s-exp
what happens?
The insert of '(' deletes a transient region, if one
is present. The yank yanks but also sets a variable
preserved-transient-mark. The ')' redundantly
deletes the (now empty) transient region. Upon
return, consulting the variable preserved-..., the
command loop restores the transient mark so, in
the end, the new s-exp is left selected as the transient
region.
Such an example doesn't absolutely prove that my
design is the right one. Perhaps there are natural,
hard to locate-and-fix counter-examples of
how the new variables would break existing code.
Kudos for anyone can think of such exceptions ahead
of running into them in practice.
But, such an example does strengthen the hypothesis
that my design is a good one: that I've succeeded at
marrying the traditional model of Emacs' "dynamic
state" to an extension of that model that provides selection
behavior more like popular GUI apps.
There is a "harmony" between my proposed design
and the traditional Emacs model. It "DTRT" by
default in what seems to be the default case. It leaves
a pretty small number of cases to be dealt with by hand.
The original mistake (of transient-....) was, again,
in trying to use the current mark rather than creating
the concept of a transient mark. It's a very old mistake.
I can understand the confusion that results. But... I
think what I'm suggesting fixes that confusion and if
it doesn't I'd really appreciate a concise, lucid explanation
of why. The current effort seems to still suffer under
that original mistake.
-t
next prev parent reply other threads:[~2008-03-15 22:01 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-13 23:29 Shift selection using interactive spec Chong Yidong
2008-03-14 0:44 ` Thomas Lord
2008-03-14 0:10 ` David Kastrup
2008-03-14 1:22 ` Thomas Lord
2008-03-14 9:46 ` David Kastrup
2008-03-14 10:01 ` Johan Bockgård
2008-03-14 10:30 ` David Kastrup
2008-03-14 11:18 ` Thomas Lord
2008-03-14 11:11 ` Thomas Lord
2008-03-14 10:42 ` David Kastrup
2008-03-14 11:36 ` Thomas Lord
2008-03-14 11:50 ` Thomas Lord
2008-03-14 11:39 ` David Kastrup
2008-03-14 18:41 ` Thomas Lord
2008-03-14 4:06 ` Dan Nicolaescu
2008-03-14 14:26 ` Kim F. Storm
2008-03-14 14:32 ` Chong Yidong
2008-03-14 14:53 ` Kim F. Storm
2008-03-14 16:19 ` David Kastrup
2008-03-14 15:54 ` Stefan Monnier
2008-03-14 16:09 ` Drew Adams
2008-03-14 20:52 ` Chong Yidong
2008-03-14 20:59 ` David Kastrup
2008-03-14 21:08 ` Chong Yidong
2008-03-15 0:56 ` Stefan Monnier
2008-03-15 2:02 ` Chong Yidong
2008-03-15 3:31 ` Stefan Monnier
2008-03-15 14:07 ` Chong Yidong
2008-03-15 15:07 ` Stefan Monnier
2008-03-15 17:11 ` Chong Yidong
2008-03-15 20:52 ` Stefan Monnier
2008-03-15 21:45 ` Thomas Lord
2008-03-16 14:15 ` Chong Yidong
2008-03-16 14:37 ` Lennart Borgman (gmail)
2008-03-15 22:01 ` Thomas Lord [this message]
2008-03-15 23:38 ` shift-select harmony Thomas Lord
2008-03-15 17:16 ` Shift selection using interactive spec Kim F. Storm
2008-03-15 20:59 ` Thomas Lord
2008-03-16 23:31 ` Alan Mackenzie
2008-03-15 21:08 ` Thomas Lord
2008-03-16 0:27 ` Chong Yidong
2008-03-16 1:37 ` Thomas Lord
2008-03-16 9:09 ` Mathias Dahl
2008-03-16 14:21 ` Chong Yidong
2008-03-16 16:56 ` Thomas Lord
2008-03-16 16:34 ` Dear lazyweb (Re: Shift selection using interactive spec) Thomas Lord
2008-03-16 18:40 ` Shift selection using interactive spec Stefan Monnier
2008-03-16 21:00 ` Thomas Lord
2008-03-16 20:45 ` Thien-Thi Nguyen
2008-03-16 21:46 ` Thomas Lord
2008-03-16 21:24 ` Thien-Thi Nguyen
2008-03-16 22:27 ` Thomas Lord
2008-03-16 23:04 ` Lennart Borgman (gmail)
2008-03-16 23:17 ` Lennart Borgman (gmail)
2008-03-17 0:46 ` Thomas Lord
2008-03-17 0:21 ` Lennart Borgman (gmail)
2008-03-17 1:16 ` Thomas Lord
2008-03-16 23:35 ` Stephen J. Turnbull
2008-03-17 0:55 ` Thomas Lord
2008-03-17 2:23 ` Stefan Monnier
2008-03-17 3:12 ` Thomas Lord
2008-03-17 2:21 ` Stefan Monnier
2008-03-17 3:47 ` what's the point (re shift selection) Thomas Lord
2008-03-16 14:40 ` Shift selection using interactive spec Chong Yidong
2008-03-16 15:04 ` Lennart Borgman (gmail)
2008-03-16 17:13 ` Thomas Lord
2008-03-17 0:54 ` Chong Yidong
2008-03-17 2:40 ` Stefan Monnier
2008-03-17 3:24 ` Chong Yidong
2008-03-17 13:26 ` Stefan Monnier
2008-03-17 16:33 ` Chong Yidong
2008-03-17 17:21 ` Lennart Borgman (gmail)
2008-03-17 19:11 ` Stefan Monnier
2008-03-17 21:10 ` Chong Yidong
2008-03-17 21:44 ` Drew Adams
2008-03-18 11:40 ` Kim F. Storm
2008-03-18 14:16 ` Chong Yidong
2008-03-18 15:07 ` Kim F. Storm
2008-03-18 16:24 ` Stefan Monnier
2008-03-18 17:54 ` Drew Adams
2008-03-20 5:03 ` Chong Yidong
2008-03-23 1:39 ` Stefan Monnier
2008-03-17 22:24 ` martin rudalics
2008-03-17 22:37 ` Lennart Borgman (gmail)
2008-03-18 0:50 ` Thomas Lord
2008-03-18 7:48 ` martin rudalics
2008-03-18 17:46 ` Thomas Lord
2008-03-18 17:36 ` Lennart Borgman (gmail)
2008-03-18 19:07 ` Thomas Lord
2008-03-18 7:48 ` martin rudalics
2008-03-17 22:53 ` Chong Yidong
2008-03-18 3:12 ` Stefan Monnier
2008-03-18 7:49 ` martin rudalics
2008-03-18 16:36 ` Stefan Monnier
2008-03-18 16:44 ` Lennart Borgman (gmail)
2008-03-18 14:45 ` Chong Yidong
2008-03-18 16:39 ` Stefan Monnier
2008-03-18 18:28 ` Chong Yidong
2008-03-18 21:42 ` Stefan Monnier
2008-03-18 22:30 ` Kim F. Storm
2008-03-18 22:39 ` Lennart Borgman (gmail)
2008-03-19 4:40 ` M Jared Finder
2008-03-26 8:09 ` David Kastrup
2008-03-26 10:48 ` Juri Linkov
2008-03-26 11:32 ` David Kastrup
2008-03-26 11:39 ` Juri Linkov
2008-03-26 12:20 ` David Kastrup
2008-03-26 13:14 ` Johan Bockgård
2008-03-26 13:26 ` David Kastrup
2008-03-26 14:52 ` Stefan Monnier
2008-03-27 0:46 ` Juri Linkov
2008-03-26 12:02 ` Lennart Borgman (gmail)
2008-03-26 11:47 ` Lennart Borgman (gmail)
2008-03-26 22:26 ` Richard Stallman
2008-03-26 23:31 ` Lennart Borgman (gmail)
2008-03-27 7:02 ` David Kastrup
2008-03-27 8:19 ` Lennart Borgman (gmail)
2008-03-27 8:41 ` David Kastrup
2008-03-27 13:57 ` Lennart Borgman (gmail)
2008-03-27 14:39 ` David Kastrup
2008-03-27 15:01 ` Juanma Barranquero
2008-03-27 15:34 ` David Kastrup
2008-03-27 15:41 ` Juanma Barranquero
2008-03-27 15:13 ` Johan Bockgård
2008-03-27 19:41 ` Richard Stallman
2008-03-27 23:52 ` Juri Linkov
2008-03-28 7:33 ` David Kastrup
2008-03-29 0:47 ` Juri Linkov
2008-03-29 7:03 ` David Kastrup
2008-03-29 11:53 ` Lennart Borgman (gmail)
2008-03-29 12:30 ` Juri Linkov
2008-03-29 14:07 ` David Kastrup
2008-03-29 14:45 ` Lennart Borgman (gmail)
2008-03-29 15:09 ` David Kastrup
2008-03-29 15:30 ` Lennart Borgman (gmail)
2008-03-30 0:52 ` Juri Linkov
2008-03-30 17:56 ` David Kastrup
2008-03-30 5:49 ` Richard Stallman
2008-03-28 4:05 ` M Jared Finder
2008-03-28 11:10 ` David Kastrup
2008-03-28 17:14 ` Lennart Borgman (gmail)
2008-03-28 20:05 ` David Kastrup
2008-03-28 23:49 ` Lennart Borgman (gmail)
2008-03-28 20:42 ` Richard Stallman
2008-03-28 21:47 ` Chong Yidong
2008-03-28 22:01 ` David Kastrup
2008-03-30 0:48 ` Juri Linkov
2008-03-30 17:55 ` David Kastrup
2008-03-30 18:55 ` Juri Linkov
2008-03-27 0:49 ` Juri Linkov
2008-03-27 2:59 ` Chong Yidong
2008-03-27 19:41 ` Richard Stallman
2008-03-27 23:48 ` Juri Linkov
2008-03-28 20:41 ` Richard Stallman
2008-03-29 0:54 ` Juri Linkov
2008-03-29 1:15 ` Lennart Borgman (gmail)
2008-03-29 16:37 ` Richard Stallman
2008-03-30 1:05 ` Juri Linkov
2008-03-30 4:12 ` Stefan Monnier
2008-03-30 18:33 ` Juri Linkov
2008-03-31 16:24 ` Richard Stallman
2008-03-30 19:56 ` Richard Stallman
2008-03-30 22:46 ` Juri Linkov
2008-03-26 22:26 ` Richard Stallman
2008-03-18 17:45 ` Thomas Lord
2008-03-16 2:33 ` Richard Stallman
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47DC471E.3050705@emf.net \
--to=lord@emf.net \
--cc=cyd@stupidchicken.com \
--cc=dann@ics.uci.edu \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=storm@cua.dk \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.