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

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

[elpa] scratch/dired-git-info f539ba5 08/33: Align message parts of comm


From: Clemens Radermacher
Subject: [elpa] scratch/dired-git-info f539ba5 08/33: Align message parts of commit messages
Date: Sun, 17 Feb 2019 13:03:28 -0500 (EST)

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

    Align message parts of commit messages
---
 dired-git-info.el | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/dired-git-info.el b/dired-git-info.el
index 369577f..5cd8f43 100644
--- a/dired-git-info.el
+++ b/dired-git-info.el
@@ -34,10 +34,11 @@
   '((t (:inherit font-lock-comment-face)))
   "Face for commit message overlays.")
 
-(defvar dgi-commit-message-format "%s (%cr)"
+(defvar dgi-commit-message-format "%s\t%cr"
   "Format of the commit messages.
 
-The placeholders are (from git-log PRETTY FORMATS):
+Placeholders have to be separated by tabs. The placeholders
+are (from git-log PRETTY FORMATS):
 
            ยท %H: commit hash
 
@@ -309,6 +310,25 @@ info format and defaults to `dgi-commit-message-format'."
                               (line-end-position)))))
 
 
+(defun dgi--get-commit-messages (files)
+  (let ((messages ()))
+    (setq messages
+          (dolist (file files (nreverse messages))
+            (push (dgi--get-commit-info file)
+                  messages)))
+    (with-current-buffer (get-buffer-create " *temp*")
+      (erase-buffer)
+      (dolist (message messages)
+        (insert (or message "") "\n"))
+      (align-regexp (point-min)
+                    (point-max)
+                    "\\(\\s-*\\)\t" nil nil t)
+      (goto-char (point-min))
+      (while (search-forward "\t" nil t)
+        (replace-match " "))
+      (split-string (buffer-string) "\n"))))
+
+
 ;;;###autoload
 (defun dgi-toggle-git-info ()
   "Toggle git message info in current dired buffer."
@@ -319,10 +339,11 @@ info format and defaults to `dgi-commit-message-format'."
                    (dired-unmark-all-marks)
                    (dired-toggle-marks)
                    (dired-get-marked-files)))
-           (minspc  (1+ (apply #'max  (dgi--get-dired-files-length files)))))
+           (minspc  (1+ (apply #'max  (dgi--get-dired-files-length files))))
+           (messages (dgi--get-commit-messages files)))
       (save-excursion
         (dolist (file files)
-          (let ((msg (dgi--get-commit-info file)))
+          (let ((msg (pop messages)))
             (when msg
               (dired-goto-file file)
               (let ((spc (make-string



reply via email to

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