[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-preview b367550663 28/67: Rewrite how the timer i
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dired-preview b367550663 28/67: Rewrite how the timer is started |
Date: |
Sat, 8 Jul 2023 15:57:53 -0400 (EDT) |
branch: externals/dired-preview
commit b3675506632db37a51fec6bc4dcf31d5d6cf8d45
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Rewrite how the timer is started
This is the right place to put it. It does not block Emacs while
moving quickly between files. The old design would eagerly do
find-file on the file at point and only delay the 'display-buffer'
part.
---
dired-preview.el | 33 +++++++++++++++------------------
1 file changed, 15 insertions(+), 18 deletions(-)
diff --git a/dired-preview.el b/dired-preview.el
index b59dcd2dd5..d276374d7e 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -263,38 +263,35 @@ Only do it with the current major mode is Dired."
buffer
dired-preview-display-action-alist)))
-(defvar dired-preview--timer nil
- "Most recent timer object to display a preview.")
-
-(defun dired-preview--cancel-timer ()
- "Cancel `dired-preview--timer' if it is a timer object."
- (when (timerp dired-preview--timer)
- (cancel-timer dired-preview--timer)))
-
-(defun dired-preview--display-buffer-with-delay (buffer)
- "Display BUFFER with `dired-preview-delay'."
- (dired-preview--cancel-timer)
- (setq dired-preview--timer
- (run-with-idle-timer
- dired-preview-delay
- nil #'dired-preview--display-buffer buffer)))
-
(defun dired-preview-display-file ()
"Display preview of `dired-file-name-at-point' if appropriate.
Return buffer object of displayed buffer."
(if-let* ((file (dired-file-name-at-point))
(buffer (dired-preview--return-preview-buffer file)))
- (dired-preview--display-buffer-with-delay buffer)
+ (dired-preview--display-buffer buffer)
(dired-preview--close-previews)))
(defvar dired-preview-trigger-commands
'(dired-next-line dired-previous-line dired-mark dired-goto-file)
"List of Dired commands that trigger a preview.")
+(defvar dired-preview--timer nil
+ "Most recent timer object to display a preview.")
+
+(defun dired-preview--cancel-timer ()
+ "Cancel `dired-preview--timer' if it is a timer object."
+ (when (timerp dired-preview--timer)
+ (cancel-timer dired-preview--timer)))
+
(defun dired-preview-trigger ()
"Trigger display of file at point after `dired-preview-trigger-commands'."
(when (memq this-command dired-preview-trigger-commands)
- (dired-preview-display-file)))
+ (dired-preview--cancel-timer)
+ (setq dired-preview--timer
+ (run-with-idle-timer
+ dired-preview-delay
+ nil
+ #'dired-preview-display-file))))
(defun dired-preview-disable-preview ()
"Disable Dired preview."
- [elpa] externals/dired-preview a653299672 09/67: Do not preview already visible file, (continued)
- [elpa] externals/dired-preview a653299672 09/67: Do not preview already visible file, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 16a2e9e835 18/67: Fix test for current command in dired-preview-trigger, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 5ffcfb0c85 24/67: Tweak the format of the timer call, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview e2da14de12 30/67: Fix scope of action to close preview upon buffer switch, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 75f1b11e99 29/67: Add FIXME for the scope of dired-preview--close-previews-outside-dired, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 3f2588abb3 32/67: Make all preview state be handled by the trigger, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 49bea8f6d4 34/67: Delete windows, then kill buffers, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 070f02a1b0 42/67: Stop changing the mode-line-format, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 5338f5c1a7 26/67: Make commit 3ba4c3f more resilient, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview ec09d4b856 27/67: Fix how delayed-mode-hooks are handled, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview b367550663 28/67: Rewrite how the timer is started,
ELPA Syncer <=
- [elpa] externals/dired-preview c20af9c9eb 31/67: Fix how the window is set up and closed outside Dired, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 8c1c73716e 37/67: Tighten the event loop to avoid inconsistencies, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 18b607fc48 40/67: Simplify dired-preview-return-window-size, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 86e11c105b 41/67: Make dired-preview-display-file delete windows eagerly, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview ca176e11e4 36/67: Simplify dired-preview--run-mode-hooks, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview b3ef9a2595 43/67: Define predicate function to check for window parameter, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 11bb038063 47/67: Do not try to delete selected preview window, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 077f24db3c 45/67: Tweak how window size is calculated, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview f52ed4774c 48/67: Remove 'dedicated' parameter from selected window, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 29829a63c8 56/67: Refactor how parameters are set, ELPA Syncer, 2023/07/08