unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Nicolas Richard <youngfrog@members.fsf.org>
Cc: "21649@debbugs.gnu.org" <21649@debbugs.gnu.org>
Subject: bug#21649: 25.0.50; [PATCH] Allow M-x man to reuse an existing window
Date: Fri, 23 Oct 2015 10:01:48 +0200	[thread overview]
Message-ID: <5629E96C.3090307@gmx.at> (raw)
In-Reply-To: <86bnbqd80z.fsf@members.fsf.org>

 > Here's most of the patch :
 >
 > +      (`manly
 > +       (and (frame-live-p saved-frame)
 > +            (select-frame saved-frame))
 > +       (if-let ((window (seq-some-p
 > +                         (lambda (window)
 > +                           (with-current-buffer (window-buffer window)
 > +                             (derived-mode-p 'Man-mode)))
 > +                         (window-list))))
 > +           (set-window-buffer window man-buffer)
 > +         (display-buffer man-buffer)))
 >
 >> How about writing an action function, say ‘man-display-buffer-my-way’, and
 >> adding a clause like
 >>
 >>        (`my-way
 >>         (and (frame-live-p saved-frame)
 >>              (select-frame saved-frame))
 >>         (display-buffer man-buffer
 >>         '((man-display-buffer-my-way ...)
 >>         . nil)))
 >
 > Sure, why not!

Maybe we could add something like ‘display-buffer-reuse-mode-window’ to
window.el.  In that case I'd proceed as follows:

(1) The frame(s) to scan for a suitable window should be determined by a
‘reusable-frames’ entry just as in ‘display-buffer-reuse-window’.

(2) Allow to specify the desired (parent) mode via an ALIST ‘mode’
entry.  As value we could allow a single mode or a list of modes.  Then
a window showing a buffer in the same mode as the buffer we want to
display should maybe given preference to a window showing a buffer in
another mode, derived from the same parent mode.  If a same-mode-window
exists on another and a derived-mode-window exists on the selected
frame, one of these should be given preference consistently.

(3) Not use functions like ‘if-let’ and ‘seq-some-p’.  window.el is
preloaded and if not utterly necessary I'd prefer not loading subr-x.el
there.  BTW, I have no idea from where you get ‘seq-some-p’.  Did you
compile your patched man.el with emacs -Q?

WDYT?

martin






  reply	other threads:[~2015-10-23  8:01 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-08 15:54 bug#21649: 25.0.50; [PATCH] Allow M-x man to reuse an existing window Nicolas Richard
2015-10-09 14:37 ` Kaushal Modi
     [not found]   ` <86r3l09t3u.fsf@members.fsf.org>
2015-10-12 15:06     ` Kaushal Modi
2015-10-13 22:10       ` Nicolas Richard
2015-10-13 22:19         ` Kaushal Modi
2015-10-14  8:49           ` martin rudalics
     [not found]             ` <86wpufc8n8.fsf@members.fsf.org>
2015-10-22 15:34               ` martin rudalics
2015-10-22 19:21                 ` Nicolas Richard
2015-10-23  8:01                   ` martin rudalics [this message]
2016-03-01 15:49                     ` Nicolas Richard
2016-03-01 17:04                       ` martin rudalics
2016-03-10  9:55                         ` Nicolas Richard
2016-03-10 10:32                           ` martin rudalics
2016-03-10 13:49                             ` Nicolas Richard
2015-10-27 11:30 ` Nicolas Richard
2015-10-28  9:55   ` martin rudalics

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=5629E96C.3090307@gmx.at \
    --to=rudalics@gmx.at \
    --cc=21649@debbugs.gnu.org \
    --cc=youngfrog@members.fsf.org \
    /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).