Hi, Here are three functions related to todo and deadline highlighting is the todo buffer. The first lets you highlight upoming deadlines and todo items at the same time.
(defun org-check-deadlines-and-todos (ndays) (org-check-deadlines ndays) (flet ((org-remove-occur-highlights (&optional beg end noremove)) (org-overview ())) (org-show-todo-tree nil))) It would be nice to be able to tell the org-occur function not to remove existing highlights in a less hacky way. Another suggestion: explicit specification of the face used for highlighting so that deadlines and todos could use a different face. Yet another suggestion: the org-occur callback could return the face to use, so that different faces could be used for deadline highlighting, depending on the urgency of the deadline (ie. in 3 days vs. in 30 days). The following two functions redefine org-show-todo-tree, so that TODO items SCHEDULED for the future are not highlighted. Only non-scheduled TODO items or TODO items scheduled for the past or present are highlighted. The SCHEDULED directive must be on the same line as the TODO keyword. (defun org-todo-is-current () "Checks whether a TODO items is current." (if (re-search-forward org-scheduled-time-regexp (point-at-eol) t) (let ((today (calendar-absolute-from-gregorian (calendar-current-date))) (timestamp (time-to-days (org-time-string-to-time (match-string 1))))) (<= timestamp today)) t)) (defun org-show-todo-tree (arg) "Make a compact tree which shows all headlines marked with TODO. The tree will show the lines where the regexp matches, and all higher headlines above the match. With \\[universal-argument] prefix, also show the DONE entries. With a numeric prefix N, construct a sparse tree for the Nth element of `org-todo-keywords'." (interactive "P") (let ((case-fold-search nil) (kwd-re (cond ((null arg) org-not-done-regexp) ((equal arg '(4)) org-todo-regexp) ((<= (prefix-numeric-value arg) (length org-todo-keywords)) (regexp-quote (nth (1- (prefix-numeric-value arg)) org-todo-keywords))) (t (error "Invalid prefix argument: %s" arg))))) (message "%d TODO entries found" (org-occur (concat "^" outline-regexp " +" kwd-re ) 'org-todo-is-current)))) Piotr _______________________________________________ Emacs-orgmode mailing list Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode