[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-duplicates 4c17bcdcc0 43/57: Separate search resu
|
From: |
ELPA Syncer |
|
Subject: |
[elpa] externals/dired-duplicates 4c17bcdcc0 43/57: Separate search results using empty lines |
|
Date: |
Sat, 4 Nov 2023 06:58:30 -0400 (EDT) |
branch: externals/dired-duplicates
commit 4c17bcdcc08b36764e4d32bb305b4db49dfffb44
Author: Harald Judt <h.judt@gmx.at>
Commit: Harald Judt <h.judt@gmx.at>
Separate search results using empty lines
---
dired-duplicates.el | 42 ++++++++++++++++++++++++++++++++----------
1 file changed, 32 insertions(+), 10 deletions(-)
diff --git a/dired-duplicates.el b/dired-duplicates.el
index 8b403e40c0..dbbdfe2a64 100644
--- a/dired-duplicates.el
+++ b/dired-duplicates.el
@@ -149,7 +149,7 @@ duplicate files as values."
(remhash checksum checksum-table)))
(cl-return checksum-table)))
-(defun dired-duplicates--generate-dired-list (&optional directories)
+(defun dired-duplicates--generate-grouped-results (&optional directories)
"Generate a list of grouped duplicate files in DIRECTORIES."
(cl-loop with dupes-table = (dired-duplicates--find-and-filter-files
(or directories
@@ -160,7 +160,26 @@ duplicate files as values."
dired-duplicates-size-comparison-function
:key #'cl-second)
for (checksum) in sorted-sums
- append (cdr (gethash checksum dupes-table))))
+ collect (cdr (gethash checksum dupes-table))))
+
+(defun dired-duplicates--post-process-dired-buffer (results)
+ "Post process the duplicate results buffer using RESULTS.
+
+This adds a new-line after each results group."
+ (save-mark-and-excursion
+ (goto-char (point-min))
+ (forward-line)
+ ;; add a new-line after each group
+ (cl-loop with lengths = (mapcar #'length results)
+ for len in lengths
+ do
+ (forward-line len)
+ ;; (forward-line len)
+ (let ((inhibit-read-only t))
+ (beginning-of-line)
+ (unless (= (point) (point-max))
+ (insert "\n"))))))
+Currently, this simply adds a new-line after each results group."
(defun dired-duplicates-dired-revert (&optional arg noconfirm)
"Revert function used instead of `dired-revert' for Dired buffers.
@@ -168,11 +187,13 @@ duplicate files as values."
The args ARG and NOCONFIRM are passed through from
`revert-buffer' to `dired-revert'."
(message "Looking for remaining duplicate files...")
- (setq-local dired-directory
- (append (list (car dired-directory))
- (dired-duplicates--generate-dired-list)))
- (message "Reverting buffer complete.")
- (dired-revert arg noconfirm))
+ (let ((results (dired-duplicates--generate-grouped-results
dired-duplicates-directories)))
+ (setq-local dired-directory
+ (append (list (car dired-directory))
+ (flatten-list results)))
+ (dired-revert arg noconfirm)
+ (dired-duplicates--post-process-dired-buffer results))
+ (message "Reverting buffer complete."))
;;;###autoload
(defun dired-duplicates (directories)
@@ -189,12 +210,13 @@ The results will be shown in a Dired buffer."
(let ((default-directory "/")
(truncated-dirs (truncate-string-to-width (string-join directories ",
") 40 0 nil t)))
(message "Finding duplicate files in %s..." truncated-dirs)
- (if-let ((results (dired-duplicates--generate-dired-list directories)))
+ (if-let ((results (dired-duplicates--generate-grouped-results
directories)))
(progn
(message "Finding duplicate files in %s completed." truncated-dirs)
- (dired (cons "/" results))
+ (dired (cons "/" (flatten-list results)))
(setq-local dired-duplicates-directories directories)
- (setq-local revert-buffer-function 'dired-duplicates-dired-revert))
+ (setq-local revert-buffer-function 'dired-duplicates-dired-revert)
+ (dired-duplicates--post-process-dired-buffer results))
(message "No duplicate files found in %s." truncated-dirs))))
(provide 'dired-duplicates)
- [elpa] externals/dired-duplicates 193e498e5d 25/57: Fix indentation and find-duplicates-with-separator-file macro var names, (continued)
- [elpa] externals/dired-duplicates 193e498e5d 25/57: Fix indentation and find-duplicates-with-separator-file macro var names, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 0dc415a2b1 28/57: Rename source file to match package name, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates ad2855a5e0 29/57: Add package information and GPL-3 license, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 6508b208e2 30/57: Add option to search directories recursively or not, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 03ad95f3a9 31/57: Add README.org, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4cfe600a15 36/57: Use user-error instead of error in find-duplicates-checksum-file, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates b4a7b0a3e7 38/57: Lower required emacs version to 27.1, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 31c1aa8880 40/57: Rename all occurrences of find-duplicates to dired-duplicates, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 6df828caac 41/57: README.org: Add more detailed explanations, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 887560b192 42/57: Get rid of separator files, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4c17bcdcc0 43/57: Separate search results using empty lines,
ELPA Syncer <=
- [elpa] externals/dired-duplicates 0a9a5d8b65 44/57: Make separating results optional again, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4664aed213 46/57: Fix truncating directories when calling dired-duplicates non-interactively, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 94319f44f7 47/57: Improve checking parameters and handling parameter errors, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 3c16f56388 48/57: Install workarounds for Emacs Dired bug #57565, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates c6193334fd 50/57: Update copyright notice to point to the FSF, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates c1dbfc5bcd 53/57: Improve error handling of checksum program, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates b5a9eb1cc1 26/57: flymake: Fix warning about unused lexical variables, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4fde2fbfa7 33/57: Fix first lines of docstrings, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 94542206f7 49/57: Update GPL3 LICENSE file, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4cf9eeb365 54/57: Remove conditional checks that dolist does for free, ELPA Syncer, 2023/11/04