[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17453: Framework extending window functions for Follow Mode (etc.).
From: |
Juri Linkov |
Subject: |
bug#17453: Framework extending window functions for Follow Mode (etc.). |
Date: |
Thu, 12 Nov 2015 22:14:22 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (x86_64-pc-linux-gnu) |
>> Thanks, I'm looking at your changes, and also Cc'ing Martin in the hope
>> that Martin could review your window-related changes as well.
>
> Glimpsing on the window-related changes I think I have already said
> everything in this thread. Usurpating the term "group" in the sense
> that all windows belonging to a group have to show the same buffer seems
> overly restrictive but I don't want to continue the earlier discussion.
I agree that the cleanest way to add a new feature is not to change window
primitives, but to add it on the top of existing window primitives
by defining a new functional layer with a set of functions having a common
name prefix either 'window-group-' or 'windows-' (used by follow.el in some
places). Here are existing primitives and two variants of new functions:
(window-start &optional WINDOW)
(windows-start &optional WINDOW)
(window-group-start &optional WINDOW)
(set-window-start WINDOW POS &optional NOFORCE)
(set-windows-start WINDOW POS &optional NOFORCE)
(set-window-group-start WINDOW POS &optional NOFORCE)
(move-to-window-line COUNT)
(move-to-windows-line COUNT)
(move-to-window-group-line COUNT)
(pos-visible-in-window-p &optional POS WINDOW PARTIALLY)
(pos-visible-in-windows-p &optional POS WINDOW PARTIALLY)
(pos-visible-in-window-group-p &optional POS WINDOW PARTIALLY)
These new functions could be defined in a new core package with a name like
window-group.el or windows.el, or maybe added to the end of window.el,
and have no follow-specific code.
Then there is no need in a set of functions like window-start-group-function,
because one function should be enough for a package like follow.el
to declare an active group of windows via follow-all-followers,
or packages other than follow.el using window parameters.
Then window-group/windows functions should take care about all
aspects of handling multiple windows.
So e.g. new function follow-window-start will be window-group-start
taking only follow-all-followers from follow.el, etc.
This means that while adapting other packages to multi-window configurations,
instead of adding the 't' arg to core primitives, we need to add 's' (window ->
windows)
or '-group' to the names of the existing function calls.
The key point is not touching core primitives until we'll be able to
implement a proper display abstraction for window groups such as proposed
a while ago under the name "framelettes". This comment in follow.el also
gives a hint in this direction:
;; Almost like the real thing, except when the cursor ends up outside
;; the top or bottom... In our case however, we end up outside the
;; window and hence we are recentered. Should we let `recenter' handle
;; the point position we would never leave the selected window. To do
;; it ourselves we would need to do our own redisplay, which is easier
;; said than done. (Why didn't I do a real display abstraction from
;; the beginning?)
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/08
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/09
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/09
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/10
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/10
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/11
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/11
- bug#17453: Framework extending window functions for Follow Mode (etc.)., martin rudalics, 2015/11/12
- bug#17453: Framework extending window functions for Follow Mode (etc.).,
Juri Linkov <=
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/17
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/17
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/18
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/18
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/18
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/25
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/26
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/30
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Juri Linkov, 2015/11/30
- bug#17453: Framework extending window functions for Follow Mode (etc.)., Alan Mackenzie, 2015/11/12