Function: dirvish--find-entry

dirvish--find-entry is a natively compiled function defined in dirvish.el.

Signature

(dirvish--find-entry FIND-FN ENTRY)

Documentation

Find ENTRY using FIND-FN in current dirvish session.

FIND-FN can be one of find-file, find-alternate-file, find-file-other-window or find-file-other-frame.

Source Code

;; Defined in /nix/store/1gijwny2yx4fggrsb9l110h1ybs1gdk5-emacs-packages-deps/share/emacs/site-lisp/elpa/dirvish-20260725.1520/dirvish.el
(cl-defun dirvish--find-entry (find-fn entry)
  "Find ENTRY using FIND-FN in current dirvish session.
FIND-FN can be one of `find-file', `find-alternate-file',
`find-file-other-window' or `find-file-other-frame'."
  (let ((switch-to-buffer-preserve-window-point (null dired-auto-revert-buffer))
        (find-file-run-dired t) (dv (dirvish-curr))
        (dir? (file-directory-p entry)) (cur (current-buffer)))
    (and (run-hook-with-args-until-success
          'dirvish-find-entry-hook entry find-fn)
         (cl-return-from dirvish--find-entry))
    ;; forward requests from `find-dired'
    (unless dv (cl-return-from dirvish--find-entry (funcall find-fn entry)))
    (unless dir? (mapc #'dirvish--kill-buffer (dv-preview-buffers dv)))
    (when (and (dv-curr-layout dv) (eq find-fn 'find-file-other-window))
      (if dir? (dirvish-layout-toggle)
        (select-window (dv-preview-window dv))
        (cl-return-from dirvish--find-entry (find-file entry))))
    (when (and dir? (eq find-fn 'find-alternate-file))
      (dirvish-save-dedication (find-file entry))
      (with-current-buffer cur ; check if the buffer should be killed
        (and (bound-and-true-p server-buffer-clients)
             (cl-return-from dirvish--find-entry)))
      (cl-return-from dirvish--find-entry (dirvish--kill-buffer cur)))
    (if dir? (dirvish-save-dedication (funcall find-fn entry))
      (funcall (dv-open-file dv) dv find-fn entry))))