unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Change default behavior of some commands that act on region?
@ 2021-05-21 20:58 Drew Adams
  2021-05-22  6:04 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-21 20:58 UTC (permalink / raw)
  To: emacs-devel@gnu.org

This is a follow-up to this post to help-gnu-emacs@gnu.org:

  https://lists.gnu.org/archive/html/help-gnu-emacs/2021-05/msg00762.html

I hesitate to suggest changing default behavior, but
maybe this is worth considering.

There are some commands, such as `downcase-region',
that act on the region regardless of whether it's
active.  Because `transient-mark-mode' has been on by
default for quite a while now, and because there are
few such commands, users can wonder what's going on.

Or worse, they can sometimes not notice that anything
happened until much later, and then not understand
what caused the change (whatever it is).

Would it be too shocking to change the default
behavior of some such commands, so that they would
do something "safer"?

For example, when invoked interactively, if the
region is not active, and if `transient-mark-mode'
is turned on, such commands could do something like:

* be a no-op
* raise an error
* prompt for confirmation first

Those conditions are important: There'd be no change
when invoked from code, or when `transient-mark-mode'
is off.  Anyone who leaves that mode off would see no
change in behavior, and the same for existing Lisp code.




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-21 20:58 Change default behavior of some commands that act on region? Drew Adams
@ 2021-05-22  6:04 ` Eli Zaretskii
  2021-05-22  6:19   ` Clément Pit-Claudel
  2021-05-23  0:23   ` Drew Adams
  2021-05-22 14:03 ` Stefan Monnier
  2021-05-22 20:48 ` Juri Linkov
  2 siblings, 2 replies; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-22  6:04 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

> From: Drew Adams <drew.adams@oracle.com>
> Date: Fri, 21 May 2021 20:58:48 +0000
> 
> Would it be too shocking to change the default
> behavior of some such commands, so that they would
> do something "safer"?

Yes, it would.  E.g., in my use of Emacs, region is almost never
active.  So you in effect propose making these important editing
commands be no-ops by default for me.




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22  6:04 ` Eli Zaretskii
@ 2021-05-22  6:19   ` Clément Pit-Claudel
  2021-05-22  6:36     ` Emanuel Berg via Emacs development discussions.
  2021-05-22  6:45     ` Eli Zaretskii
  2021-05-23  0:23   ` Drew Adams
  1 sibling, 2 replies; 36+ messages in thread
From: Clément Pit-Claudel @ 2021-05-22  6:19 UTC (permalink / raw)
  To: emacs-devel

On 5/22/21 2:04 AM, Eli Zaretskii wrote:
> E.g., in my use of Emacs, region is almost never
> active.

But you use transient-mark-mode?



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22  6:19   ` Clément Pit-Claudel
@ 2021-05-22  6:36     ` Emanuel Berg via Emacs development discussions.
  2021-05-22  7:00       ` Clément Pit-Claudel
  2021-05-22  6:45     ` Eli Zaretskii
  1 sibling, 1 reply; 36+ messages in thread
From: Emanuel Berg via Emacs development discussions. @ 2021-05-22  6:36 UTC (permalink / raw)
  To: emacs-devel

Clément Pit-Claudel wrote:

> On 5/22/21 2:04 AM, Eli Zaretskii wrote:
>
>> E.g., in my use of Emacs, region is almost never
>> active.
>
> But you use transient-mark-mode?

`region-active-p'

also DWIM functions with optional arguments that defaults to
`point-min' and `point-max'...

and more

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22  6:19   ` Clément Pit-Claudel
  2021-05-22  6:36     ` Emanuel Berg via Emacs development discussions.
@ 2021-05-22  6:45     ` Eli Zaretskii
  2021-05-22  7:00       ` Clément Pit-Claudel
  1 sibling, 1 reply; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-22  6:45 UTC (permalink / raw)
  To: Clément Pit-Claudel; +Cc: emacs-devel

> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
> Date: Sat, 22 May 2021 02:19:26 -0400
> 
> On 5/22/21 2:04 AM, Eli Zaretskii wrote:
> > E.g., in my use of Emacs, region is almost never
> > active.
> 
> But you use transient-mark-mode?

No, I turn it off.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22  6:45     ` Eli Zaretskii
@ 2021-05-22  7:00       ` Clément Pit-Claudel
  2021-05-22  7:23         ` Eli Zaretskii
  2021-05-23  0:23         ` [External] : " Drew Adams
  0 siblings, 2 replies; 36+ messages in thread
From: Clément Pit-Claudel @ 2021-05-22  7:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 5/22/21 2:45 AM, Eli Zaretskii wrote:
>> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
>> Date: Sat, 22 May 2021 02:19:26 -0400
>>
>> On 5/22/21 2:04 AM, Eli Zaretskii wrote:
>>> E.g., in my use of Emacs, region is almost never
>>> active.
>>
>> But you use transient-mark-mode?
> 
> No, I turn it off.

Then you wouldn't be affected by the change, if I understand Drew's suggestion correctly.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22  6:36     ` Emanuel Berg via Emacs development discussions.
@ 2021-05-22  7:00       ` Clément Pit-Claudel
  0 siblings, 0 replies; 36+ messages in thread
From: Clément Pit-Claudel @ 2021-05-22  7:00 UTC (permalink / raw)
  To: emacs-devel

On 5/22/21 2:36 AM, Emanuel Berg via Emacs development discussions. wrote:
> Clément Pit-Claudel wrote:
> 
>> On 5/22/21 2:04 AM, Eli Zaretskii wrote:
>>
>>> E.g., in my use of Emacs, region is almost never
>>> active.
>>
>> But you use transient-mark-mode?
> 
> `region-active-p'
> 
> also DWIM functions with optional arguments that defaults to
> `point-min' and `point-max'...

I don't understand your reply.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22  7:00       ` Clément Pit-Claudel
@ 2021-05-22  7:23         ` Eli Zaretskii
  2021-05-23  0:23         ` [External] : " Drew Adams
  1 sibling, 0 replies; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-22  7:23 UTC (permalink / raw)
  To: Clément Pit-Claudel; +Cc: emacs-devel

> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
> Date: Sat, 22 May 2021 03:00:17 -0400
> Cc: emacs-devel@gnu.org
> 
> On 5/22/21 2:45 AM, Eli Zaretskii wrote:
> >> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
> >> Date: Sat, 22 May 2021 02:19:26 -0400
> >>
> >> On 5/22/21 2:04 AM, Eli Zaretskii wrote:
> >>> E.g., in my use of Emacs, region is almost never
> >>> active.
> >>
> >> But you use transient-mark-mode?
> > 
> > No, I turn it off.
> 
> Then you wouldn't be affected by the change, if I understand Drew's suggestion correctly.

Just wait for the discussion to continue, and you will see why I'm
worried already.

In any case, other uses who don't turn off Transient mark mode will be
affected.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-21 20:58 Change default behavior of some commands that act on region? Drew Adams
  2021-05-22  6:04 ` Eli Zaretskii
@ 2021-05-22 14:03 ` Stefan Monnier
  2021-05-22 14:14   ` Eli Zaretskii
                     ` (2 more replies)
  2021-05-22 20:48 ` Juri Linkov
  2 siblings, 3 replies; 36+ messages in thread
From: Stefan Monnier @ 2021-05-22 14:03 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel@gnu.org

> There are some commands, such as `downcase-region',
> that act on the region regardless of whether it's
> active.  Because `transient-mark-mode' has been on by
> default for quite a while now, and because there are
> few such commands, users can wonder what's going on.

I see two sub-issues to this:

1- Breaking long-standing behavior.  I'll let others figure out how to
   minimize this (e.g. by testing for `transient-mark-mode` or something).

2- If we take a step back, I think we'll see there's a "better optimum"
   in this area when `transient-mark-mode` is in use.  E.g. we could
   combine `downcase-word` and `downcase-region` into a single command
   which will do either of the two depending on `use-region-p`.


-- Stefan




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22 14:03 ` Stefan Monnier
@ 2021-05-22 14:14   ` Eli Zaretskii
  2021-05-22 14:33     ` Stefan Monnier
  2021-05-23  0:25     ` [External] : " Drew Adams
  2021-05-22 19:26   ` Drew Adams
  2021-05-22 23:07   ` Tim Cross
  2 siblings, 2 replies; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-22 14:14 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: drew.adams, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
> Date: Sat, 22 May 2021 10:03:07 -0400
> 
> > There are some commands, such as `downcase-region',
> > that act on the region regardless of whether it's
> > active.  Because `transient-mark-mode' has been on by
> > default for quite a while now, and because there are
> > few such commands, users can wonder what's going on.
> 
> I see two sub-issues to this:
> 
> 1- Breaking long-standing behavior.  I'll let others figure out how to
>    minimize this (e.g. by testing for `transient-mark-mode` or something).
> 
> 2- If we take a step back, I think we'll see there's a "better optimum"
>    in this area when `transient-mark-mode` is in use.  E.g. we could
>    combine `downcase-word` and `downcase-region` into a single command
>    which will do either of the two depending on `use-region-p`.

To remind us, this was triggered by someone's mistaken keypress.  I
don't think we should use such mistakes to justify significant changes
in long-established behavior.  I can easily come up with other
examples where mistakenly holding, e.g., the Ctrl key makes an
absolute mess of my editing (e.g., 's' becomes C-s, and the rest of
what I type more-or-less disappears into the void).  That doesn't mean
we should make over-reaching changes to save me from myself.  That way
lies madness, IMO.  We should stop before it's too late.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22 14:14   ` Eli Zaretskii
@ 2021-05-22 14:33     ` Stefan Monnier
  2021-05-23  0:25     ` [External] : " Drew Adams
  1 sibling, 0 replies; 36+ messages in thread
From: Stefan Monnier @ 2021-05-22 14:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: drew.adams, emacs-devel

>> I see two sub-issues to this:
>> 
>> 1- Breaking long-standing behavior.  I'll let others figure out how to
>>    minimize this (e.g. by testing for `transient-mark-mode` or something).
>> 
>> 2- If we take a step back, I think we'll see there's a "better optimum"
>>    in this area when `transient-mark-mode` is in use.  E.g. we could
>>    combine `downcase-word` and `downcase-region` into a single command
>>    which will do either of the two depending on `use-region-p`.
>
> To remind us, this was triggered by someone's mistaken keypress.  I
> don't think we should use such mistakes to justify significant changes
> in long-established behavior.  I can easily come up with other
> examples where mistakenly holding, e.g., the Ctrl key makes an
> absolute mess of my editing (e.g., 's' becomes C-s, and the rest of
> what I type more-or-less disappears into the void).  That doesn't mean
> we should make over-reaching changes to save me from myself.  That way
> lies madness, IMO.  We should stop before it's too late.

I think you're referring to sub-issue (1) above.
That doesn't preclude improving our UI as in (2) above, which would free
up `C-x C-l` for those users who prefer to use "transient-mark-mode +
M-l".


        Stefan




^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 14:03 ` Stefan Monnier
  2021-05-22 14:14   ` Eli Zaretskii
@ 2021-05-22 19:26   ` Drew Adams
  2021-05-22 21:16     ` Stefan Monnier
  2021-05-23  6:39     ` Eli Zaretskii
  2021-05-22 23:07   ` Tim Cross
  2 siblings, 2 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-22 19:26 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel@gnu.org

> If we take a step back, I think we'll see there's a "better optimum"
> in this area when `transient-mark-mode` is in use.  E.g. we could
> combine `downcase-word` and `downcase-region` into a single command
> which will do either of the two depending on `use-region-p`.

Sure, you can do something like that.  But the thread
is not particularly about down-casing.  It's about
some/most/all such commands.

Commands that don't distinguish an active region,
and that can surprise or make unnoticed changes when
`transient-mark-mode' is on and the region is not
active.

`transient-mark-mode' being on is the common case now.
Some commands haven't awakened to see that's the case.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-21 20:58 Change default behavior of some commands that act on region? Drew Adams
  2021-05-22  6:04 ` Eli Zaretskii
  2021-05-22 14:03 ` Stefan Monnier
@ 2021-05-22 20:48 ` Juri Linkov
  2021-05-23  0:24   ` [External] : " Drew Adams
  2 siblings, 1 reply; 36+ messages in thread
From: Juri Linkov @ 2021-05-22 20:48 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel@gnu.org

> There are some commands, such as `downcase-region',
> that act on the region regardless of whether it's
> active.  Because `transient-mark-mode' has been on by
> default for quite a while now, and because there are
> few such commands, users can wonder what's going on.

I use such customization, problem solved:

#+begin_src emacs-lisp
(define-key esc-map "u" 'upcase-dwim)
(define-key esc-map "l" 'downcase-dwim)
(define-key esc-map "c" 'capitalize-dwim)
#+end_src



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 19:26   ` Drew Adams
@ 2021-05-22 21:16     ` Stefan Monnier
  2021-05-23  0:25       ` Drew Adams
  2021-05-23  6:39     ` Eli Zaretskii
  1 sibling, 1 reply; 36+ messages in thread
From: Stefan Monnier @ 2021-05-22 21:16 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel@gnu.org

>> If we take a step back, I think we'll see there's a "better optimum"
>> in this area when `transient-mark-mode` is in use.  E.g. we could
>> combine `downcase-word` and `downcase-region` into a single command
>> which will do either of the two depending on `use-region-p`.
> Sure, you can do something like that.  But the thread
> is not particularly about down-casing.  It's about
> some/most/all such commands.

My comment above was not specific to downcasing either.


        Stefan




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22 14:03 ` Stefan Monnier
  2021-05-22 14:14   ` Eli Zaretskii
  2021-05-22 19:26   ` Drew Adams
@ 2021-05-22 23:07   ` Tim Cross
  2021-05-23  0:24     ` [External] : " Drew Adams
  2021-05-23  0:55     ` Stefan Monnier
  2 siblings, 2 replies; 36+ messages in thread
From: Tim Cross @ 2021-05-22 23:07 UTC (permalink / raw)
  To: emacs-devel


Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> There are some commands, such as `downcase-region',
>> that act on the region regardless of whether it's
>> active.  Because `transient-mark-mode' has been on by
>> default for quite a while now, and because there are
>> few such commands, users can wonder what's going on.
>
> I see two sub-issues to this:
>
> 1- Breaking long-standing behavior.  I'll let others figure out how to
>    minimize this (e.g. by testing for `transient-mark-mode` or something).
>
> 2- If we take a step back, I think we'll see there's a "better optimum"
>    in this area when `transient-mark-mode` is in use.  E.g. we could
>    combine `downcase-word` and `downcase-region` into a single command
>    which will do either of the two depending on `use-region-p`.
>
>

Just to throw another point into the mix here for consideration.

From an accessibility perspective, transient mark mode can be a challenge.
For example, if your blind, you cannot see the highlighted region.
Therefore, packages like emacspeak turn off transient mark mode.

I raise this to highlight there is another 'group' of users who turn off
transient mark mode, so any changes to these long standing defaults
might want to consider impact on this group as well. Solutions, such as
telling people to turn on transient mark mode to get back some behaviour
is unlikely to help. If your blind, transient mark mode really just
causes confusion. 

Personally, I'm not sure there really is a need for this change. I've
seen few (none I can recall) complaints from users suggesting the
existing behaviour is confusing, but perhaps this isn't the sort of
question people ask?


-- 
Tim Cross



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22  7:00       ` Clément Pit-Claudel
  2021-05-22  7:23         ` Eli Zaretskii
@ 2021-05-23  0:23         ` Drew Adams
  1 sibling, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23  0:23 UTC (permalink / raw)
  To: Clément Pit-Claudel, Eli Zaretskii; +Cc: emacs-devel@gnu.org

> >>> E.g., in my use of Emacs, region is almost never
> >>> active.
> >>
> >> But you use transient-mark-mode?
> >
> > No, I turn it off.
> 
> Then you wouldn't be affected by the change, 
> if I understand Drew's suggestion correctly.

Exactly.  To quote the proposal:

1.
> if the region is not active, and if `transient-mark-mode'
> is turned on, such commands could do something like...
  ^^^^^^^^^^^^

And I explicitly _emphasized_ it, adding:

2.
> Those conditions are important: There'd be no change
                                             ^^^^^^^^^
> when invoked from code, or when `transient-mark-mode'
  ^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^
> is off.
  ^^^^^^

3.
> Anyone who leaves that mode off would see no
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> change in behavior, and the same for existing Lisp code.
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

That's 3 times I said it, at the outset.

^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22  6:04 ` Eli Zaretskii
  2021-05-22  6:19   ` Clément Pit-Claudel
@ 2021-05-23  0:23   ` Drew Adams
  1 sibling, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23  0:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel@gnu.org

> > Would it be too shocking to change the default
> > behavior of some such commands, so that they would
> > do something "safer"?
> 
> Yes, it would.  E.g., in my use of Emacs, region is almost never
> active.  So you in effect propose making these important editing
> commands be no-ops by default for me.

It seems you didn't read the proposal well.  I invite
you to do so.

You say (in another message) that your "use of Emacs"
means leaving `transient-mark-mode' OFF.

In that case, there would be ZERO change for you.
"These important editing commands" would continue to
behave exactly the same as now.

The proposal explicitly has NO EFFECT either:

1. For Lisp code that invokes the command non-interactively.

or

2. When `transient-mark-mode' is turned OFF.




^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 23:07   ` Tim Cross
@ 2021-05-23  0:24     ` Drew Adams
  2021-05-23  0:55     ` Stefan Monnier
  1 sibling, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23  0:24 UTC (permalink / raw)
  To: Tim Cross, emacs-devel@gnu.org

> I raise this to highlight there is another 'group' of users who turn
> off transient mark mode, so any changes to these long standing defaults
> might want to consider impact on this group as well.

I repeat that anyone who turns OFF `transient-mark-mode'
would be _totally unaffected_ by what was proposed.

Likewise, Lisp code that invokes a command non-interactively
would be totally unaffected.

The effect would be only for _interactive_ use of a command,
and only when `transient-mark-mode' is turned ON.

This was quite clear from the beginning - please read what
I wrote.  I fear that perhaps Eli's quick reaction,
mischaracterizing the proposal as affecting users who turn
off `transient-mark-mode', may have affected others.




^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 20:48 ` Juri Linkov
@ 2021-05-23  0:24   ` Drew Adams
  0 siblings, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23  0:24 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel@gnu.org

> > There are some commands, such as `downcase-region',
> > that act on the region regardless of whether it's
> > active.  Because `transient-mark-mode' has been on by
> > default for quite a while now, and because there are
> > few such commands, users can wonder what's going on.
> 
> I use such customization, problem solved:
> 
> (define-key esc-map "u" 'upcase-dwim)
> (define-key esc-map "l" 'downcase-dwim)
> (define-key esc-map "c" 'capitalize-dwim)

1. Once again: the thread is about such commands in
   general - commands that affect the region whether
   or not it is active.

2. Proposing other commands and bindings doesn't
   take care of the problem.  Unless you are also
   proposing swapping alternative commands for each
   such problematic command, and giving them the
   key bindings of the old commands.  (And again,
   not just letter-case commands.)



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 21:16     ` Stefan Monnier
@ 2021-05-23  0:25       ` Drew Adams
  0 siblings, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23  0:25 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel@gnu.org

> >> If we take a step back, I think we'll see there's a "better optimum"
> >> in this area when `transient-mark-mode` is in use.  E.g. we could
> >> combine `downcase-word` and `downcase-region` into a single command
> >> which will do either of the two depending on `use-region-p`.
> >
> > Sure, you can do something like that.  But the thread
> > is not particularly about down-casing.  It's about
> > some/most/all such commands.
> 
> My comment above was not specific to downcasing either.

Actually, your comment above _was_ specific to downcasing.
But maybe you meant something more general.

In that case, you're talking about substituting a bunch
of commands, presumably swapping in the new commands for
(some of) their bindings.

Would those key-binding changes be by default?  Some old
users might not appreciate the change in default behavior
(but of course they can always rebind the keys).

If you don't propose such key-binding changes, then users
not used to region-commands that act on an inactive region
will continue to be bitten.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 14:14   ` Eli Zaretskii
  2021-05-22 14:33     ` Stefan Monnier
@ 2021-05-23  0:25     ` Drew Adams
  1 sibling, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23  0:25 UTC (permalink / raw)
  To: Eli Zaretskii, Stefan Monnier; +Cc: emacs-devel@gnu.org

> > Breaking long-standing behavior.  I'll let others figure
> > out how to minimize this (e.g. by testing for
> > `transient-mark-mode` or something).

There's nothing to figure out.  The proposal said
clearly from the outset that it would have NO effect
when `transient-mark-mode' is turned OFF.

So yes, `transient-mark-mode' would be tested, and if
nil then the long-standing behavior would be UNCHANGED.

Similarly, the behavior of Lisp code that invokes the
command non-interactively would be UNCHANGED.

(if (or (not (called-interactively-p 'interactive))
        (not transient-mark-mode))
    (apply COMMAND ARGS) ; NO CHANGE FROM PAST BEHAVIOR

  ;; Do what user wants for such a command
  ;; when region is inactive.
  ...
  )

The only change in "long-standing behavior" would be for
interactive use when `transient-mark-mode' is turned ON.

And even that could be configurable.  E.g.:

* A list (defvar) of the commands that would be affected.
  Users could change this, but mostly would not bother.

* A defcustom to choose command behavior for inactive region:

  1. Do nothing (ignore - command is a no-op on inactive region).

  2. Prompt to confirm action.
     (e.g. "Region is inactive.  Invoke `foobar' on it anyway?")

  3. Raise an error.
     (e.g. "Cannot use `foobar' interactively with inactive region")

  A good default behavior would be to do nothing (#1),
  in keeping with the aim to use `transient-mark-mode'
  to govern things.  These are essentially commands that
  never learned about `transient-mark-mode' and active
  regions.  In general, there's little sense in turning
  on `transient-mark-mode' and wanting commands to act
  on the INactive region.

* For named commands at least, we could add an ability to
  override the defcustom behavior for particular commands:

  (put 'foobar 'inactive-region-command-action 'error)




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: Change default behavior of some commands that act on region?
  2021-05-22 23:07   ` Tim Cross
  2021-05-23  0:24     ` [External] : " Drew Adams
@ 2021-05-23  0:55     ` Stefan Monnier
  2021-05-23  1:37       ` [External] : " Drew Adams
  1 sibling, 1 reply; 36+ messages in thread
From: Stefan Monnier @ 2021-05-23  0:55 UTC (permalink / raw)
  To: Tim Cross; +Cc: emacs-devel

> From an accessibility perspective, transient mark mode can be a challenge.
> For example, if your blind, you cannot see the highlighted region.
> Therefore, packages like emacspeak turn off transient mark mode.

Indeed, it is important to keep full support for configs where
`transient-mark-mode` is disabled.  Not only many users prefer such
a config, but as you mention, there are also cases where such a config
is not just a question of taste.


        Stefan




^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23  0:55     ` Stefan Monnier
@ 2021-05-23  1:37       ` Drew Adams
  2021-05-23  7:14         ` Eli Zaretskii
  0 siblings, 1 reply; 36+ messages in thread
From: Drew Adams @ 2021-05-23  1:37 UTC (permalink / raw)
  To: Stefan Monnier, Tim Cross; +Cc: emacs-devel@gnu.org

> > From an accessibility perspective, transient mark mode can be a
> > challenge.  For example, if your blind, you cannot see the
> > highlighted region.  Therefore, packages like emacspeak turn
> > off transient mark mode.
> 
> Indeed, it is important to keep full support for configs where
> `transient-mark-mode` is disabled.  Not only many users prefer such
> a config, but as you mention, there are also cases where such a config
> is not just a question of taste.

Yes, and this is irrelevant to this thread, as the
proposed change has no effect on users who disable
`transient-mark-mode'.  They continue to have "full
support".

But I suppose if the contrary gets repeated enough
then the thread can continue to be drowned out by
misrepresentation.  Of course, a misreading can be
an honest mistake...  Once.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-22 19:26   ` Drew Adams
  2021-05-22 21:16     ` Stefan Monnier
@ 2021-05-23  6:39     ` Eli Zaretskii
  2021-05-23 14:27       ` Drew Adams
  1 sibling, 1 reply; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-23  6:39 UTC (permalink / raw)
  To: Drew Adams; +Cc: monnier, emacs-devel

> From: Drew Adams <drew.adams@oracle.com>
> Date: Sat, 22 May 2021 19:26:02 +0000
> Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
> 
> `transient-mark-mode' being on is the common case now.
> Some commands haven't awakened to see that's the case.

That is your personal interpretation, but it is not true.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23  1:37       ` [External] : " Drew Adams
@ 2021-05-23  7:14         ` Eli Zaretskii
  2021-05-23 14:28           ` Drew Adams
  0 siblings, 1 reply; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-23  7:14 UTC (permalink / raw)
  To: Drew Adams; +Cc: theophilusx, monnier, emacs-devel

> From: Drew Adams <drew.adams@oracle.com>
> Date: Sun, 23 May 2021 01:37:41 +0000
> Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
> 
> > Indeed, it is important to keep full support for configs where
> > `transient-mark-mode` is disabled.  Not only many users prefer such
> > a config, but as you mention, there are also cases where such a config
> > is not just a question of taste.
> 
> Yes, and this is irrelevant to this thread, as the
> proposed change has no effect on users who disable
> `transient-mark-mode'.  They continue to have "full
> support".
> 
> But I suppose if the contrary gets repeated enough
> then the thread can continue to be drowned out by
> misrepresentation.  Of course, a misreading can be
> an honest mistake...  Once.

Please stop this disrespectful attitude towards the views of others.
Please also don't assume that people who disagree with you haven't
read what you wrote.

The issue you consider "irrelevant" is actually quite relevant,
because commands that behave differently depending on whether
transient-mark-mode is on or off are a source of confusion and
frustration.  We shouldn't enlarge the number of such commands
willy-nilly.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23  6:39     ` Eli Zaretskii
@ 2021-05-23 14:27       ` Drew Adams
  2021-05-23 15:13         ` Eli Zaretskii
  0 siblings, 1 reply; 36+ messages in thread
From: Drew Adams @ 2021-05-23 14:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org

> > `transient-mark-mode' being on is the common case now.
> 
> That is your personal interpretation, but it is not true.

Can you show evidence that it's _not true_, or is that
just  "your personal interpretation"?

I'm not counting cases of who turns it off (are you?),
but my guess (yes, a guess) is that more Emacs users
have it on than off.  Evidence to the contrary?

t-m-mode ON is the default, and it has been for years
now.  It should be enough to point that out, whether
or not its being left ON is the more common use case.

In any case, whether more have it on or off is, as
I've pointed out, irrelevant to this thread, which is
concerned _only_ with the case when it's on.

Changes proposed here have NO effect on the case when
it's off.  Dunno how many times this needs to be
repeated before you let go.  There really is no need
to go on about the case when t-m-mode is off.  That's
a digression, if not a diversion.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23  7:14         ` Eli Zaretskii
@ 2021-05-23 14:28           ` Drew Adams
  2021-05-23 15:12             ` Alan Mackenzie
  0 siblings, 1 reply; 36+ messages in thread
From: Drew Adams @ 2021-05-23 14:28 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: theophilusx@gmail.com, monnier@iro.umontreal.ca,
	emacs-devel@gnu.org

> > > Indeed, it is important to keep full support for configs 
> > > where `transient-mark-mode` is disabled.  Not only many 
> > > users prefer such a config, but as you mention, there are 
> > > also cases where such a config is not just a question of 
> > > taste.
> >
> > Yes, and this is irrelevant to this thread, as the
                                ^^^^^^^^^^^^^^
> > proposed change has no effect on users who disable
> > `transient-mark-mode'.  They continue to have "full
> > support".
>
> The issue you consider "irrelevant" is actually quite relevant,

I didn't say that support for use of t-m-mode OFF is
irrelevant.  It's very relevant to Emacs.  But it's not
relevant to the proposal of this thread, which has NO
effect on that use case.  That's the point.  Please
don't twist what's been said.  You're arguing against
a straw man.

I've written carefully and clearly, from the outset, that
this proposal has NO effect on that use case.  Yet you've
insisted on pursuing it for supposedly ignoring, or even
inflicting damage, on that case.  Please stop.  There's
nothing relevant about insisting on needing to protect
the t-m-mode OFF case against this proposal, as there's
no threat to it.

> because commands that behave differently depending on whether
> transient-mark-mode is on or off are a source of confusion and
> frustration.  We shouldn't enlarge the number of such commands
> willy-nilly.

Every command that tests `use-region-p' and does something
different depending on the value does something different
depending on whether t-m-mode is on or off, simply because
when it's off there's no notion of active/inactive region
- there's just the region.

t-m-mode's raison d'etre is to be able to do something
when the user sees the selected text highlighted and not
otherwise.  That distinction is what it's all about.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 14:28           ` Drew Adams
@ 2021-05-23 15:12             ` Alan Mackenzie
  2021-05-23 17:48               ` Drew Adams
  2021-05-23 18:44               ` T.V Raman
  0 siblings, 2 replies; 36+ messages in thread
From: Alan Mackenzie @ 2021-05-23 15:12 UTC (permalink / raw)
  To: Drew Adams
  Cc: Eli Zaretskii, theophilusx@gmail.com, monnier@iro.umontreal.ca,
	emacs-devel@gnu.org

Hello, Drew.

On Sun, May 23, 2021 at 14:28:35 +0000, Drew Adams wrote:
> > > > Indeed, it is important to keep full support for configs 
> > > > where `transient-mark-mode` is disabled.  Not only many 
> > > > users prefer such a config, but as you mention, there are 
> > > > also cases where such a config is not just a question of 
> > > > taste.

> > > Yes, and this is irrelevant to this thread, as the
> > >                             ^^^^^^^^^^^^^^
> > > proposed change has no effect on users who disable
> > > `transient-mark-mode'.  They continue to have "full
> > > support".

First of all, I haven't followed this thread in all its details, so far.
That said, I think your above point is a little naive.  I also have
transient-mark-mode disabled, I run with "GUI disabled", and run with
"minibuffer-only frames disabled".

I am very wary of changes which balkanise Emacs.  Every change which only
works with some options, or which works differently depending on options
which aren't specifically configuring that thing, makes Emacs more of a
tangled mess.  (Not that I'm saying it already is such a mess, but we
want to avoid making it so.)

> > The issue you consider "irrelevant" is actually quite relevant,

> I didn't say that support for use of t-m-mode OFF is
> irrelevant.  It's very relevant to Emacs.  But it's not
> relevant to the proposal of this thread, which has NO
> effect on that use case.  That's the point.  Please
> don't twist what's been said.  You're arguing against
> a straw man.

I think you're proposing to make some functions (have you said exactly
which ones, yet?) behave differently in t-m-m.  That _is_ of concern to
everybody, including those who run with t-m-m disabled.

> I've written carefully and clearly, from the outset, that
> this proposal has NO effect on that use case.  Yet you've
> insisted on pursuing it for supposedly ignoring, or even
> inflicting damage, on that case.  Please stop.  There's
> nothing relevant about insisting on needing to protect
> the t-m-mode OFF case against this proposal, as there's
> no threat to it.

There have been features in the past introduced as "optional" into Emacs,
followed some time later by pressure to conform with these "optional"
features.  You can't blame people for feeling uneasy about this proposal.

There might well have been an understanding in the past that t-m-m would
not be forced any further into Emacs than it is already.  If that is the
case, your proposal would be a violation of that understanding and an
example of the pressure I refer to above.

> > because commands that behave differently depending on whether
> > transient-mark-mode is on or off are a source of confusion and
> > frustration.  We shouldn't enlarge the number of such commands
> > willy-nilly.

> Every command that tests `use-region-p' and does something
> different depending on the value does something different
> depending on whether t-m-mode is on or off, simply because
> when it's off there's no notion of active/inactive region
> - there's just the region.

> t-m-mode's raison d'etre is to be able to do something
> when the user sees the selected text highlighted and not
> otherwise.  That distinction is what it's all about.

Yes.  But I think adding things into "something" to make it "something
else as well" needs to be justified case by case.

-- 
Alan Mackenzie (Nuremberg, Germany).



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 14:27       ` Drew Adams
@ 2021-05-23 15:13         ` Eli Zaretskii
  2021-05-23 17:50           ` Drew Adams
  0 siblings, 1 reply; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-23 15:13 UTC (permalink / raw)
  To: Drew Adams; +Cc: monnier, emacs-devel

> From: Drew Adams <drew.adams@oracle.com>
> CC: "monnier@iro.umontreal.ca" <monnier@iro.umontreal.ca>,
>         "emacs-devel@gnu.org" <emacs-devel@gnu.org>
> Date: Sun, 23 May 2021 14:27:29 +0000
> Accept-Language: en-US
> 
> > > `transient-mark-mode' being on is the common case now.
> > 
> > That is your personal interpretation, but it is not true.
> 
> Can you show evidence that it's _not true_, or is that
> just  "your personal interpretation"?

You are now down to distorting what I write by removing parts of
whatever I respond to?



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 15:12             ` Alan Mackenzie
@ 2021-05-23 17:48               ` Drew Adams
  2021-05-23 18:44               ` T.V Raman
  1 sibling, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23 17:48 UTC (permalink / raw)
  To: Alan Mackenzie
  Cc: Eli Zaretskii, theophilusx@gmail.com, monnier@iro.umontreal.ca,
	emacs-devel@gnu.org

> > > > the proposed change has no effect on users who disable
> > > > `transient-mark-mode'.  They continue to have "full
> > > > support".
> 
> First of all, I haven't followed this thread in all its
> details, so far.

It should be enough to read the first message, the
proposal, which hasn't changed.

All the rest, except for Clement's pointing out what
the proposal actually says, has been distraction, if
not diversion.

> That said, I think your above point is a little naive.  I also have
> transient-mark-mode disabled, I run with "GUI disabled", and run with
> "minibuffer-only frames disabled".

Then the proposal is irrelevant to your use of Emacs.
It wouldn't affect your use in any way.  It has NO
effect when t-m-m is off, and it has no effect on
Lisp code that invokes a command non-interactively.

> I am very wary of changes which balkanise Emacs.

Please, let's not use hyperbole.  Nothing I suggested
balkanizes Emacs in any way.

> Every change which only works with some options, or which works
> differently depending on options which aren't specifically configuring
> that thing, makes Emacs more of a tangled mess.  (Not that I'm saying
> it already is such a mess, but we want to avoid making it so.)

I don't think anything I've proposed does _anything_
like that.

> I think you're proposing to make some functions (have you
> said exactly which ones, yet?)...

No, I haven't.  That remains to be decided, and IMO users
could be able themselves to decide that, if they want.
But I expect that a defvar (not a defcustom) is all that's
called for, and that few users would bother to change the
value.

The commands that motivated the idea were `upcase-region',
`downcase-region', and `capitalize-region', in case that
helps.

A user pointed out that large parts of his file got changed
to lowercase somehow, and he had no idea how/when/why that
happened.  I guessed that maybe he hit `C-x C-l' by accident,
and the inactive region was thus down-cased.

I have no idea if that was the real cause of his problem,
but it's easy enough to fall into that gotcha, IMO.  And
the text that gets modified can even be off-screen, so you
might not notice it right away.

[You might not judge that to be a gotcha, because you turn
t-m-m OFF.  But for the many users who leave it ON, the
gotcha is a real possibility.  They're used to _seeing_
the region of text that will be acted on stand out, as a
highlighted selection.]

Essentially, this is about commands that act on the region
and do not check whether it is active, that is, that act on
it even when t-m-m is enabled and the region is inactive.

Just which commands in that category should be under user
control this way is up for grabs.  Certainly there are
over 100 such commands.  MOST commands that act on the
region do not check whether it is inactive (in t-m-mode,
which is the only time "active/inactive" has any meaning).
The effect of many of them is pretty benign, however.

I have _not_ proposed that _any_ such commands be changed
to check whether the region is active and, if not, to do
nothing to it.  That's a separate, case-by-case question.
Maybe _some_ such commands should check `region-active-p'
or `use-region-p'.  But maybe _none_ of them should.  Not
the question at hand.  I'm not trying to extend t-m-m, as
you fear.

And in case someone's not aware, those two predicates
return nil whenever `transient-mark-mode' is OFF.  They're
used to decide what to do when that mode is ON, but they
generally have the effect of using the region _only_ when
t-m-mode is on (and the region is active).

But _if_ a command were changed to start checking for an
active region, it _could_ choose to do so only when t-m-m
is ON, so as not to affect the case when it's OFF, i.e.,
not to deprive the region from being acted on when it's
OFF.  Why not, in some cases?

E.g., instead of using those predicates, which return nil
when t-m-m is OFF, it could use a predicate that returns
`t' when t-m-m is OFF and only _otherwise_ checks whether
the region is active etc.

 (defun a-different-use-region-p ()
   "Return non-nil if the region is usable.
 It's always usable if `transient-mark-mode' is off.
 If on, it's usable when `use-region-p' returns non-nil."
   (or (not transient-mark-mode)  (use-region-p)))

You should maybe like such a consideration, no?
Those who've introduced `use-region-p' here and there
have essentially removed use of the region for the
given command, when t-m-m is off.  Why?  (But probably
more commonly, before introducing that, the command
had no use of the region, so nothing was taken away.)

Consider `m' in Dired.  When t-m-m is ON, `m' marks
all files in the active region (and just the file of
the current line if the region is inactive).  But
when t-m-m is OFF, `m' always marks only the file of
the current line.  Should it let you mark all files in
the region?  Dunno - maybe, maybe not, but you get the
point - why let only t-m-m users be able to act on the
files in the region here?

(This point is irrelevant to the proposal.  I mention
it only to suggest that I'm not encroaching on the use
of t-m-m being OFF.  In fact, I expect that users with
it OFF might be unnecessarily missing some features
that have been added and that affect only the active
region.  But I'm not proposing that t-m-m OFF should
encroach either.)

> [make some functions] behave differently in t-m-m.
> That _is_ of concern to everybody, including those who
> run with t-m-m disabled.

Of course anyone can be interested (or "concerned").  But
those who disable t-m-m need not be concerned about their
_own use_, i.e., with t-m-m disabled.  That's all I've
said, in response to multiple harangues about negatively
affecting such no-t-m-m use.

Regardless of one's own use case, yes, the proposal can
be of interest to anyone.  It's about Emacs behavior with
t-m-m ON and with an inactive region.  Ideas about what
should happen in _that_ case?  That's all that's relevant
here.

The proposal simply says that we'd give users an option,
to specify the behavior in that case for some commands.

> There have been features in the past introduced as "optional" into
> Emacs, followed some time later by pressure to conform with these
> "optional" features.  You can't blame people for feeling uneasy
> about this proposal.

I've only asked that people actually respond to what was
proposed, and not to some (repeated...) straw man about
screwing with the behavior when t-m-m is off.

> There might well have been an understanding in the past that
> t-m-m would not be forced any further into Emacs than it is
> already.  If that is the case, your proposal would be a
> violation of that understanding and an example of the
> pressure I refer to above.

This is incredible.  What do I have to say, to convince you
that this doesn't change at all the possibility of t-m-m
being on or off.  There's no forcing of t-m-m on anyone or
on Emacs.  There's no change to t-m-m mode at all.

> > t-m-mode's raison d'etre is to be able to do something
> > when the user sees the selected text highlighted and not
> > otherwise.  That distinction is what it's all about.
> 
> Yes.  But I think adding things into "something" to make it
> "something else as well" needs to be justified case by case.

Again, there's no proposal to add ANYTHING to (or subtract
anything from) t-m-m.  There's no proposal to increase (or
decrease) the scope of t-m-m.

All that's proposed is to give users an option to define,
for some set of commands that currently affect the inactive
region in t-m-mode, whether they should continue to do that,
and if not, what they should do (error, no-op, or act on
confirmation).




^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 15:13         ` Eli Zaretskii
@ 2021-05-23 17:50           ` Drew Adams
  2021-05-23 18:08             ` Eli Zaretskii
  0 siblings, 1 reply; 36+ messages in thread
From: Drew Adams @ 2021-05-23 17:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org

> > > > `transient-mark-mode' being on is the common case now.
> > >
> > > That is your personal interpretation, but it is not true.
> >
> > Can you show evidence that it's _not true_, or is that
> > just  "your personal interpretation"?
> 
> You are now down to distorting what I write by removing
> parts of whatever I respond to?

Oh, please, stop the ad hominem.

Did you instead mean that the "personal interpretation"
which is "not true", was the second line I wrote, not
the first?  Here are the lines:

  > `transient-mark-mode' being on is the common case now.
  > Some commands haven't awakened to see that's the case.

I had to guess what it was you were claiming was personal
and untrue, and I spoke to that.  Apparently I guessed
wrong; sorry.  I thought you were trying to argue that
t-m-m ON is not so common.  Mea culpa.

If you meant the second line, then yes, it's a personal
opinion, and there's really no true or false possible.

By that second line, I meant that there are many commands
that don't take t-m-m into account.  When the mode is ON
they don't do anything different from when it's OFF.  And
when it's ON they don't make a difference for whether the
region is active or is empty.

Many commands predate the existence of t-m-m, let alone
its being turned ON by default.  Would you argue that
there are _no_ such commands that could benefit from
considering the t-m-m ON case?  I, yes, suggested that
"some" might benefit.  A personal opinion, yes.  There's
no true or false here.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 17:50           ` Drew Adams
@ 2021-05-23 18:08             ` Eli Zaretskii
  2021-05-23 19:22               ` Drew Adams
  0 siblings, 1 reply; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-23 18:08 UTC (permalink / raw)
  To: Drew Adams; +Cc: monnier, emacs-devel

> From: Drew Adams <drew.adams@oracle.com>
> CC: "monnier@iro.umontreal.ca" <monnier@iro.umontreal.ca>,
>         "emacs-devel@gnu.org" <emacs-devel@gnu.org>
> Date: Sun, 23 May 2021 17:50:39 +0000
> 
> By that second line, I meant that there are many commands
> that don't take t-m-m into account.

And rightfully so.  At least most of them.  To say that they do that
because they haven't "awakened" to transient-mark-mode is a
misrepresentation that hints at the Emacs developers' being obtuse or
worse.  You have no basis for such accusations, so don't.

> Would you argue that there are _no_ such commands that could benefit
> from considering the t-m-m ON case?

That's a far cry from what you actually wrote, to what I responded.  I
will take this as an apology.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 15:12             ` Alan Mackenzie
  2021-05-23 17:48               ` Drew Adams
@ 2021-05-23 18:44               ` T.V Raman
  1 sibling, 0 replies; 36+ messages in thread
From: T.V Raman @ 2021-05-23 18:44 UTC (permalink / raw)
  To: Alan Mackenzie
  Cc: Drew Adams, Eli Zaretskii, theophilusx@gmail.com,
	monnier@iro.umontreal.ca, emacs-devel@gnu.org

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=gb18030, Size: 3939 bytes --]

Alan Mackenzie <acm@muc.de> writes:


Douglas Adams in HHG (a source of universal wisdom from my perspective):
If someone were to explain how the universe works, it'll immediately
disappear and be replaced by one that is even more inexplicable.

There are some who believe this has already happened.


> Hello, Drew.
>
> On Sun, May 23, 2021 at 14:28:35 +0000, Drew Adams wrote:
>> > > > Indeed, it is important to keep full support for configs 
>> > > > where `transient-mark-mode` is disabled.  Not only many 
>> > > > users prefer such a config, but as you mention, there are 
>> > > > also cases where such a config is not just a question of 
>> > > > taste.
>
>> > > Yes, and this is irrelevant to this thread, as the
>> > >                             ^^^^^^^^^^^^^^
>> > > proposed change has no effect on users who disable
>> > > `transient-mark-mode'.  They continue to have "full
>> > > support".
>
> First of all, I haven't followed this thread in all its details, so far.
> That said, I think your above point is a little naive.  I also have
> transient-mark-mode disabled, I run with "GUI disabled", and run with
> "minibuffer-only frames disabled".
>
> I am very wary of changes which balkanise Emacs.  Every change which only
> works with some options, or which works differently depending on options
> which aren't specifically configuring that thing, makes Emacs more of a
> tangled mess.  (Not that I'm saying it already is such a mess, but we
> want to avoid making it so.)
>
>> > The issue you consider "irrelevant" is actually quite relevant,
>
>> I didn't say that support for use of t-m-mode OFF is
>> irrelevant.  It's very relevant to Emacs.  But it's not
>> relevant to the proposal of this thread, which has NO
>> effect on that use case.  That's the point.  Please
>> don't twist what's been said.  You're arguing against
>> a straw man.
>
> I think you're proposing to make some functions (have you said exactly
> which ones, yet?) behave differently in t-m-m.  That _is_ of concern to
> everybody, including those who run with t-m-m disabled.
>
>> I've written carefully and clearly, from the outset, that
>> this proposal has NO effect on that use case.  Yet you've
>> insisted on pursuing it for supposedly ignoring, or even
>> inflicting damage, on that case.  Please stop.  There's
>> nothing relevant about insisting on needing to protect
>> the t-m-mode OFF case against this proposal, as there's
>> no threat to it.
>
> There have been features in the past introduced as "optional" into Emacs,
> followed some time later by pressure to conform with these "optional"
> features.  You can't blame people for feeling uneasy about this proposal.
>
> There might well have been an understanding in the past that t-m-m would
> not be forced any further into Emacs than it is already.  If that is the
> case, your proposal would be a violation of that understanding and an
> example of the pressure I refer to above.
>
>> > because commands that behave differently depending on whether
>> > transient-mark-mode is on or off are a source of confusion and
>> > frustration.  We shouldn't enlarge the number of such commands
>> > willy-nilly.
>
>> Every command that tests `use-region-p' and does something
>> different depending on the value does something different
>> depending on whether t-m-mode is on or off, simply because
>> when it's off there's no notion of active/inactive region
>> - there's just the region.
>
>> t-m-mode's raison d'etre is to be able to do something
>> when the user sees the selected text highlighted and not
>> otherwise.  That distinction is what it's all about.
>
> Yes.  But I think adding things into "something" to make it "something
> else as well" needs to be justified case by case.

-- 

Thanks,

--Raman(I Search, I Find, I Misplace, I Research)
7©4 Id: kg:/m/0285kf1  •0Ü8



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 18:08             ` Eli Zaretskii
@ 2021-05-23 19:22               ` Drew Adams
  2021-05-23 19:42                 ` Eli Zaretskii
  0 siblings, 1 reply; 36+ messages in thread
From: Drew Adams @ 2021-05-23 19:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org

> > Would you argue that there are _no_ such commands that
> > could benefit from considering the t-m-m ON case?
> 
> That's a far cry from what you actually wrote, to
> what I responded.

No, it is what I actually wrote.  I suggested that
"some" (SOME) such commands "might" (MIGHT) "benefit".
And after your reactions I repeated that I suggested
exactly that, to make it crystal clear.

The opposite of accepting that SOME such commands
might benefit is to claim that NONE could benefit.

You haven't actually answered the question.  Is that
what you think: that none could possibly benefit from
such consideration?  If not, then you must agree with
me that _some_ could.

You often manage to take things personally, it seems.
Saying that some _commands_ haven't yet awakened to
handle taking t-m-m into account is only saying that
they haven't been updated to take t-m-m into account.

It says nothing about "the Emacs developers", and
certainly not that they are "obtuse or worse".  Is it
possible to point to areas of possible improvement
for Emacs without being accused of attacking you?

There are many such commands.  Maybe there are only
a few that, upon consideration, we would want to
update.  Who knows, without considering?  Anyway,
changing definitions of individual commands is, as
I said, outside the proposal of this thread.

The connection to this thread is that there are
commands that might well be doing something less
than ideal in t-m-m with an inactive region, and
the proposal is about a general way to handle some
of that.

(And to be clear, Alan, even actually updating a
command definition to take t-m-m into account
doesn't imply changing any behavior for when t-m-m
is OFF.)




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 19:22               ` Drew Adams
@ 2021-05-23 19:42                 ` Eli Zaretskii
  2021-05-23 20:07                   ` Drew Adams
  0 siblings, 1 reply; 36+ messages in thread
From: Eli Zaretskii @ 2021-05-23 19:42 UTC (permalink / raw)
  To: Drew Adams; +Cc: monnier, emacs-devel

> From: Drew Adams <drew.adams@oracle.com>
> Date: Sun, 23 May 2021 19:22:06 +0000
> Cc: "monnier@iro.umontreal.ca" <monnier@iro.umontreal.ca>,
>  "emacs-devel@gnu.org" <emacs-devel@gnu.org>
> 
> No, it is what I actually wrote.  I suggested that
> "some" (SOME) such commands "might" (MIGHT) "benefit".

No, that's what you say now.

> Saying that some _commands_ haven't yet awakened to
> handle taking t-m-m into account is only saying that
> they haven't been updated to take t-m-m into account.
> 
> It says nothing about "the Emacs developers", and
> certainly not that they are "obtuse or worse".  Is it
> possible to point to areas of possible improvement
> for Emacs without being accused of attacking you?

Depends on the words you use.  May I suggest that you think about your
words some more next time?  You have been pointed out by several
people already that your style and attitude make it very unpleasant to
have useful conversations with you.

> There are many such commands.  Maybe there are only
> a few that, upon consideration, we would want to
> update.  Who knows, without considering?

Here we go again: you assume, almost by default, that no one has
considered that.  And of course, your opinion that clearly shows is
that if we DID consider it, we would have changed MANY commands.

> The connection to this thread is that there are
> commands that might well be doing something less
> than ideal in t-m-m with an inactive region, and
> the proposal is about a general way to handle some
> of that.

If you know about such commands (besides the two you mentioned), name
them.  Otherwise such vague claims aren't useful.



^ permalink raw reply	[flat|nested] 36+ messages in thread

* RE: [External] : Re: Change default behavior of some commands that act on region?
  2021-05-23 19:42                 ` Eli Zaretskii
@ 2021-05-23 20:07                   ` Drew Adams
  0 siblings, 0 replies; 36+ messages in thread
From: Drew Adams @ 2021-05-23 20:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org

Nevermind.  I give up.




^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2021-05-23 20:07 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-21 20:58 Change default behavior of some commands that act on region? Drew Adams
2021-05-22  6:04 ` Eli Zaretskii
2021-05-22  6:19   ` Clément Pit-Claudel
2021-05-22  6:36     ` Emanuel Berg via Emacs development discussions.
2021-05-22  7:00       ` Clément Pit-Claudel
2021-05-22  6:45     ` Eli Zaretskii
2021-05-22  7:00       ` Clément Pit-Claudel
2021-05-22  7:23         ` Eli Zaretskii
2021-05-23  0:23         ` [External] : " Drew Adams
2021-05-23  0:23   ` Drew Adams
2021-05-22 14:03 ` Stefan Monnier
2021-05-22 14:14   ` Eli Zaretskii
2021-05-22 14:33     ` Stefan Monnier
2021-05-23  0:25     ` [External] : " Drew Adams
2021-05-22 19:26   ` Drew Adams
2021-05-22 21:16     ` Stefan Monnier
2021-05-23  0:25       ` Drew Adams
2021-05-23  6:39     ` Eli Zaretskii
2021-05-23 14:27       ` Drew Adams
2021-05-23 15:13         ` Eli Zaretskii
2021-05-23 17:50           ` Drew Adams
2021-05-23 18:08             ` Eli Zaretskii
2021-05-23 19:22               ` Drew Adams
2021-05-23 19:42                 ` Eli Zaretskii
2021-05-23 20:07                   ` Drew Adams
2021-05-22 23:07   ` Tim Cross
2021-05-23  0:24     ` [External] : " Drew Adams
2021-05-23  0:55     ` Stefan Monnier
2021-05-23  1:37       ` [External] : " Drew Adams
2021-05-23  7:14         ` Eli Zaretskii
2021-05-23 14:28           ` Drew Adams
2021-05-23 15:12             ` Alan Mackenzie
2021-05-23 17:48               ` Drew Adams
2021-05-23 18:44               ` T.V Raman
2021-05-22 20:48 ` Juri Linkov
2021-05-23  0:24   ` [External] : " Drew Adams

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).