unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Thomas Lord <lord@emf.net>
To: rms@gnu.org
Cc: cyd@stupidchicken.com, emacs-devel@gnu.org, juri@jurta.org,
	monnier@iro.umontreal.ca, storm@cua.dk, acm@muc.de,
	miles@gnu.org
Subject: Re: Shift-movement selection
Date: Wed, 12 Mar 2008 19:00:45 -0700	[thread overview]
Message-ID: <47D88ACD.5080700@emf.net> (raw)
In-Reply-To: <E1JZbth-0001qs-Ht@fencepost.gnu.org>

Richard Stallman wrote:
> Now I understand your proposal.  I don't see how it would handle the
> issue of making non-shift movement commands deactivate the mark, but
> maybe it can be made to do that.
>   

I have accidentally confused things by making, now, three proposals.
Of the three, I particularly like the last.

One proposal is coded almost like i-search as a sorta-kinda
recursive edit.   Non-shift movement commands de-activate
that because deactivation is the default for all commands
which either (a) do not explicitly set a flag otherwise or (b) are
*not* invoked via a shifted keysequence whose binding is
found by defaulting to the unshifted sequence.    That works
but the third one is simpler.

Proposal #2 is similar to #1 but hairier, using minor mode
foo to .... nevermind... the third one is simpler.

Proposal #3 could be re-expressed as:

    Function: enter-shift-mark-mode
    Install the shift-mark-mode-post-command-hook and record the
    point as the tentative mark.

    Function: abandon-shift-mark-mode
    Toss the tentative mark and remove the post command hook

    Function: seal-the-deal-from-shift-mark-mode
    Turn the tentative mark into a normal mark.

    Function: shift-mark-mode-post-command-hook
    If the last command set the right flag, keep the tentative
    mark.   Otherwise, if the last command was invoked by
    defaulting a shifted key-sequence to non-shifted, then
    again keep the tentative mark.   Otherwise, abandon-shift-mark-mode.

    Function: unbound-shift-key-treat-as-enter-shift-mark-mode
    Remove the shift from the keysequence that invoked this command,
    enter-shift-mark-mode, and process the simplified keysequence.

and various convenience functions related to that basis.  Make
the default binding of various shift keys be 
"unbound-shift-key-treat-as-...."


I think #3 could be the best of the lot.



> However, I tend to think that the use of the special character in
> `interactive' to indicate these commands is a cleaner method overall.
>
>   

Works both ways, here.   The underlying enter-shift-mark-mode could
be bound all by itself to a key or, if some prefer, can be called via
unbound-shift-key-treat-as-enter-shift-mark-mode.

The key thing is getting the "semantics of the mark ring" right.
The mistake we've all been making (and me with proposals #1
and #2) is to think that shift-mark state has to be in the command
loop.   Instead, it's a 1-bit flag for the top of the mark stack: the 
distinction
between a normal and a "tentative" mark, where "tentative" marks only
ever occur on the top of the mark stack.


-t



>
>   





  reply	other threads:[~2008-03-13  2:00 UTC|newest]

Thread overview: 256+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-05  6:37 position on changing defaults? Dan Nicolaescu
2008-03-05  7:02 ` Miles Bader
2008-03-05 13:33   ` Miles Bader
2008-03-05 14:54     ` Juanma Barranquero
2008-03-05 15:44     ` Drew Adams
2008-03-05 19:25       ` Stefan Monnier
2008-03-05 19:38         ` Drew Adams
2008-03-05 21:55       ` Miles Bader
2008-03-05 15:34   ` Drew Adams
2008-03-05  9:55 ` David Kastrup
2008-03-07  3:37   ` Richard Stallman
2008-03-05 15:02 ` Bastien
2008-03-05 19:45 ` Stefan Monnier
2008-03-05 22:30   ` Dan Nicolaescu
2008-03-05 23:15     ` Miles Bader
2008-03-06  3:49       ` Dan Nicolaescu
2008-03-06  4:10         ` Miles Bader
2008-03-06  4:30           ` Dan Nicolaescu
2008-03-07  3:35           ` Richard Stallman
2008-03-07  3:38       ` Richard Stallman
2008-03-05 23:28     ` Juri Linkov
2008-03-06  3:58       ` Dan Nicolaescu
2008-03-06 10:07         ` Juri Linkov
2008-03-06 11:37           ` René Kyllingstad
2008-03-06 16:20         ` Stefan Monnier
2008-03-06 19:11           ` Dan Nicolaescu
2008-03-06 21:13             ` Stefan Monnier
2008-03-09  1:00           ` Xavier Maillard
2008-03-06 16:14       ` Stefan Monnier
2008-03-06 17:52         ` Juri Linkov
2008-03-06 18:25           ` Stefan Monnier
2008-03-07  0:35             ` Juri Linkov
2008-03-07  3:38       ` Richard Stallman
2008-03-09  1:00         ` Xavier Maillard
2008-03-09  1:46         ` Dan Nicolaescu
2008-03-09 16:40           ` Richard Stallman
2008-03-06 16:13     ` Stefan Monnier
2008-03-06 16:37       ` Drew Adams
2008-03-06 17:09         ` Dan Nicolaescu
2008-03-06 17:35           ` Drew Adams
2008-03-06 20:38             ` Alan Mackenzie
2008-03-06 20:40               ` Drew Adams
2008-03-06 21:33                 ` Alan Mackenzie
2008-03-06 21:36                   ` Drew Adams
2008-03-09  1:00         ` Xavier Maillard
2008-03-06 18:10       ` Johan Bockgård
2008-03-06 19:44         ` Mathias Dahl
2008-03-07  0:43           ` Juri Linkov
2008-03-09  1:00       ` Xavier Maillard
2008-03-07  3:38     ` Richard Stallman
2008-03-07  3:48       ` Miles Bader
2008-03-07  4:07       ` Dan Nicolaescu
2008-03-08 17:40         ` Richard Stallman
2008-03-08 18:08           ` Gregory Collins
2008-03-09  0:27             ` Miles Bader
2008-03-09  0:36               ` Dan Nicolaescu
2008-03-09  0:43                 ` Miles Bader
2008-03-09  1:10                   ` Dan Nicolaescu
2008-03-09 23:08                   ` Mathias Dahl
2008-03-11  1:00                     ` Xavier Maillard
2008-03-11  6:06                       ` Drew Adams
2008-03-09 21:51                 ` Juri Linkov
2008-03-09 22:34                   ` Drew Adams
2008-03-10  0:29                     ` Juri Linkov
2008-03-10  0:57                       ` Drew Adams
2008-03-11  1:00                 ` Xavier Maillard
2008-03-11  1:00               ` Xavier Maillard
2008-03-09 20:53             ` Richard Stallman
2008-03-08 18:15           ` Dan Nicolaescu
2008-03-08 21:09           ` Juri Linkov
2008-03-09 16:39             ` Richard Stallman
2008-03-09 17:55               ` Juri Linkov
2008-03-09 22:24                 ` Stefan Monnier
2008-03-10  0:30                   ` Juri Linkov
2008-03-10 22:29               ` Juri Linkov
2008-03-08 19:11         ` Andreas Schwab
2008-03-08 19:26           ` Dan Nicolaescu
2008-03-08 19:54             ` Andreas Schwab
2008-03-08 20:03               ` Dan Nicolaescu
2008-03-08 20:28                 ` Andreas Schwab
2008-03-08 23:41                   ` Kim F. Storm
2008-03-09  0:04                     ` Andreas Schwab
2008-03-09  0:18                       ` Stephen Eglen
2008-03-11  1:00                         ` Xavier Maillard
2008-03-11 10:44                           ` Kim F. Storm
2008-03-11 12:22                             ` Tassilo Horn
2008-03-11 14:39                               ` ido-mode (was Re: position on changing defaults?) Kim F. Storm
2008-03-11 16:14                                 ` ido-mode Tassilo Horn
2008-03-09  0:27                       ` position on changing defaults? Dan Nicolaescu
2008-03-09  0:36                         ` Miles Bader
2008-03-09  9:51                         ` David Kastrup
2008-03-09 16:40                         ` Richard Stallman
2008-03-11  1:00                         ` Xavier Maillard
2008-03-09  1:00         ` Xavier Maillard
2008-03-07 12:21       ` paul r
2008-03-11  1:00         ` Xavier Maillard
2008-03-07  3:38   ` Richard Stallman
2008-03-05 20:43 ` Chong Yidong
2008-03-05 23:30   ` Juri Linkov
2008-03-05 23:45     ` Bastien
2008-03-05 23:54       ` Juri Linkov
2008-03-06  0:00         ` Lennart Borgman (gmail)
2008-03-06  0:10         ` Bastien
2008-03-07  3:38       ` Richard Stallman
2008-03-05 23:46     ` Miles Bader
2008-03-06  0:21       ` Juri Linkov
2008-03-06 10:58       ` Kim F. Storm
2008-03-07 23:14         ` Richard Stallman
2008-03-07 23:27           ` Miles Bader
2008-03-08  0:40             ` Lennart Borgman (gmail)
2008-03-09  2:18               ` Richard Stallman
2008-03-08  1:24             ` deactivation in "shift-select" mode Miles Bader
2008-03-08  2:22               ` Chong Yidong
2008-03-08  3:11                 ` Miles Bader
2008-03-08  3:27                   ` Miles Bader
2008-03-08 17:26               ` Kim F. Storm
2008-03-09 20:53             ` position on changing defaults? Richard Stallman
2008-03-09 21:58               ` Miles Bader
2008-03-09 22:34               ` Shift-movement selection (was: position on changing defaults?) Stefan Monnier
2008-03-09 23:00                 ` Shift-movement selection Miles Bader
2008-03-09 23:57                   ` Kim F. Storm
2008-03-10  0:06                     ` Miles Bader
2008-03-10 16:26                       ` Stefan Monnier
2008-03-10 16:25                     ` Stefan Monnier
2008-03-10  3:37                   ` Stefan Monnier
2008-03-10  4:11                     ` Miles Bader
2008-03-10 14:38                       ` Stefan Monnier
2008-03-10 15:06                         ` Kim F. Storm
2008-03-10 16:23                           ` Stefan Monnier
2008-03-10 16:40                             ` Lennart Borgman (gmail)
2008-03-11  9:25                               ` Richard Stallman
2008-03-11 18:40                                 ` Stefan Monnier
2008-03-12  0:19                                   ` Richard Stallman
2008-03-12 10:06                                     ` Kim F. Storm
2008-03-12 17:51                                       ` Richard Stallman
2008-03-12 22:06                                         ` Kim F. Storm
2008-03-12 23:59                                           ` Thomas Lord
2008-03-13  0:07                                             ` Thomas Lord
2008-03-13  8:28                                               ` tomas
2008-03-11 22:42                           ` Alan Mackenzie
2008-03-11 22:38                             ` Lennart Borgman (gmail)
2008-03-11 23:31                               ` David Kastrup
2008-03-11 23:46                                 ` Lennart Borgman (gmail)
2008-03-12  1:35                                   ` Stefan Monnier
2008-03-12 15:11                                 ` Richard Stallman
2008-03-12 15:11                             ` Richard Stallman
2008-03-12 15:54                               ` Kim F. Storm
2008-03-12 17:39                                 ` Thomas Lord
2008-03-12 20:03                                   ` Richard Stallman
2008-03-12 22:00                                     ` Thomas Lord
2008-03-13  1:06                                       ` Richard Stallman
2008-03-13  2:00                                         ` Thomas Lord [this message]
2008-03-10 22:32                         ` Miles Bader
2008-03-11 18:38                           ` Stefan Monnier
2008-03-11  9:24                         ` Richard Stallman
2008-03-10 17:16                     ` Richard Stallman
2008-03-10 18:40                       ` Stefan Monnier
2008-03-11 20:25                         ` Richard Stallman
2008-03-11 20:41                           ` Lennart Borgman (gmail)
2008-03-12 15:11                             ` Richard Stallman
2008-03-11 22:33                     ` Alan Mackenzie
2008-03-06 16:46       ` position on changing defaults? Stefan Monnier
2008-03-07  2:08         ` Miles Bader
2008-03-08  6:28           ` Richard Stallman
2008-03-08 17:40         ` Richard Stallman
2008-03-08 19:08           ` Kim F. Storm
2008-03-08 18:07         ` Kim F. Storm
2008-03-08 20:09           ` Stefan Monnier
2008-03-09 16:40             ` Richard Stallman
2008-03-09 22:22               ` Stefan Monnier
2008-03-09 22:56               ` Kim F. Storm
2008-03-09 23:17                 ` Lennart Borgman (gmail)
2008-03-11  9:25                 ` Richard Stallman
2008-03-11 10:24                   ` Kim F. Storm
2008-03-11 16:02                     ` Lennart Borgman (gmail)
2008-03-09 20:53           ` Richard Stallman
2008-03-07  3:38     ` Richard Stallman
2008-03-05 23:52   ` Kim F. Storm
2008-03-06  0:34     ` Miles Bader
2008-03-06  1:00     ` Lennart Borgman (gmail)
2008-03-06  1:18       ` Bastien
2008-03-06 17:07     ` Stefan Monnier
2008-03-08 17:40       ` Richard Stallman
2008-03-08 19:12         ` Kim F. Storm
2008-03-09 16:40           ` Richard Stallman
2008-03-09 22:35             ` Kim F. Storm
2008-03-09 23:11               ` CUA mode's C-RET binding [was: position on changing defaults?] Drew Adams
2008-03-09 23:36                 ` Kim F. Storm
2008-03-09 23:46                   ` CUA mode's C-RET binding Miles Bader
2008-03-09 23:50                   ` CUA mode's C-RET binding [was: position on changing defaults?] Lennart Borgman (gmail)
2008-03-10  0:00                     ` CUA mode's C-RET binding Miles Bader
2008-03-10  0:18                       ` Lennart Borgman (gmail)
2008-03-10  0:02                   ` CUA mode's C-RET binding [was: position on changing defaults?] Drew Adams
2008-03-10 10:13                     ` Mathias Dahl
2008-03-10 13:47                       ` Lennart Borgman (gmail)
2008-03-10 14:32                         ` Johan Bockgård
2008-03-10 14:53                           ` Lennart Borgman (gmail)
2008-03-11  0:07                             ` Juri Linkov
2008-03-11 20:25                               ` Richard Stallman
2008-03-11 20:50                                 ` CUA mode's C-RET binding Manoj Srivastava
2008-03-12  0:37                                   ` Juri Linkov
2008-03-12 15:12                                   ` Richard Stallman
2008-03-12 17:30                                     ` Manoj Srivastava
2008-03-12 20:21                                       ` Dangerous shell commands? (was: CUA mode's C-RET binding) Reiner Steib
2008-03-12 21:23                                         ` Dangerous shell commands? David Kastrup
2008-03-13  0:14                                         ` Manoj Srivastava
2008-03-11 14:44                         ` CUA mode's C-RET binding [was: position on changing defaults?] Mathias Dahl
2008-03-11 15:09                           ` Drew Adams
2008-03-13 11:20                             ` Mathias Dahl
2008-03-13 17:26                               ` Drew Adams
2008-03-11  9:25               ` position on changing defaults? Richard Stallman
2008-03-08 19:25       ` Kim F. Storm
2008-03-08 20:38         ` Stefan Monnier
2008-03-08 23:38           ` Kim F. Storm
2008-03-08 23:51             ` Miles Bader
2008-03-09  2:32             ` Stefan Monnier
2008-03-09 16:39             ` Richard Stallman
2008-03-10 16:11             ` Chong Yidong
2008-03-11 10:28               ` Kim F. Storm
2008-03-08 20:56       ` Kim F. Storm
2008-03-09  8:38         ` Making the command loop mode-dependent [was: position on changing defaults?] Alan Mackenzie
2008-03-07  3:38     ` position on changing defaults? Richard Stallman
2008-03-07 10:50       ` Kim F. Storm
2008-03-09  2:18         ` Richard Stallman
2008-03-09  2:40           ` Miles Bader
2008-03-09 22:06             ` Kim F. Storm
2008-03-09 22:13               ` Miles Bader
2008-03-09 22:15               ` Stefan Monnier
2008-03-09 23:44                 ` Kim F. Storm
2008-03-09 23:57                   ` Miles Bader
2008-03-10  1:00                   ` Johan Bockgård
2008-03-10 17:16                   ` Richard Stallman
2008-03-11 10:35                     ` Kim F. Storm
2008-03-11 18:31                       ` Stefan Monnier
2008-03-12  0:19                         ` Richard Stallman
2008-03-12  9:56                         ` Kim F. Storm
2008-03-12 14:03                           ` Stefan Monnier
2008-03-12 23:56                             ` Lennart Borgman (gmail)
2008-03-13  1:52                               ` Stefan Monnier
2008-03-13  2:01                                 ` Lennart Borgman (gmail)
2008-03-13  2:31                                   ` Stefan Monnier
2008-03-13 16:57                                     ` Lennart Borgman (gmail)
2008-03-14  2:55                                       ` Richard Stallman
2008-03-14  9:51                                         ` David Kastrup
2008-03-13  7:45                                 ` David Kastrup
2008-03-13 12:45                                   ` Kim F. Storm
2008-03-13 13:28                                     ` David Kastrup
2008-03-13 20:39                                       ` Stephen J. Turnbull
2008-03-13 21:55                                         ` David Kastrup
2008-03-13 23:56                                           ` Stephen J. Turnbull
2008-03-13 22:24                               ` Richard Stallman
2008-03-13 22:47                                 ` Kim F. Storm
2008-03-13 22:49                                   ` David Kastrup
2008-03-14 16:44                                   ` Richard Stallman
2008-03-13 23:30                                 ` Lennart Borgman (gmail)
2008-03-13 15:41                             ` Chong Yidong

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=47D88ACD.5080700@emf.net \
    --to=lord@emf.net \
    --cc=acm@muc.de \
    --cc=cyd@stupidchicken.com \
    --cc=emacs-devel@gnu.org \
    --cc=juri@jurta.org \
    --cc=miles@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rms@gnu.org \
    --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 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).