@@ -202,7 +202,8 @@ If POS is nil then it won't moves."
202202 (let ((is-fild-p t ))
203203 (cond ((file-exists-p fn) (find-file fn))
204204 ((not ivy-file-preview-details) (setq is-fild-p nil ))
205- (t (switch-to-buffer fn)))
205+ ((find-buffer-visiting fn) (switch-to-buffer fn))
206+ (t (setq is-fild-p nil )))
206207 (when is-fild-p
207208 (setq ivy-file-preview--selected-file fn)
208209 (cond ((consp pos)
@@ -213,7 +214,8 @@ If POS is nil then it won't moves."
213214 (goto-char (1+ pos))
214215 (recenter ))
215216 ((not pos) (goto-char (point-min )))
216- (t (error " Invalid position details: %s " pos))))))
217+ (t (error " Invalid position details: %s " pos))))
218+ is-fild-p))
217219
218220(defun ivy-file-preview--do-preview (fn pos )
219221 " Do file preview execution.
@@ -223,22 +225,23 @@ FN is the file path. POS can either be one of the following type:
223225 * nil : Just open it without moving the point."
224226 (save-selected-window
225227 (with-selected-window minibuffer-scroll-window
226- (when (and ivy-file-preview-preview-only
227- (not (find-buffer-visiting fn))
228- (buffer-file-name ))
229- (push fn ivy-file-preview--preview-files))
230- (unless (string= ivy-file-preview--selected-file fn)
231- (ivy-file-preview--delete-overlays))
232- (ivy-file-preview--open-file fn pos)
233- (when (and ivy-file-preview-overlay-p ivy-file-preview-details)
234- (if (and (string= ivy-file-preview--ivy-text ivy-text)
235- ivy-file-preview--current-overlay)
236- (ivy-file-preview--swap-current-overlay)
237- (ivy-file-preview--safe-kill-timer ivy-file-preview--overlay-timer)
238- (setq ivy-file-preview--overlay-timer
239- (run-with-timer ivy-file-preview-overlay-delay-time nil
240- #'ivy-file-preview--delay-make-overlays )))
241- (setq ivy-file-preview--ivy-text ivy-text)))))
228+ (let (valid-file-p)
229+ (when (and ivy-file-preview-preview-only
230+ (not (find-buffer-visiting fn))
231+ (buffer-file-name ))
232+ (push fn ivy-file-preview--preview-files))
233+ (unless (string= ivy-file-preview--selected-file fn)
234+ (ivy-file-preview--delete-overlays))
235+ (setq valid-file-p (ivy-file-preview--open-file fn pos))
236+ (when (and ivy-file-preview-overlay-p ivy-file-preview-details valid-file-p)
237+ (if (and (string= ivy-file-preview--ivy-text ivy-text)
238+ ivy-file-preview--current-overlay)
239+ (ivy-file-preview--swap-current-overlay)
240+ (ivy-file-preview--safe-kill-timer ivy-file-preview--overlay-timer)
241+ (setq ivy-file-preview--overlay-timer
242+ (run-with-timer ivy-file-preview-overlay-delay-time nil
243+ #'ivy-file-preview--delay-make-overlays )))
244+ (setq ivy-file-preview--ivy-text ivy-text))))))
242245
243246(defun ivy-file-preview--after-select (&rest _ )
244247 " Execution after selection."
0 commit comments