[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-preview 4af91a6b7c 57/67: Re-order large portions
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dired-preview 4af91a6b7c 57/67: Re-order large portions of the file |
Date: |
Sat, 8 Jul 2023 15:57:55 -0400 (EDT) |
branch: externals/dired-preview
commit 4af91a6b7c6d64ecbdfcb3b048a4035f9fb49be7
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Re-order large portions of the file
---
dired-preview.el | 140 +++++++++++++++++++++++++++----------------------------
1 file changed, 70 insertions(+), 70 deletions(-)
diff --git a/dired-preview.el b/dired-preview.el
index c4a0ff8f16..a98282b428 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -101,49 +101,6 @@ details."
(defvar dired-preview--buffers nil
"List with buffers of previewed files.")
-(defun dired-preview--find-file-no-select (file)
- "Call `find-file-noselect' on FILE with appropriate settings."
- ;; NOTE: I learnt about `non-essential' and `delay-mode-hooks' from
- ;; Daniel Mendler's `consult' package, which imnplements a preview
- ;; functionality as well (more sophisticated than mine):
- ;; <https://github.com/minad/consult>.
- (let ((inhibit-message t)
- (enable-dir-local-variables nil)
- (enable-local-variables :safe)
- (non-essential t)
- (delay-mode-hooks t))
- (find-file-noselect file :nowarn)))
-
-(defun dired-preview--set-window-parameters (window value)
- "Set desired WINDOW parameters to VALUE."
- (with-selected-window window
- (set-window-parameter window 'dired-preview-window value)
- (set-window-parameter window 'dedicated value)
- (set-window-parameter window 'no-other-window value)))
-
-(defun dired-preview--run-mode-hooks ()
- "Run mode hooks in current buffer, if `delayed-mode-hooks' is non-nil."
- (cond
- ((window-parameter (selected-window) 'dired-preview-window)
- (dired-preview--delete-windows))
- ((and delay-mode-hooks (current-buffer))
- (dired-preview--set-window-parameters (selected-window) nil)
- (apply #'run-hooks (delete-dups delayed-mode-hooks))
- (kill-local-variable 'delayed-mode-hooks)
- (remove-hook 'post-command-hook #'dired-preview--run-mode-hooks :local))))
-
-(defun dired-preview--add-to-previews (file)
- "Add FILE to `dired-preview--buffers', if not already in a buffer.
-Always return FILE buffer."
- (let ((buffer (find-buffer-visiting file)))
- (if (buffer-live-p buffer)
- buffer
- (setq buffer (dired-preview--find-file-no-select file)))
- (with-current-buffer buffer
- (add-hook 'post-command-hook #'dired-preview--run-mode-hooks nil :local))
- (add-to-list 'dired-preview--buffers buffer)
- buffer))
-
(defun dired-preview--get-buffers ()
"Return buffers that show previews."
(seq-filter
@@ -157,10 +114,37 @@ Always return FILE buffer."
"Return non-nil if WINDOW has `dired-preview-window' parameter."
(window-parameter window 'dired-preview-window))
+;; TODO 2023-07-05: We need a garbage collection function so that we
+;; do not accummulate too many buffers that exceed a given threshold.
+(defun dired-preview--kill-buffers ()
+ "Kill preview buffers."
+ (mapc
+ (lambda (buffer)
+ (let ((window (get-buffer-window buffer)))
+ (cond
+ ((and (dired-preview--window-parameter-p window)
+ (current-buffer))
+ (delete-window (get-buffer-window buffer)))
+ ((dired-preview--window-parameter-p window)
+ (ignore-errors
+ (kill-buffer-if-not-modified buffer)
+ (setq dired-preview--buffers (delq buffer
dired-preview--buffers)))))))
+ (dired-preview--get-buffers)))
+
(defun dired-preview--get-windows ()
"Return windows that show previews."
(seq-filter #'dired-preview--window-parameter-p (window-list)))
+(defun dired-preview--delete-windows ()
+ "Delete preview windows."
+ (mapc
+ (lambda (window)
+ (unless (or (one-window-p)
+ (eq window (minibuffer-window))
+ (eq window (selected-window)))
+ (delete-window window)))
+ (dired-preview--get-windows)))
+
(defun dired-preview--file-ignored-p (file)
"Return non-nil if FILE extension is among the ignored extensions.
See user option `dired-preview-ignored-extensions-regexp'."
@@ -177,6 +161,49 @@ See user option `dired-preview-ignored-extensions-regexp'."
(window (get-buffer-window buffer)))
(window-live-p window)))
+(defun dired-preview--set-window-parameters (window value)
+ "Set desired WINDOW parameters to VALUE."
+ (with-selected-window window
+ (set-window-parameter window 'dired-preview-window value)
+ (set-window-parameter window 'dedicated value)
+ (set-window-parameter window 'no-other-window value)))
+
+(defun dired-preview--run-mode-hooks ()
+ "Run mode hooks in current buffer, if `delayed-mode-hooks' is non-nil."
+ (cond
+ ((window-parameter (selected-window) 'dired-preview-window)
+ (dired-preview--delete-windows))
+ ((and delay-mode-hooks (current-buffer))
+ (dired-preview--set-window-parameters (selected-window) nil)
+ (apply #'run-hooks (delete-dups delayed-mode-hooks))
+ (kill-local-variable 'delayed-mode-hooks)
+ (remove-hook 'post-command-hook #'dired-preview--run-mode-hooks :local))))
+
+(defun dired-preview--find-file-no-select (file)
+ "Call `find-file-noselect' on FILE with appropriate settings."
+ ;; NOTE: I learnt about `non-essential' and `delay-mode-hooks' from
+ ;; Daniel Mendler's `consult' package, which imnplements a preview
+ ;; functionality as well (more sophisticated than mine):
+ ;; <https://github.com/minad/consult>.
+ (let ((inhibit-message t)
+ (enable-dir-local-variables nil)
+ (enable-local-variables :safe)
+ (non-essential t)
+ (delay-mode-hooks t))
+ (find-file-noselect file :nowarn)))
+
+(defun dired-preview--add-to-previews (file)
+ "Add FILE to `dired-preview--buffers', if not already in a buffer.
+Always return FILE buffer."
+ (let ((buffer (find-buffer-visiting file)))
+ (if (buffer-live-p buffer)
+ buffer
+ (setq buffer (dired-preview--find-file-no-select file)))
+ (with-current-buffer buffer
+ (add-hook 'post-command-hook #'dired-preview--run-mode-hooks nil :local))
+ (add-to-list 'dired-preview--buffers buffer)
+ buffer))
+
(defun dired-preview--return-preview-buffer (file)
"Return buffer to preview FILE in."
(dired-preview--add-to-previews file))
@@ -222,33 +249,6 @@ aforementioned user option."
(when (timerp dired-preview--timer)
(cancel-timer dired-preview--timer)))
-(defun dired-preview--delete-windows ()
- "Delete preview windows."
- (mapc
- (lambda (window)
- (unless (or (one-window-p)
- (eq window (minibuffer-window))
- (eq window (selected-window)))
- (delete-window window)))
- (dired-preview--get-windows)))
-
-;; TODO 2023-07-05: We need a garbage collection function so that we
-;; do not accummulate too many buffers that exceed a given threshold.
-(defun dired-preview--kill-buffers ()
- "Kill preview buffers."
- (mapc
- (lambda (buffer)
- (let ((window (get-buffer-window buffer)))
- (cond
- ((and (dired-preview--window-parameter-p window)
- (current-buffer))
- (delete-window (get-buffer-window buffer)))
- ((dired-preview--window-parameter-p window)
- (ignore-errors
- (kill-buffer-if-not-modified buffer)
- (setq dired-preview--buffers (delq buffer
dired-preview--buffers)))))))
- (dired-preview--get-buffers)))
-
(defun dired-preview--close-previews ()
"Kill preview buffers and delete their windows."
(dired-preview--cancel-timer)
- [elpa] externals/dired-preview 4da6ee04bf 12/67: Make the display-buffer action alist customisable, (continued)
- [elpa] externals/dired-preview 4da6ee04bf 12/67: Make the display-buffer action alist customisable, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview f2a720ca8f 13/67: Update dired-preview-set-up-preview-window doc to reference user option, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 04bfb749c7 22/67: Move two forms closer to where they are used, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 4857868357 33/67: Harden dired-preview--close-previews-outside-dired conditionality, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 38fab3d419 38/67: Use 'file-regular-p' instead of 'file-exists-p', ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview f6bb0e3271 44/67: Add TODO to only accummulate a fixed size of buffers, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 00ab2337ca 46/67: Stop adding 'no-other-window' parameter, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview bac80501c8 55/67: Use 'unless' in dired-preview--close-previews-outside-dired, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview d9b779e2da 58/67: Use "-get" instead of "-return" in function symbols, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 7413c6f59a 62/67: Define dired-preview-global-mode, ELPA Syncer, 2023/07/08
- [elpa] externals/dired-preview 4af91a6b7c 57/67: Re-order large portions of the file,
ELPA Syncer <=
- [elpa] externals/dired-preview 9d44584802 63/67: Update package commentary; mention dired-preview-global-mode, ELPA Syncer, 2023/07/08