Function: treemacs--maybe-recenter
treemacs--maybe-recenter is a byte-compiled function defined in
treemacs-rendering.el.
Signature
(treemacs--maybe-recenter WHEN &optional NEW-LINES)
Documentation
Potentially recenter based on value of WHEN.
WHEN can take the following values:
* always: Recenter indiscriminately,
* on-distance: Recentering depends on the distance between point and the
window top/bottom being smaller than treemacs-recenter-distance.
* on-visibility: Special case for projects: recentering depends on whether the
newly rendered number of NEW-LINES fits the view.
Source Code
;; Defined in ~/.emacs.d/elpa/treemacs-20251226.1307/treemacs-rendering.el
(defun treemacs--maybe-recenter (when &optional new-lines)
"Potentially recenter based on value of WHEN.
WHEN can take the following values:
* always: Recenter indiscriminately,
* on-distance: Recentering depends on the distance between `point' and the
window top/bottom being smaller than `treemacs-recenter-distance'.
* on-visibility: Special case for projects: recentering depends on whether the
newly rendered number of NEW-LINES fits the view."
(declare (indent 1))
(when (and (null treemacs--no-recenter)
(treemacs-is-treemacs-window? (selected-window)))
(let* ((current-line (float (treemacs--current-screen-line)))
(all-lines (float (treemacs--lines-in-window))))
(pcase when
('always (recenter))
('on-visibility
(-let [lines-left (- all-lines current-line)]
(when (> new-lines lines-left)
;; if possible recenter only as much as is needed to bring all new lines
;; into view
(recenter (max 0 (round (- current-line (- new-lines lines-left))))))))
('on-distance
(let* ((distance-from-top (/ current-line all-lines))
(distance-from-bottom (- 1.0 distance-from-top)))
(when (or (> treemacs-recenter-distance distance-from-top)
(> treemacs-recenter-distance distance-from-bottom))
(recenter))))))))