Subject: bug#48916: 28.0.50; allow windmove to select windows with the 'no-other-window parameter

From: Eli Zaretskii <[email-masked]>
Date: Tue, 08 Jun 2021 14:44:14 +0300

> From: pillule <[email-masked]>
> Date: Tue, 08 Jun 2021 12:09:21 +0200
> 
> One may want to customize its `display-buffer-alist' carefully to 
> apply the 'no-other-window parameter to eg side windows so they 
> are not selected by the `other-window' command and to create 
> custom functions of the family (eg creating a 
> `find-file-in-other-window' that does not select windows with the 
> no-other-window parameter)
> 
> Unfortunately by doing so, we actually limit the use of the 
> windmove commands since `windmove-find-other-window' always ignore 
> windows with this parameter.
> It is not a fatality since `window-in-direction' can receive an 
> argument to choose if we want to ignore this parameter or not.
> 
> This draft implements an user option to let the user choose that 
> behavior.

Thanks.  I don't use windmove, so I will let others comment.  But
please allow me a few minor nits:

> * lisp/windmove.el
>    (windmove-ignore-no-other-window): add this new user option
>    (windmove-find-other-window): uses windmove-ignore-no-other-window
> to choose whether windmove can access to the window with the
> 'no-other-window property.

This isn't formatted accoring to our rules.  In particular, each
sentence after the colon should begin with a capital letter and end
with a period.  See CONTRIBUTE for more details (and I suggest to use
Emacs commands for writing log messages, as they will take care of
some routine parts of the formatting for you).

> +(defcustom windmove-ignore-no-other-window nil

This name is not the best one.  For starters, "ignore-no" is a kind of
double negation, which makes it harder to understand and remember.
Can you come up with a better description of what exactly is ignored
here?

> +  "Whether the windmove commands are allowed to target all type of windows,

The first line of a doc string should be a complete sentence (it is)
and end with a period.

> +If this variable is set to t, `windmove-find-other-window--side' and
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
"If non-nil, ..."

> +subsequently all interactive windmove commandswill ignore the
                                         ^^^^^^^^^^^^
A typo.

> +no-other-window parameter."

If you reference this parameter, I think you should say that it's a
parameter to be applied by display-buffer-alist's actions.

> +  :type 'boolean
> +  :group 'windmove)

New defcustoms should have a :version tag.  Also, I believe we don't
like redundant :group tags, such as the one here.