From 2c8e68bdd7515088a7195207f50713e23d3326e8 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Fri, 14 Jun 2024 17:41:54 -0700 Subject: Generalize Todo Columns --- elchemy-dashboard.el | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/elchemy-dashboard.el b/elchemy-dashboard.el index 5177e4c..8f999bc 100644 --- a/elchemy-dashboard.el +++ b/elchemy-dashboard.el @@ -32,25 +32,26 @@ (ignore-errors (setq agenda-items (mapcar #'(lambda (x) (elchemy/get-agenda-items x 3)) elchemy/dashboard-agenda-titles) agenda-max-count (apply 'max (mapcar #'(lambda (x) (length x)) agenda-items)) - agenda-max-length (apply 'max (mapcar #'(lambda (x) (apply 'max (mapcar #'(lambda (y) (length y)) x))) agenda-items))) + agenda-max-length (apply 'max (mapcar #'(lambda (x) (apply 'max (mapcar #'(lambda (y) (length y)) x))) agenda-items)) + agenda-heading-format-string "") (let ((start (point))) (insert "Agenda") (add-text-properties start (point) `(face (:height ,elchemy/dashboard/subheader-size)))) (insert "\n") - (insert (apply 'format (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s" "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s" "%s\n") elchemy/dashboard-agenda-titles)) + (dotimes (_ (- (length elchemy/dashboard-agenda-titles) 1)) + (setq agenda-heading-format-string (concat agenda-heading-format-string "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s"))) + (setq agenda-heading-format-string (concat agenda-heading-format-string "%s\n")) + (insert (apply 'format agenda-heading-format-string elchemy/dashboard-agenda-titles)) (dotimes (i agenda-max-count) - (insert (format - (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s") - (elchemy/replace-nil (nth i (nth 0 agenda-items))))) - (insert (format - (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s") - (elchemy/replace-nil (nth i (nth 1 agenda-items))))) - (insert (format - "%s" - (elchemy/replace-nil (nth i (nth 2 agenda-items))))) - (insert "\n") - ) + (dotimes (c (length elchemy/dashboard-agenda-titles)) + (if (eq (% (+ c 1) (length elchemy/dashboard-agenda-titles)) 0) + (insert (format "%s\n" + (elchemy/replace-nil (nth i (nth c agenda-items))))) + (insert (format + (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s") + (elchemy/replace-nil (nth i (nth c agenda-items))))) + ))) (insert "\n") (let ((start (point))) (insert "Overdue") -- cgit v1.2.1