Subject: 24.2.90; scroll-conservatively is too coarse a setting

From: Dmitry Gutov <[email-masked]>
Date: Mon, 10 Dec 2012 07:29:40 +0400

I think this value is used in contexts that are different enough to
behave differently in this respect.

Examples:
1) I want help-button-action to bring me to the function's definition,
and I generally want in the middle of the screen. Same for imenu, etc.
2) I really don't want to see empty space after the contents in the
compilation window. But as much as half of the window may be empty right
after compilation because of the point recentering.
3) Ideally, if I move around with next/previous-line, I don't want
sudden jumps and recenterings. Same thing with beginning/end-of-defun
(so setting scroll-conservatively to a value larger than 0 is not a real
solution).

Thoughts?

So far I'm doing this for the compilation buffer:

(defun compile-scroll-eob (buffer _status)
  (let ((win (get-buffer-window buffer))
        (current (selected-window)))
    (when win
      (select-window win)
      (with-current-buffer buffer
        (when (> (line-number-at-pos (point-max)) (window-height))
          (goto-char (point-max))
          (recenter (window-height))))
      (select-window current))))

(add-to-list 'compilation-finish-functions 'compile-scroll-eob)

I think that behavior should be the default, though.

In GNU Emacs 24.2.90.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.6.0)
 of 2012-11-26 on vbx
Bzr revision: 110959 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11300000
System Description:	Ubuntu 12.10