[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-preview 80549c7aba 2/6: Add dired-preview-buffer-
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dired-preview 80549c7aba 2/6: Add dired-preview-buffer-name-indicator prefix to the name of buffers |
Date: |
Sun, 8 Dec 2024 03:57:53 -0500 (EST) |
branch: externals/dired-preview
commit 80549c7aba425f0e2f1a3de3b1c34e813d581e48
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Add dired-preview-buffer-name-indicator prefix to the name of buffers
---
README.org | 5 +++++
dired-preview.el | 35 +++++++++++++++++++++++++++++++----
2 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/README.org b/README.org
index 9c56f9d873..3b2baf9a6e 100644
--- a/README.org
+++ b/README.org
@@ -96,6 +96,11 @@ option ~dired-preview-ignored-show-ignored-placeholders~ is
non-nil.
This is to avoid windows jumping in and out of focus as the user moves
between files.
+#+vindex: dired-preview-buffer-name-indicator
+Preview buffers have a prefix to their name to make them stand out.
+This is controlled by the user option ~dired-preview-buffer-name-indicator~.
+[ This is part of {{{development-version}}}. ]
+
[ In the near future, we may find ways to quickly preview any file
type without affecting the performance of Emacs. ]
diff --git a/dired-preview.el b/dired-preview.el
index e4984508f7..752a0902ea 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -145,6 +145,12 @@ implementation details."
:group 'dired-preview
:type 'natnum)
+(defcustom dired-preview-buffer-name-indicator "[P]"
+ "String to prepend to the name of preview buffers."
+ :type 'string
+ :package-version '(dired-preview . "0.4.0")
+ :group 'dired-preview)
+
(defvar dired-preview--buffers nil
"List with buffers of previewed files.")
@@ -252,10 +258,12 @@ See user option
`dired-preview-ignored-extensions-regexp'."
(defun dired-preview--clean-up-window ()
"Delete or clean up preview window."
- (if (window-parameter (selected-window) 'dired-preview-window)
- (dired-preview--delete-windows)
- (dired-preview--set-window-parameters (selected-window) nil)
- (remove-hook 'post-command-hook #'dired-preview--clean-up-window :local)))
+ (let ((window (selected-window)))
+ (if (window-parameter window 'dired-preview-window)
+ (dired-preview--delete-windows)
+ (dired-preview--rename-buffer (window-buffer window) :make-public)
+ (dired-preview--set-window-parameters window nil)
+ (remove-hook 'post-command-hook #'dired-preview--clean-up-window
:local))))
;; TODO 2024-04-22: Add PDF type and concomitant method to display its buffer.
(defun dired-preview--infer-type (file)
@@ -566,11 +574,30 @@ Only do it with the current major mode is Dired."
(dired-preview-display-action-alist-dwim)))))
(display-buffer buffer action-alist)))
+(defun dired-preview--remove-preview-indicator (name)
+ "Remove `dired-preview-buffer-name-indicator' from NAME."
+ (string-trim
+ (string-replace dired-preview-buffer-name-indicator "" name)
+ "[\s\t\n\r]+" nil))
+
+(defun dired-preview--rename-buffer (buffer &optional make-public)
+ "Rename BUFFER to have `dired-preview-buffer-name-indicator'.
+With optional MAKE-PUBLIC, remove the indicator."
+ (let ((name (buffer-name buffer)))
+ (with-current-buffer buffer
+ (cond
+ (make-public
+ (rename-buffer (dired-preview--remove-preview-indicator name)
:make-unique))
+ ((and (not (string-match-p (regexp-quote
dired-preview-buffer-name-indicator) name))
+ (memq buffer dired-preview--buffers))
+ (rename-buffer (format "%s %s" dired-preview-buffer-name-indicator
name) :make-unique))))))
+
(defun dired-preview-display-file (file)
"Display preview of FILE if appropriate."
(dired-preview--delete-windows)
(when-let* ((buffer (dired-preview--get-preview-buffer file)))
(dired-preview--display-buffer buffer)
+ (dired-preview--rename-buffer buffer)
(when-let* ((window (get-buffer-window buffer)))
(dired-preview--set-window-parameters window t))))
- [elpa] externals/dired-preview updated (9b4f92597a -> a74ed53d22), ELPA Syncer, 2024/12/08
- [elpa] externals/dired-preview 80549c7aba 2/6: Add dired-preview-buffer-name-indicator prefix to the name of buffers,
ELPA Syncer <=
- [elpa] externals/dired-preview 14f7a4cab9 4/6: Change dired-preview-hexl-toggle binding to not clash with wdired, ELPA Syncer, 2024/12/08
- [elpa] externals/dired-preview a74ed53d22 6/6: Make sure to not kill more buffers than necessary, ELPA Syncer, 2024/12/08
- [elpa] externals/dired-preview b9f735b60b 1/6: Make Emacs 28 the minimum requirement, ELPA Syncer, 2024/12/08
- [elpa] externals/dired-preview 6ed2a68c64 5/6: Change the default value of dired-preview-kill-buffers-method, ELPA Syncer, 2024/12/08
- [elpa] externals/dired-preview 9e2cd8190a 3/6: Add dired-preview-kill-buffers-method on how to clean up preview buffers, ELPA Syncer, 2024/12/08