diff options
author | Carsten Dominik <dominik@science.uva.nl> | 2008-06-17 15:22:00 +0000 |
---|---|---|
committer | Carsten Dominik <dominik@science.uva.nl> | 2008-06-17 15:22:00 +0000 |
commit | b349f79f7434513bd603b063473bfdf59c465817 (patch) | |
tree | 787a8d6677b022cd76aebc1fc9706a5c06980d27 /lisp/org/org-agenda.el | |
parent | 4271b4248d5e0add806a41ddbd6b0c99574eea8e (diff) | |
download | emacs-b349f79f7434513bd603b063473bfdf59c465817.tar.gz emacs-b349f79f7434513bd603b063473bfdf59c465817.tar.bz2 emacs-b349f79f7434513bd603b063473bfdf59c465817.zip |
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-colview.el (org-columns-next-allowed-value): Bug fix.
* org-colview-xemacs.el (org-columns-next-allowed-value): Bug fix.
* org-agenda.el (org-agenda-get-closed): Get the end time into the
agenda prefix as well.
* org-publish.el (org-publish-org-index): Make a properly indented
list.
* org.el (org-calendar-agenda-action-key): New option.
(org-get-cursor-date): New function.
(org-mark-entry-for-agenda-action): New command.
(org-overriding-default-time): New variable.
(org-read-date): Respect `org-overriding-default-time'.
* org-remember.el (org-remember-apply-template): Respect the
ovverriding default time.
* org-agenda.el (org-agenda-action-marker): New variable.
(org-agenda-action): New command.
(org-agenda-do-action): New function.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-schedule, org-deadline): Protect scheduled and
deadline tasks against changes that accidently remove the
repeater. Also show a message with the new date when done.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-beginning-of-line): Cater for the case when there
are tags but no headline text.
(org-align-tags-here): Convert to tabs only when indent-tabs-mode
it set.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-mhe.el (org-mhe-get-message-folder-from-index): Make sure
the return value is nil instead of "nil" when there is no match.
* org-exp.el (org-insert-centered): Use fill-column instead of
80.
(org-export-as-ascii): Use string-width to measure the width of
the heading.
* org.el (org-diary-to-ical-string): No longer kill buffer
FROMBUF, this is now done by the caller.
* org-exp.el (org-print-icalendar-entries): Move the call to
`org-diary-to-ical-string' out of the loop, and kill the buffer
afterwords.
* org-remember.el (org-remember-visit-immediately): Position
cursor after moving to the note.
(org-remember-apply-template): Use a text property to record the
cursor position.
(org-remember-handler): Align tags after pasting the note.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-bbdb.el (org-bbdb-follow-anniversary-link): New function.
* org-agenda.el (org-agenda-open-link): If there is an
org-bbdb-name property in the current line, jump to that bbdb
entry.
* org-bbdb.el (org-bbdb-anniversaries): Add the bbdb-name as a
text property, so that the agenda knows where this entry comes
from.
* org-agenda.el (org-agenda-clock-in): Fixed bug in the
interaction between clocking-in from the agenda, and automatic
task state switching.
* org-macs.el (org-with-point-at): Bug fix in macro defintion.
* org.el (org-beginning-of-line, org-end-of-line): Make sure the
zmacs-region stays after this command in XEmacs.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-scan-tags): Allow new values for ACTION parameter.
* org-remember.el (org-remember-templates): Fix bug in
customization type definition.
* org.el (org-map-entries): New function.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-agenda.el (org-agenda-skip-comment-trees): New option.
(org-agenda-skip): Respect `org-agenda-skip-comment-trees'.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-remember.el (org-jump-to-target-location): New variable.
(org-remember-apply-template): Set
`org-remember-apply-template' if requested by template.
(org-remember-handler): Start an idle timer to jump to
remember location.
* org-exp.el (org-get-current-options): Add the FILETAGS setting.
* org.el (org-set-regexps-and-options): Fix bug with parsing of
file tags.
(org-get-tags-at): Add the content of `org-file-tags'.
* org-exp.el (org-export-handle-comments): Fix bug with several
comment lines after each other.
(org-number-to-roman, org-number-to-counter): New functions.
(org-export-section-number-format): New option.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-export-protect-examples): Catch the case of a
missing end_example line.
* org.el (org-set-regexps-and-options): Set `org-file-properties' and
`org-file-tags' to nil.
* org-colview.el (org-columns-next-allowed-value): Handle next
argument NTH to directly select a value.
* org-colview-xemacs.el (org-columns-next-allowed-value): Handle next
argument NTH to directly select a value.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-agenda.el (org-agenda-scheduled-leaders): Fix docstring.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-columns-ellipses): New option.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-colview.el (org-columns-add-ellipses): New function.
(org-columns-compact-links): New function.
(org-columns-cleanup-item): Call `org-columns-compact-links'.
(org-columns-display-here): Call `org-agenda-columns-cleanup-item'
when in agenda.
(org-columns-edit-value): Fixed bug with editing values from
agenda column view.
(org-columns-redo): Also redo the agenda itself.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-agenda.el (org-agenda-columns-remove-prefix-from-item): New
option.
* org-colview.el (org-agenda-columns-cleanup-item): New function.
* org-exp.el (org-export-ascii-preprocess): Renamed from
`org-export-ascii-clean-string'.
(org-export-kill-licensed-text)
(org-export-define-heading-targets)
(org-export-handle-invisible-targets)
(org-export-target-internal-links)
(org-export-remove-or-extract-drawers)
(org-export-remove-archived-trees)
(org-export-protect-quoted-subtrees)
(org-export-protect-verbatim, org-export-protect-examples)
(org-export-select-backend-specific-text)
(org-export-mark-blockquote-and-verse)
(org-export-remove-comment-blocks-and-subtrees)
(org-export-handle-comments, org-export-mark-radio-links)
(org-export-remove-special-table-lines)
(org-export-normalize-links)
(org-export-concatenate-multiline-links)
(org-export-concatenate-multiline-emphasis): New functions,
obtained from spliiting the export preprocessor.
* org-table.el (org-table-recalculate): Improve error message if
the row number is invalid.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-archive.el (org-archive-save-context-info): Fix bugs in
customization setup and docstring.
* org-exp.el (org-export-html-style): Changed the size of in the
<pre> element to 90%.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-find-src-example-start): Function removed.
(org-edit-src-find-region-and-lang): New function.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-edit-src-exit): New function.
(org-exit-edit-mode): New minor mode.
* org-exp.el (org-export-preprocess-string): Fix bug with removing
comment-like lines from protected examples.
* org.el (org-edit-src-example, org-find-src-example-start)
(org-protect-source-example, org-edit-special): New functions.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-publish.el (org-publish-project-alist): Fix typo in
docstring.
(org-publish-project-alist): Handle :index-title property.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-export-latex.el (org-export-as-latex): Make sure region
bounds are correct. Parse subtree properties relating to export.
* org-exp.el (org-export-add-options-to-plist): New function.
(org-infile-export-plist): Use `org-export-add-options-to-plist'.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-default-properties): Add EXPORT_FILE_NAME and
EXPORT_TITLE.
* org-exp.el (org-export-get-title-from-subtree)
(org-export-as-ascii, org-export-as-html): Make sure the original
region-beginning and region-end are used, even after moving
point.
(org-export-get-title-from-subtree): Also try the EXPORT_TITLE
property.
* org-remember.el (org-remember-last-stored-marker): New variable.
(org-remember-goto-last-stored): Use `org-goto-marker-or-bmk'.
(org-remember-handler): Also use marker to remember
last-stored position.
* org.el (org-goto-marker-or-bmk): New function.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-file-properties): Renamed from `org-local-properties'.
(org-scan-tags): Take file tags into account.
(org-tags-match-list-sublevels): Default changed to t.
* org-exp.el (org-export-as-html): Close paragraph after a
footnote.
* org.el (org-update-parent-todo-statistics): New function.
* org-exp.el (org-icalendar-store-UID): New option.
(org-icalendar-force-UID): Option removed.
(org-print-icalendar-entries): IMplement UIDs.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-mhe.el (org-mhe-follow-link): Fix bug in mhe searches.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-faces.el (org-column): Document how this face is being used
and why sometimes the background faces shine through.
* org-mhe.el (org-mhe-follow-link): Improve handling of searches.
* org-publish.el (org-publish-attachment): Create publishing
directory if it does not yet exist.
* org-table.el (org-calc-default-modes): Change default number
format to (float 8).
* org.el (org-olpath-completing-read): New function.
(org-time-clocksum-format): New option.
(org-minutes-to-hh:mm-string): Use `org-time-clocksum-format'.
* org-clock.el (org-clock-display, org-clock-out)
(org-update-mode-line): Use `org-time-clocksum-format'.
* org-colview-xemacs.el (org-columns-number-to-string): Use
`org-time-clocksum-format'.
* org-colview.el (org-columns-number-to-string): Use
`org-time-clocksum-format'.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-id.el: New file, move from contrib to core.
* org-exp.el (org-icalendar-force-UID): New option.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-print-icalendar-entries): Make sure DTEND is
shifted by one day if theere is a date range without an end
time.
* org.el (org-try-structure-completion): New function.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-set-font-lock-defaults): Improve fontification of
description lists.
(org-insert-item): Handle description lists.
(org-adaptive-fill-function): Improve auto indentation in
description lists.
* org-exp.el (org-export-as-html, org-export-preprocess-string):
Implement VERSE environment.
(org-export-preprocess-string): Implement the COMMENT
environment.
* org-export-latex.el (org-export-latex-preprocess): Implement
VERSE environment.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-jsinfo.el (org-infojs-opts-table): Add entry for FIXED_TOC
option.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-table.el (orgtbl-to-tsv, orgtbl-to-csv): New functions.
* org.el (org-quote-csv-field): New functions.
* org-table.el (org-table-export-default-format): Remove :splice
from default format, we get the same effect by not specifying
:tstart and :tend.
(org-table-export): Improve setup, distinguish better between
interactive and non-interactive use, allow specifying the format
on the fly, better protection against wrong file names.
(orgtbl-to-generic): Fix documentation. Do not require :tstart
and :tend when :splice is omitted.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-clock.el (org-clock-select-task): Make sure the selection
letters are 1-9 and A-Z, no special characters.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-export-htmlize): New group.
(org-export-htmlize-output-type)
(org-export-htmlize-css-font-prefix): New options.
(org-export-htmlize-region-for-paste): New function.
(org-export-htmlize-generate-css): New command.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-set-visibility-according-to-property): New function.
(org-ctrl-c-ctrl-c): Do not restart org-mode, just get the options
and compute the regular expressions, and update font-lock.
(org-property-re): Allow a dash in property names.
* org-archive.el (org-extract-archive-file): Insert the file name
without the path into the format, to allow the location format to
contain a subdirectory.
* org-agenda.el (org-agenda-post-command-hook): If point is at end
of buffer, and the `org-agenda-type' property undefined, use the
value from the character before.
* org.el (org-add-planning-info): Don't let indentation for
would-be timestamp become extra whitespace at the end of headline.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-remove-double-quotes, org-file-contents): New
functions.
* org-exp.el (org-infile-export-plist): Also parse the
contents of #+SETUPFILE files, recursively.
* org.el (org-set-regexps-and-options): Also parse the
contents of #+SETUPFILE files, recursively.
* org-exp.el (org-export-handle-include-files): New function.
(org-export-preprocess-string): Call
`org-export-handle-include-files'.
* org.el (org-delete-property-globally)
(org-delete-property, org-set-property): Ignore case during
completion.
(org-set-property): Use `org-completing-read' instead of
`completing-read'.
* org.el (org-complete-expand-structure-template): New,
experimental function.
(org-structure-template-alist): New, experimental option.
(org-complete): Call `org-complete-expand-structure-template'.
2008-06-17 Bastien Guerry <bzg@altern.org>
* org-export-latex.el (org-export-latex-preprocess): Added
support for blockquotes.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-read-date-analyze): Catch the case where only a
weekday is given.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-set-font-lock-defaults): Make the description
tag bold.
* org-exp.el (org-export-as-html, org-close-li): Implement
description lists.
2008-06-17 Jason Riedy <jason@acm.org>
* org-table.el (*orgtbl-default-fmt*): New variable.
(orgtbl-format-line): Use the value of *orgtbl-default-fmt*
when there is no other fmt available.
(orgtbl-to-generic): Allow an explicitly nil :tstart or
:tend to suppress the appropriate string.
(orgtbl-to-orgtbl): New function for translating to another orgtbl
table.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-read-date-analyze): "." as an alias for "+0" in
read date.
* org-clock.el (org-clock-save-markers-for-cut-and-paste):
New function.
* org-agenda.el (org-agenda-save-markers-for-cut-and-paste):
New function.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-clock.el (org-clock-find-position): Don't include notes
into clock drawer.
* org-archive.el (org-archive-subtree): No longer remove an
extra line after cutting the subtree. `org-cut-subtree' already
takes care of this.
* org-remember.el (org-remember-handler): Only kill the target
buffer if it does not contain the running clock.
* org.el (org-markers-to-move): New variable.
(org-save-markers-in-region, org-check-and-save-marker)
(org-reinstall-markers-in-region): New function.
(org-move-subtree-down, org-copy-subtree): Remember relative
marker positions before cutting.
(org-move-subtree-down, org-paste-subtree): Restore relative
marker positions after pasting.
* org-remember.el (org-remember-clock-out-on-exit): New option.
(org-remember-finalize): Clock out only if the setting in
`org-remember-clock-out-on-exit' requires it.
(org-remember-handler): Do the cleanup in the buffer, to make sure
that the clock marker remains in tact.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-clock.el (org-clock-goto): Widen buffer if necessary.
(org-clock-in): Make sure that also tasks outside the narrowed
region will be clocked in correctly.
(org-clock-insert-selection-line): Widen the buffer so that we can
find the correct task heading.
* org.el (org-base-buffer): New function.
* org-exp.el (org-icalendar-cleanup-string): Make sure ',"
and ";" are escaped.
(org-print-icalendar-entries): Also apply
`org-icalendar-cleanup-string' to the headline, not only to the
summary property.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-export-preprocess-hook): New hook.
(org-export-preprocess-string): Call
`org-export-preprocess-hook'.
* org.el (org-font-lock-hook): New variable.
(org-font-lock-hook): New function.
(org-set-font-lock-defaults): Call `org-font-lock-hook'.
2008-06-17 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Modify license to no longer include back- and front
cover matters.
(Using the mapping API): New section.
(Agenda column view): New section.
(Moving subtrees): Document archiving to the archive
sibling.
(Agenda commands): Document columns view in the agenda.
(Using the property API): Document the API for
multi-valued properties.
Diffstat (limited to 'lisp/org/org-agenda.el')
-rw-r--r-- | lisp/org/org-agenda.el | 156 |
1 files changed, 138 insertions, 18 deletions
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 0f8fcf5a377..32efe5d8413 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -1,4 +1,4 @@ -;;; org-agenda.el --- The table editor for Org-mode +;;; org-agenda.el --- Dynamic task and appointment lists for Org ;; Copyright (C) 2004, 2005, 2006, 2007, 2008 ;; Free Software Foundation, Inc. @@ -6,7 +6,7 @@ ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 6.02b +;; Version: 6.05a ;; ;; This file is part of GNU Emacs. ;; @@ -34,7 +34,7 @@ (eval-when-compile (require 'calendar)) -(declare-function add-to-diary-list "diary-lib" +(declare-function diary-add-to-list "diary-lib" (date string specifier &optional marker globcolor literal)) (declare-function calendar-absolute-from-iso "cal-iso" (date)) (declare-function calendar-astro-date-string "cal-julian" (&optional date)) @@ -392,6 +392,12 @@ or `C-c a #' to produce the list." :tag "Org Agenda Skip" :group 'org-agenda) +(defcustom org-agenda-skip-comment-trees t + "Non-nil means, skip trees that start with teh COMMENT keyword. +When nil, these trees are also scand by agenda commands." + :group 'org-agenda-skip + :type 'boolean) + (defcustom org-agenda-todo-list-sublevels t "Non-nil means, check also the sublevels of a TODO entry for TODO entries. When nil, the sublevels of a TODO entry are not checked, resulting in @@ -464,7 +470,6 @@ N days, just insert a special line indicating the size of the gap." (const :tag "All" t) (number :tag "at most"))) - (defgroup org-agenda-startup nil "Options concerning initial settings in the Agenda in Org Mode." :tag "Org Agenda Startup" @@ -676,7 +681,7 @@ symbols specifying conditions when the grid should be displayed: today show grid on current date, independent of daily/weekly display require-timed show grid only if at least one item has a time specification -The second item is a string which will be places behing the grid time. +The second item is a string which will be placed behind the grid time. The third item is a list of integers, indicating the times that should have a grid line." @@ -849,8 +854,10 @@ to occupy a fixed space in the agenda display." "Text preceeding scheduled items in the agenda view. This is a list with two strings. The first applies when the item is scheduled on the current day. The second applies when it has been scheduled -previously, it may contain a %d to capture how many days ago the item was -scheduled." +previously, it may contain a %d indicating that this is the nth time that +this item is scheduled, due to automatic rescheduling of unfinished items +for the following day. So this number is one larger than the number of days +that passed since this item was scheduled first." :group 'org-agenda-line-format :type '(list (string :tag "Scheduled today ") @@ -946,6 +953,16 @@ a names face, or a list like `(:background \"Red\")'." :group 'org-agenda-column-view :type 'boolean) +(defcustom org-agenda-columns-remove-prefix-from-item t + "Non-nil means, remove the prefix from a headline for agenda column view. +The special ITEM field in the columns format contains the current line, with +all information shown in other columns (like the TODO state or a tag). +When this variable is non-nil, also the agenda prefix will be removed from +the content of the ITEM field, to make sure as much as possible of the +headline can be shown in the limited width of the field." + :group 'org-agenda + :type 'boolean) + (defcustom org-agenda-columns-compute-summary-properties t "Non-nil means, recompute all summary properties before column view. When column view in the agenda is listing properties that have a summary @@ -1071,6 +1088,8 @@ The following commands are available: (org-defkey org-agenda-mode-map "y" 'org-agenda-year-view) (org-defkey org-agenda-mode-map "\C-c\C-z" 'org-agenda-add-note) (org-defkey org-agenda-mode-map "z" 'org-agenda-add-note) +(org-defkey org-agenda-mode-map "k" 'org-agenda-action) +(org-defkey org-agenda-mode-map "\C-c\C-x\C-k" 'org-agenda-action) (org-defkey org-agenda-mode-map [(shift right)] 'org-agenda-date-later) (org-defkey org-agenda-mode-map [(shift left)] 'org-agenda-date-earlier) (org-defkey org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-date-later) @@ -1177,6 +1196,11 @@ The following commands are available: ["Schedule" org-agenda-schedule t] ["Set Deadline" org-agenda-deadline t] "--" + ["Mark item" org-agenda-action :active t :keys "k m"] + ["Show mark item" org-agenda-action :active t :keys "k v"] + ["Schedule marked item" org-agenda-action :active t :keys "k s"] + ["Set Deadline for marked item" org-agenda-action :active t :keys "k d"] + "--" ["Change Date +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)] ["Change Date -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)] ["Change Date to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)]) @@ -2012,7 +2036,8 @@ continue from there." (get-text-property p :org-archived) (org-end-of-subtree t) (throw :skip t)) - (and (get-text-property p :org-comment) + (and org-agenda-skip-comment-trees + (get-text-property p :org-comment) (org-end-of-subtree t) (throw :skip t)) (if (equal (char-after p) ?#) (throw :skip t)) @@ -2045,6 +2070,11 @@ no longer in use." (while org-agenda-markers (move-marker (pop org-agenda-markers) nil))) +(defun org-agenda-save-markers-for-cut-and-paste (beg end) + "Save relative positions of markers in region." + (mapc (lambda (m) (org-check-and-save-marker m beg end)) + org-agenda-markers)) + ;;; Agenda timeline (defvar org-agenda-only-exact-dates nil) ; dynamically scoped @@ -2425,6 +2455,7 @@ in `org-agenda-text-search-extra-files'." 'done-face 'org-done 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to location"))) @@ -2539,6 +2570,7 @@ in `org-agenda-text-search-extra-files'." (org-add-props txt props 'org-marker marker 'org-hd-marker marker 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'priority 1000 'org-category category 'type "search") (push txt ee) @@ -3065,6 +3097,7 @@ the documentation of `org-diary'." 'done-face 'org-done 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo @@ -3123,6 +3156,7 @@ the documentation of `org-diary'." (let* ((props (list 'face nil 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo @@ -3255,6 +3289,7 @@ the documentation of `org-diary'." (let* ((props (list 'mouse-face 'highlight 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" @@ -3269,7 +3304,7 @@ the documentation of `org-diary'." (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) 1 11)))) marker hdmarker priority category tags closedp - ee txt timestr) + ee txt timestr rest) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -3280,9 +3315,15 @@ the documentation of `org-diary'." timestr (buffer-substring (match-beginning 0) (point-at-eol)) ;; donep (org-entry-is-done-p) ) - (if (string-match "\\]" timestr) - ;; substring should only run to end of time stamp - (setq timestr (substring timestr 0 (match-end 0)))) + (when (string-match "\\]" timestr) + ;; substring should only run to end of time stamp + (setq rest (substring timestr (match-end 0)) + timestr (substring timestr 0 (match-end 0))) + (if (and (not closedp) + (string-match "\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)\\]" rest)) + (setq timestr (concat (substring timestr 0 -1) + "-" (match-string 1 rest) "]")))) + (save-excursion (if (re-search-backward "^\\*+ " nil t) (progn @@ -3309,6 +3350,7 @@ the documentation of `org-diary'." (let* ((props (list 'mouse-face 'highlight 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" @@ -3394,6 +3436,7 @@ FRACTION is what fraction of the head-warning time has passed." "Return the scheduled information for agenda display." (let* ((props (list 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'done-face 'org-done 'mouse-face 'highlight 'keymap org-agenda-keymap @@ -3469,6 +3512,7 @@ FRACTION is what fraction of the head-warning time has passed." (let* ((props (list 'face nil 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo @@ -4137,12 +4181,12 @@ written as 2-digit years." (setq org-agenda-ndays 7) (org-agenda-change-time-span 'week iso-week)) (defun org-agenda-month-view (&optional month) - "Switch to daily view for agenda. + "Switch to monthly view for agenda. With argument MONTH, switch to that month." (interactive "P") (org-agenda-change-time-span 'month month)) (defun org-agenda-year-view (&optional year) - "Switch to daily view for agenda. + "Switch to yearly view for agenda. With argument YEAR, switch to that year. If MONTH has more then 2 digits, only the last two encode the month. Any digits before this encode a year. So 200712 means @@ -4331,7 +4375,10 @@ so that the date SD will be in that range." (defun org-agenda-post-command-hook () (and (eolp) (not (bolp)) (backward-char 1)) - (setq org-agenda-type (get-text-property (point) 'org-agenda-type)) + (setq org-agenda-type + (or (get-text-property (point) 'org-agenda-type) + (get-text-property (max (point-min) (1- (point))) + 'org-agenda-type))) (if (and org-agenda-follow-mode (get-text-property (point) 'org-marker)) (org-agenda-show))) @@ -4890,6 +4937,69 @@ be used to request time specification in the time stamp." (org-agenda-show-new-time marker ts "S")) (message "Deadline for this item set to %s" ts))) +(defun org-agenda-action () + "Select entry for agenda action, or execute an agenda action. +This command prompts for another letter. Valid inputs are: + +m Mark the entry at point for an agenda action +s Schedule the marked entry to the date at the cursor +d Set the deadline of the marked entry to the date at the cursor +r Call `org-remember' with cursor date as the default date +SPC Show marked entry in other window +TAB Visit marked entry in other window + +The cursor may be at a date in the calendar, or in the Org agenda." + (interactive) + (let (pos ans) + (message "Select action: [m]ark | [s]chedule [d]eadline [r]emember [ ]show") + (setq ans (read-char-exclusive)) + (cond + ((equal ans ?m) + ;; Mark this entry + (if (eq major-mode 'org-agenda-mode) + (let ((m (or (get-text-property (point) 'org-hd-marker) + (get-text-property (point) 'org-marker)))) + (if m + (progn + (move-marker org-agenda-action-marker + (marker-position m) (marker-buffer m)) + (message "Entry marked for action; press `k' at desired date in agenda or calendar")) + (error "Don't know which entry to mark"))) + (error "This command works only in the agenda"))) + ((equal ans ?s) + (org-agenda-do-action '(org-schedule nil org-overriding-default-time))) + ((equal ans ?d) + (org-agenda-do-action '(org-deadline nil org-overriding-default-time))) + ((equal ans ?r) + (org-agenda-do-action '(org-remember) t)) + ((equal ans ?\ ) + (let ((cw (selected-window))) + (org-switch-to-buffer-other-window + (marker-buffer org-agenda-action-marker)) + (goto-char org-agenda-action-marker) + (org-show-context 'agenda) + (select-window cw))) + ((equal ans ?\C-i) + (org-switch-to-buffer-other-window + (marker-buffer org-agenda-action-marker)) + (goto-char org-agenda-action-marker) + (org-show-context 'agenda)) + (t (error "Invalid agenda action %c" ans))))) + +(defun org-agenda-do-action (form &optional current-buffer) + "Evaluate FORM at the entry pointed to by `org-agenda-action-marker'." + (let ((org-overriding-default-time (org-get-cursor-date))) + (if current-buffer + (eval form) + (if (not (marker-buffer org-agenda-action-marker)) + (error "No entry has bee selected for agenda action") + (with-current-buffer (marker-buffer org-agenda-action-marker) + (save-excursion + (save-restriction + (widen) + (goto-char org-agenda-action-marker) + (eval form)))))))) + (defun org-agenda-clock-in (&optional arg) "Start the clock on the currently selected item." (interactive "P") @@ -4898,12 +5008,20 @@ be used to request time specification in the time stamp." (org-clock-in arg) (let* ((marker (or (get-text-property (point) 'org-marker) (org-agenda-error))) - (pos (marker-position marker))) + (hdmarker (or (get-text-property (point) 'org-hd-marker) + marker)) + (pos (marker-position marker)) + newhead) (org-with-remote-undo (marker-buffer marker) (with-current-buffer (marker-buffer marker) (widen) (goto-char pos) - (org-clock-in arg)))))) + (org-show-context 'agenda) + (org-show-entry) + (org-cycle-hide-drawers 'children) + (org-clock-in arg) + (setq newhead (org-get-heading))) + (org-agenda-change-all-lines newhead hdmarker t))))) (defun org-agenda-clock-out (&optional arg) "Stop the currently running clock." @@ -5141,6 +5259,8 @@ belonging to the \"Work\" category." (provide 'org-agenda) +;; arch-tag: 77f7565d-7c4b-44af-a2df-9f6f7070cff1 + ;;; org-agenda.el ends here -;; arch-tag: 77f7565d-7c4b-44af-a2df-9f6f7070cff1 + |