Function: sesman-goto

sesman-goto is an interactive and byte-compiled function defined in sesman-browser.el.

Signature

(sesman-goto &optional NO-SWITCH)

Documentation

Go to most relevant buffer for session at point.

If NO-SWITCH is non-nil, only display the buffer.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/sesman-20240417.1723/sesman-browser.el
;;; Display

(defun sesman-goto (&optional no-switch)
  "Go to most relevant buffer for session at point.
If NO-SWITCH is non-nil, only display the buffer."
  (interactive "P")
  (let ((object (get-text-property (point) :sesman-object)))
    (if (and object (bufferp object))
        (if no-switch
            (display-buffer object)
          (pop-to-buffer object))
      (let* ((session (sesman-browser-get 'session))
             (info (sesman-session-info (sesman--system) session))
             (buffers (or (plist-get info :buffers)
                          (let ((objects (plist-get info :objects)))
                            (seq-filter #'bufferp objects)))))
        (if buffers
            (let ((most-recent-buf (seq-find (lambda (b)
                                               (member b buffers))
                                             (buffer-list))))
              (if no-switch
                  (display-buffer most-recent-buf)
                (pop-to-buffer most-recent-buf)))
          (user-error "Cannot jump to session %s; it doesn't contain any buffers" (car session)))))))