--- orig/planner-tasks-overview.el +++ mod/planner-tasks-overview.el @@ -55,8 +55,16 @@ ;; http://sacha.free.net.ph/notebook/wiki/PlannerMode.php +;;;_* Options + +(defcustom planner-tasks-overview-format-tasks-function 'planner-tasks-overview-insert-it + "Called to format tasks overview." + :type 'function + :group 'planner) + ;;; Code: + (defvar planner-tasks-overview-mode-map (let ((map (make-sparse-keymap))) (define-key map "1" 'planner-tasks-overview-sort-by-date) @@ -161,45 +169,49 @@ '("_" "o" ">" "P" "X" "C"))))))) (planner-tasks-overview-insert)) +(defun planner-tasks-overview-insert-it () + "Insert the textual representation for `planner-tasks-overview-data'." + (let (last-date last-plan) + (mapcar + (lambda (item) + (let ((text + (format "%10s | %s | %s %s | %s\n" + (if (elt item 2) + (planner-make-link + (elt item 2) + (format "%-10.10s" + (if (string= last-date (elt item 2)) + "__________" + (elt item 2)))) + (format "%-10.10s" "nil")) + (if (elt item 3) + (planner-make-link + (elt item 3) + (format "%-20.20s" + (if (string= last-plan (elt item 3)) + "____________________" + (elt item 3)))) + (format "%-20.20s" "nil")) + (elt item 0) + (elt item 1) + (elt item 4)))) + (add-text-properties 0 (length text) (list 'info item) + text) + (insert text)) + (setq last-date (elt item 2)) + (setq last-plan (elt item 3))) + planner-tasks-overview-data))) + (defun planner-tasks-overview-insert () "Insert the textual representation for `planner-tasks-overview-data'. DATA is a list of (priority status date plan description)." (with-current-buffer (get-buffer-create "*planner tasks overview*") (setq buffer-read-only nil) (erase-buffer) - (let (last-date last-plan) - (mapcar - (lambda (item) - (let ((text - (format "%10s | %s | %s %s | %s\n" - (if (elt item 2) - (planner-make-link - (elt item 2) - (format "%-10.10s" - (if (string= last-date (elt item 2)) - "__________" - (elt item 2)))) - (format "%-10.10s" "nil")) - (if (elt item 3) - (planner-make-link - (elt item 3) - (format "%-20.20s" - (if (string= last-plan (elt item 3)) - "____________________" - (elt item 3)))) - (format "%-20.20s" "nil")) - (elt item 0) - (elt item 1) - (elt item 4)))) - (add-text-properties 0 (length text) (list 'info item) - text) - (insert text)) - (setq last-date (elt item 2)) - (setq last-plan (elt item 3))) - planner-tasks-overview-data) - (planner-mode) - (goto-char (point-min)) - (setq buffer-read-only t)))) + (funcall planner-tasks-overview-format-tasks-function) + (planner-mode) + (goto-char (point-min)) + (setq buffer-read-only t))) ;; (planner-tasks-overview-extract-all-tasks (planner-get-day-pages start end)) ;; (planner-tasks-overview-extract-all-tasks (planner-get-day-pages (planner-today))) @@ -210,7 +222,10 @@ (cd (planner-directory)) ;; The following line greps only the days limited by START and END. (apply 'call-process "grep" nil t nil "-H" "-e" "^#[A-C][0-9]*" - file-list) + (mapcar + '(lambda (x) + (if muse-file-extension (concat x "." muse-file-extension) + x)) file-list)) ;;; The following line searches all the date pages. ;; (shell-command "grep -H -e '^#[A-C][0-9]*' --include='[0-9][0-9][0-9][0-9]\\.[0-9][0-9]\\.[0-9][0-9]' *" t) ;;; The following line searches date _and_ plan pages.