emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] scratch/dired-git-info 51135d8 07/33: Use actual displayed width


From: Clemens Radermacher
Subject: [elpa] scratch/dired-git-info 51135d8 07/33: Use actual displayed width of filename to determine spacing
Date: Sun, 17 Feb 2019 13:03:28 -0500 (EST)

branch: scratch/dired-git-info
commit 51135d8d935801f03fe1221f6ed7b74f53aebb36
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Use actual displayed width of filename to determine spacing
---
 dired-git-info.el | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/dired-git-info.el b/dired-git-info.el
index 9bc7d4f..369577f 100644
--- a/dired-git-info.el
+++ b/dired-git-info.el
@@ -296,6 +296,19 @@ info format and defaults to `dgi-commit-message-format'."
   (setq dgi--commit-ovs nil))
 
 
+(defun dgi--get-dired-files-length (files)
+  (let ((dnames ()))
+    (dolist (file files (nreverse dnames))
+      (push (dgi--get-dired-file-length file)
+            dnames))))
+
+(defun dgi--get-dired-file-length (file)
+  (save-excursion
+    (dired-goto-file file)
+    (length (buffer-substring (point)
+                              (line-end-position)))))
+
+
 ;;;###autoload
 (defun dgi-toggle-git-info ()
   "Toggle git message info in current dired buffer."
@@ -305,19 +318,16 @@ info format and defaults to `dgi-commit-message-format'."
     (let* ((files (dgi--save-marked
                    (dired-unmark-all-marks)
                    (dired-toggle-marks)
-                   (sort (dired-get-marked-files)
-                         (lambda (a b)
-                           (> (length (file-name-nondirectory a))
-                              (length (file-name-nondirectory b)))))))
-           (minspc  (1+ (length (file-name-nondirectory (car files))))))
+                   (dired-get-marked-files)))
+           (minspc  (1+ (apply #'max  (dgi--get-dired-files-length files)))))
       (save-excursion
         (dolist (file files)
           (let ((msg (dgi--get-commit-info file)))
             (when msg
+              (dired-goto-file file)
               (let ((spc (make-string
-                          (- minspc (length (file-name-nondirectory file)))
+                          (- minspc (dgi--get-dired-file-length file))
                           ?\s)))
-                (dired-goto-file file)
                 (goto-char (line-end-position))
                 (let ((ov (make-overlay (point) (1+ (point))))
                       (ovs (concat spc



reply via email to

[Prev in Thread] Current Thread [Next in Thread]