* contrib/lisp/org-checklist.el
- Fix some problems with the print/export feature in org-checklist.
- Add custom options for this module
- Fix some interaction with a2ps
- Only reset checkboxes if TODO state is done.
* lisp/org.el
- Add org-checklist to org-modules
Changing the priority of a task when the point is after the heading
(anywhere inside the task) worked but aligning the tags failed with
a "not on a heading" error due to the save-excursion not including
the tag alignment. This change moves back to the heading and
includes that during tag alignment to remove the error text.
Patch by Bernt Hansen.
Write \n instead of \xa in the regexp, this is clearer.
And make the \n optional so that also lines at the end of
the buffers will still be matched as headlines.
This commit defines three new functions in org-timer.el:
- org-timer-set-timer, bound to `C-c C-x ;' in Org buffers
and to `;' in Org agenda buffers. This function sets a
timer for the headline the cursor is currently it. Up to
three timers can be set.
- org-timer-show-remaining-time: this shows the remaining
time for the last set timer.
- org-timer-reset-timers: this reset all timers.
This functionality was requested by Samuel Wales and emulates
that of tea-time.el -- see the emacswiki doc about tea-time.el:
http://www.emacswiki.org/emacs/tea-time
When org-provide-todo-statistics is set to 'all-headlines, the
statistics are performed against all headlines, including those
with no TODO keyword.
This was requested by David A. Gershman.
Non-nil means modify the regexp in org-set-font-lock-defaults so
that headlines are fontified till the end of the line. This is
useful when setting a background color for the org-level-* faces.
This defaults to nil so that the old behavior is preserved.
For this we took another look at when drawers actually have to be
hidden again and found that CONTENTS view does not need it, and that
CHILDREN view only needs it before the first child.
The second speed-up comes from advising outline-end-of-subtree to use
the Org version when in org-mode.
The third speed-up comes from using a better way to find the next
visible line, using `next-single-char-property-change'.
Finally, `org-forward-same-level' and `org-backward-same-level' are
faster versions of their outline equivalents and are now bound to
`C-c C-f' and `C-c C-b'.
`org-read-date' was loosing the focus when the calendar was displayed on
a separate frame. This patch by Robert Goldman solves it by introducing
a new macro `org-save-frame-excursion' which preserve the frame focus.
See this thread: http://article.gmane.org/gmane.emacs.orgmode/15528
(This fixes the issue I was trying to fix in a previous commit.)
This was a proposal by Samuel Wales. After the user selected a
refiles target, we make sure that the fully qualified target is in the
history, so that next time, UP will bring back exactly this target.
Before this patch the completion mechanism was this: TAB let's you
complete through link prefixes (gnus: file: bbdb: ...) then RET allows
completion if a completion mechanism is available for the chosen prefix.
Navigating through the history of stored links was a separate process,
available through the up/down M-n/M-p keys.
Now TAB not only completes through link prefixes but also through stored
links. This behavior matches other Emacs completion mechanisms a bit
more closely.
If you have a TODO keyword like "DELEGATED" and an entry like
"* Delegated this stuff to X", then you want this entry to be
in the list of possible targets. For that we need to distinguish
between DELEGATED as a keyword and "Delegated" as a simple word,
so (case-fold-search nil) seems relevant.
This default to t, so the default behavior of org-mode doesn't
change. But the user might want to keep at least one blank line
at the end of the remembered subtree, this option lets her do it.
Bernt Hansen writes:
> I have a monthly repeated task (Archive tasks) that has lots of
> old clock time on it currently but has never been marked DONE
> since the creation of the property LAST_REPEAT_TIME. If this
> task is clocking when Emacs exits and you restart emacs and
> answer Yes to continue the clock - the modeline has the total
> time for the parent task (151:04 instead of the total time for
> this task (5:04). If I clock the task in again the modeline is
> correct.
Many different people want to set many different variables in a
buffer-local way for export. This cannot be done with file variables,
because the Org buffer is not current while the exporter is running.
Lots of variables can be set with the #+OPTIONS lines, but finding
abbreviations goes only so far.
Therefore we have now a general mechanism that can be used to bind
variables during export operations.
a line like: #+BIND: variable value
will bind the variable to value. For example,
the line
>> #+OPTIONS: toc:nil
can now equivalently be written as
>> #+BIND: org-export-with-toc nil
Bernt Hansen writes:
> I recently noticed that using SPACE or TAB in the agenda displays
> the task in the other window but all of the drawers are exposed.
> If you fold the org file with S-TAB to Overview or Contents
> display and then switch to the agenda and SPACE or TAB on a
> folded task it unfolds the entire thing including the drawers.
>
> Expanding the file to SHOW ALL and then using follow mode from
> the agenda shows me the view I'm really looking for so that's
> what I'm doing as a workaround right now.
>
> While doing my weekly review of tasks I use follow mode to view
> task detail and the expanded :LOGBOOK: and :PROPERTIES: drawers
> hide detail scrolled off the bottom of the window. My :LOGBOOK:
> drawer for repeated tasks tends to be l-o-n-g and shoves detail
> way down the file (such as my weekly review checklist :) ).
>
> Is it possible to control expansion of the drawers when
> displaying a task from the agenda? The view I'm looking for is
> the same as SHOW ALL from S-TAB. It seems that if the task is
> expanded from the agenda it expands everything including the
> drawers.
Customize the new variable org-footnote-auto-adjust or use the STARTUP
option fnadjust to get automatic renumbering and sorting of footnotes
after each insertion/deletion.
Agenda bulk commands on marked entries now can also set the scheduling
date or a deadline. Normally, all entries will be set to the
specified date. However, when writing the change as "++5d" or "++2w",
then each time stamp will independently be shifted by that amount.
TAB now cycles visibility in plain lists if the cursor is in a plain
list. This corresponds now to the new default value `t' of
`org-cycle-include-plain-lists'. If you want to treat plain list
items as part of the outline hierarchy during cycling of outline
headings (this is what a `t' value used to mean), set this variable to
`integrate'.
Patrick Bahr writes:
> I use tags-todo searches in my custom agenda
> commands. Unfortunately, tags-todo does not honour the
> org-agenda-todo-list-sublevels variable which I want to use in
> order to ignore nested todo items. Is there a way to persuade
> tags-todo to do this? I know that there is a variable
> org-agenda-tags-todo-honor-ignore-options which does this for
> org-agenda-todo-ignore-with-date etc. It would be nice if there
> is something similar to this for
> org-agenda-todo-list-sublevels. Even better would be if this
> could be adjusted per individual tags-todo search. For example
> for certain cases I do not want to see nested TODO items but I do
> want to see nested WAITING items. With two tags-todo searches
> having different behaviour on nested todo items this would be
> feasible.
This behavior is a loft-over from the old days, and I am changing
this now.
This commit implements refiling directly from the agenda.
It also implements a mechanism for selecting a number of entries in
the agenda and then executing a command on all of them. Possible
actions include archive, refile, todo state setting, and more.
Michael Brand writes:
> 2) One could like to have configurable left/right alignment, even
> combinable with column width, e. g.
>
> | <l10> | <r> |
> | 3.14 | 0x10 |
> | 3.141592=> | 0x32 0x10 |
Good idea, I would say.
When yasnippet is active, it is the official binding of TAB. That
means, the org-mode self-insert command must know that it may blank
table fields if the last command was yas/expand.
Clicking on the clock in the mode line now pops up a menu with
clocking options.
A new command `C-c C-x C-e' allows to set or change the effort
estimate of the task currently being clocked. This is mainly useful
when using an alert notification when the task should be finished.
Based on a patch by Konstantin Antipin.
When the variable `org-treat-S-cursor-todo-selection-as-state-change'
is turned off, switching TODO keywords with S-cursor will not only
turn off logging, but also blocking.
This commit changes which time is shown in the mode line while
clocking. Normally this will now be the total time ever clocked on
this task and its children.
However, when the task is a repeating one, only the time since the
last reset of the task will be shown. The time of the last reset is
now recorded in a LAST_REPEAT property.
You can also set the CLOCK_MODELINE_TOTAL property to the value
"current" to only show the current clocking instance. Or it may be
the value "today", to only add up the time spent today on this task.
Other possible values are "repeat", "all", or "auto".
Finally, you can set your default for this property with
`org-clock-modeline-total'.
The content of blocks like #+begin_example will be marked with a
separate face. That same face is also used for single lines
introducing text for specific backends.
This commit introduces two new variables:
- org-treat-insert-todo-heading-as-state-change
Default is nil. When set to t, adding a new TODO item will be done
by adding an item and the executing an "official" state change which
potentially will trigger state logging.
- org-treat-S-cursor-todo-seletion-as-state-change
Default is t. When set to nil, selecting a TODO state with
S-left/right will not trigger logging, only selecting a new state
with `C-c C-t'. I actually like this a lot and would even consider
making this the default.
Setting the new option `org-hierarchical-todo-statistics' to nil will
make TODO statistics to be computed recursively. This means, not only
the direct children of a node contribute to its TODO statistics, but
the entire subtree.
You can also set the COOKIE_DATA property and add the word "recursive"
there to get recursive statistics for a specific tree.
Hsiu-Khuern Tang writes:
> Hi Carsten,
>
> You recently changed org-edit-src-code to use a separate buffer
> instead of an indirect buffer. One side effect of this is that I
> can no longer edit several code examples at the same time:
> opening the second buffer will silently discard any changes made
> in the first. I would prefer this behavior: when opening the
> second edit source buffer, write any changes in the first buffer
> to the originating Org buffer (but don't save it, of course).
>
> Another approach is to use different buffer names.
The better approach is clearly to allow several buffers, now
implemented with this commit.
The commit implements a general mechanism for providing special
(e.g. completion) support for specific link types when entering links
with `C-c C-l'. After calling `C-c C-l', you may now press RET after
inserting a link prefix, and Org will look for a function
`org-PREFIX-complete-link'. Such functions may be defined for any
link types, including link abbreviations. Currently, Org has
`org-file-complete-link' for file name completion, and
`org-bbdb-complete-link' for completion of record names from BBDB.
Peter Westlake writes:
> On Fri, 8 May 2009 06:24:54 +0200, "Carsten Dominik"
> <carsten.dominik@gmail.com> said:
>
> I anyone could make an example that allos me to reproduce this
> problem, then I might be able to fix it.
>
> It's trivial:
>
> * top
> ** sub 1
> Set org-cycle-include-plain-lists.
> Type TAB on this line, and the whole of top gets folded.
>
> ** sub 2
> This entry is not needed to reproduce the bug. It just
> makes it more visible.
There was indeed a bug, I think it is fixed now.
Editing source code examples and pictures is not done in a truly
separate buffer, not in an indirect buffer. Indirect buffers had
caused problems with fontification, for example.
Thomas Morgan writes:
> I just tried exporting an Org file with LaTeX fragments to HTML
> on a computer that doesn't have dvipng. There were error messages
> in *Messages* ("Failed to create png file..."), but this wasn't
> obvious to me at first glance because those messages were replaced
> in the echo area by "Exporting... done" before I could see them.
>
> So I was wondering, is there a good way to make the user aware of
> those errors? Maybe by printing "Exporting... done (with errors)"?
There is now a better error message when either the latex or the
dvipng program does not exist.