emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [External] : Re: fido-vertical bindings


From: Drew Adams
Subject: RE: [External] : Re: fido-vertical bindings
Date: Fri, 20 Aug 2021 15:41:03 +0000

> icomplete-separator is overridden by all the vertical modes...
> so there is a problem unrespecting the user customs any way.
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FWIW (OT) -

I disagree with this black-&-white Emacs guideline, at
least if interpreted in a black-&-white, all-or-nothing
way.

The idea that code should not override (e.g. bind) a user
option is a sane one, as a general heuristic.  A user
preference needs to be respected.

On the other hand, it's not (should not be) the case that
no command should ever bind an option.  Use of a command
is itself optional.

If the purpose of the command requires binding an option,
AND if the doc for that command makes clear what happens
(e.g. the user's option value doesn't apply during
invocation of the command, but instead the behavior is
XYZ), then such binding can be appropriate.

It's about using common sense, keeping the user front
and center.  It's about communicating what the command
does clearly.  Then users can choose and have their
choices respected.  User choice is not only what option
value to set.  It can also be whether to use a command
that uses a different value of the option.
___

[Let's not forget that Customize itself offers commands
that let users change option values.  The purpose of
such commands involves possibly changing the value.
Interpreting the heuristic blindly would mean there
couldn't be any commands that let you set/change an
option value.  And yes, a library can define such
commands just as much as vanilla Emacs can do so.]
___

I'm not saying anything about Fido behavior here;
just a general opinion.  I dislike statements that a
command binding or ignoring an option value is
necessarily misguided or disrespectful of users.

Everything depends on what the command is designed to
do, AND whether its purpose is clearly doc'd for
users so they can choose without ignorance of the
behavior wrt the option.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]