[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Adding olivetti to GNU ELPA
From: |
Joost Kremers |
Subject: |
Re: Adding olivetti to GNU ELPA |
Date: |
Tue, 14 May 2019 18:05:15 +0200 |
User-agent: |
mu4e 1.3.2; emacs 26.2 |
On Tue, May 14 2019, Paul W. Rankin wrote:
(cond ((<= emacs-major-version 24)
(add-hook 'window-configuration-change-hook
'olivetti--??? t t))
((<= emacs-major-version 26)
(add-hook 'window-configuration-change-hook
'olivetti--??? t t)
(add-hook 'window-size-change-functions
'olivetti--??? t t))
((<= 27 emacs-major-version)
(add-hook 'window-size-change-functions
'olivetti--??? t t)))
I have no idea if this helps (I'm not entirely sure if I correctly
understand the issues you're facing), but FWIW, this is what I do
in `visual-fill-column-mode`
<https://github.com/joostkremers/visual-fill-column>, which must
solve essentially the same problem:
```
(defun visual-fill-column-mode--enable ()
"Set up `visual-fill-column-mode' for the current buffer."
(add-hook 'window-configuration-change-hook
#'visual-fill-column--adjust-window 'append 'local)
(if (>= emacs-major-version 26)
(add-hook 'window-size-change-functions
#'visual-fill-column--adjust-frame 'append))
(visual-fill-column--adjust-window))
```
So I use `window-configuration-change-hook` in every Emacs version
and `window-size-change-functions` in Emacs >= 26. ISTR that it's
not possible to forego `window-configuration-change-hook` in Emacs
26, but I can't remember why...
I have at least one report of this working on Emacs 27, but I must
admit that I'm running Emacs 26 myself, so perhaps there are
problems this particular user doesn't care about.
`visual-fill-column--adjust-frame simply calls
`visual-fill-column--adjust-window` for every window on the
relevant frame. In Emacs 27, this function must be in the global
part of `window-size-change-functions`, because Emacs 27 changed
the way the local part is called. `visual-fill-column-mode` could
of course be adapted to use the local part of the hook, but there
are more hooks involved with window size/config changes in Emacs
27 and I haven't looked into which ones I should use.
`visual-fill-column--adjust-window` does the following:
```
(defun visual-fill-column--adjust-window ()
"Adjust the window margins and fringes."
;; Only run when we're really looking at a buffer that has
v-f-c-mode enabled. See #22.
(when (buffer-local-value 'visual-fill-column-mode
(window-buffer (selected-window)))
(set-window-fringes (get-buffer-window (current-buffer)) nil
nil visual-fill-column-fringes-outside-margins)
(if (>= emacs-major-version 25)
(set-window-parameter (get-buffer-window (current-buffer))
'split-window #'visual-fill-column-split-window))
(visual-fill-column--set-margins)))
```
So it has additional code for Emacs >= 25 to set the window
parameter `split-window` to `visual-fill-column-split-window`,
which unsets the margins before calling `split-window`.
In addition, there is a function
`visual-fill-column-split-window-sensibly`, which can be used as
the value of `split-window-preferred-function`. It handles virtual
splitting of windows with wide margins.
HTH
--
Joost Kremers
Life has its moments
- Re: Adding olivetti to GNU ELPA, (continued)
- Re: Adding olivetti to GNU ELPA, Eli Zaretskii, 2019/05/08
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/09
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/14
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/14
- Re: Adding olivetti to GNU ELPA, Stefan Monnier, 2019/05/14
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/15
- Re: Adding olivetti to GNU ELPA,
Joost Kremers <=
- Re: Adding olivetti to GNU ELPA, Stefan Monnier, 2019/05/14
- Re: Adding olivetti to GNU ELPA, Joost Kremers, 2019/05/14
- Re: Adding olivetti to GNU ELPA, Stefan Monnier, 2019/05/14
- Re: Adding olivetti to GNU ELPA, martin rudalics, 2019/05/20
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/20
- Re: Adding olivetti to GNU ELPA, martin rudalics, 2019/05/21
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/21
- Re: Adding olivetti to GNU ELPA, martin rudalics, 2019/05/21
- Re: Adding olivetti to GNU ELPA, Paul W. Rankin, 2019/05/21
- Re: Adding olivetti to GNU ELPA, martin rudalics, 2019/05/21