Commit Graph

59 Commits

Author SHA1 Message Date
Carsten Dominik acfcb14c82 Time stamps: Changing time ranges as a block.
Anupam Sengupta writes:

>  I routinely use time ranges (and occasionally time-stamp ranges)
>  in my org files to document the scheduled block of time for a
>  meeting or activity.  As an example, I will mark meetings as:
>
>  * A Meeting
>   <2009-03-12 Thu 10:00-11:00>
>
>  As often happens with meetings, rescheduling needs to be done and
>  I use S-<up> or S-<down> on the time-stamp to make the
>  modifications.  While this works fine, it usually leads to a
>  duplication when the *time* part of the time-stamp needs to be
>  changed.
>
>  For the same example above, if the time-block has now changed to
>  11:00-12:00, then I need to do S-<up> on both the "10:00" and the
>  "11:00" string.  I.e,
>
>
>  * A Meeting
>   <2009-03-12 Thu 11:00-11:00>
>                    ^
>                    +---------------- After the first S-<up>
>
>  * A Meeting
>   <2009-03-12 Thu 11:00-12:00>
>                          ^
>                          +---------------- After the second S-<up>
>
>  Can we have a feature (with a toggle option perhaps) which would
>  *move* the block (i.e., both time entries) by the same amount
>  when either one is moved in the same direction. I.e., the
>  proposal is to have:
>
>  * A Meeting
>   <2009-03-12 Thu 11:00-12:00>
>                    ^     ^
>                    |     |
>                    |     +---------- Automatically shifted
>                    +---------------- After the S-<up>

This is in fact how changing time works in many applications, and
it does make sense here as well.  The commits implements this
change.

It also implements a way to change the start time of an entry from
the agenda.  The date is normally changed with S-right/left.
Now, if you add a C-u prefix, the hour will be changed.  If you
immediately press S-right/left again, hours will continue to be
changed.

A double prefix will do the same for minutes.
2009-03-14 08:02:09 +01:00
Carsten Dominik 6cda490b12 Cloning tasks
New command to clone tasks, with time stamps shifted.
2009-03-11 15:13:59 +01:00
Carsten Dominik cf1bbf8ea1 Documentation: Improve docs about publishing 2009-03-10 08:13:24 +01:00
Carsten Dominik cd244078a0 Export: New in-buffer options to set content of meta tag data
New in-buffer options #+DESCRIPTION and #+KEYWORDS can be used to set
the corresponding meta tag entries in XHTML export.
2009-03-08 23:10:55 +01:00
Carsten Dominik a5b2a0c759 Documentation: Improve and collect documentation about the match view 2009-03-03 10:20:23 +01:00
Carsten Dominik 89e0d3608d Tags: Fix implementation of line breaks in fast tag interface
Patch by Christopher Suckling
2009-03-01 13:56:48 +01:00
Carsten Dominik 75ba44f877 Docs: Improve documentation for BBDB anniversaries 2009-02-27 08:27:44 +01:00
Carsten Dominik 9989e5f030 orgstruct++-mode: Make more visible in docs, parse item body
orgstruct++-mode is an enhanced version of orgstruct mode that
also imports all indentation and paragraph settings into the major
mode.  Furthermore, it now allows to use M-RET and M-S-RET in items
after the first line.  The latter change was a request by Austin
Frank.
2009-02-22 12:42:20 +01:00
Carsten Dominik ccbfe02336 Documentation improvements 2009-02-20 22:52:01 +01:00
Carsten Dominik dc6de43ae4 Docs: Document #+LATEX_HEADER 2009-02-20 07:49:19 +01:00
Carsten Dominik 8b31b5e798 Tags: Implement newlines for fast tag interface
This commit makes it possible to force new lines and even empty lines
in the fast tag selection interface, either by splitting tags
definition into several lines, or by inserting "\n" into the tags
list, or by inserting (:newline) into the tags alist.

This is largely a patch from Christopher Suckling
2009-02-19 09:43:51 +01:00
Carsten Dominik e6e3d97797 Checkboxes: Enforce sequential processing with ORDERED property
When the ORDERED property of an entry is set, checkboxes must be
completed in sequence.
2009-02-19 09:13:08 +01:00
Carsten Dominik a55dd5a9e6 Docs: Mention more variables in the manual.
The variables `org-agenda-todo-ignore-deadlines' and
`org-agenda-todo-ignore-with-date, and
`org-agenda-tags-todo-honor-ignore-options' are now all mentioned in
the docs.
2009-02-18 15:51:51 +01:00
Carsten Dominik 626e47ce7c Docs: Improve consistency of checkbox command description. 2009-02-15 22:34:19 +01:00
Carsten Dominik edd2aab5ee Document the special meaning of LEVEL when `org-odd-levels-only' is used. 2009-02-12 21:22:26 +01:00
Carsten Dominik f939957dc1 State Notes: Allow capturing state notes in a drawer, LOGBOOK
Wanrong Lin writes:

     2. Can we put all of those state change history logging messages
        into a drawer like "STATE-HIST" (when the drawer is defined in
        org-drawers), so it is less intrusive in the file?

Yes we can.  This commit provides this functionality.  It introduces a
new drawer, LOGBOOK.  When the variable
`org-log-state-notes-into-drawer' is set, state change time stamps and
notes will go into this drawer, or another one specified by that
variable.
2009-02-12 18:29:56 +01:00
Carsten Dominik babcfd2d58 Docs: Better documentation of attributes for images 2009-02-11 11:12:13 +01:00
Carsten Dominik c9e266b0ec HTML Export: Add CSS classes for section numbers 2009-02-11 10:25:06 +01:00
Carsten Dominik 058265c32a Clock: Document persistence.
David Lord writes:

    I can see that org-clock-persistence-insinuate appeared in 6.11
    but I can't find it in the manual.  Does it need to be added?

Yes, right.
2009-02-05 14:52:24 +01:00
Carsten Dominik dc6658d9ed Blocking: Make it possible that checkboxes block TODO state changes
See the documentation for details.
2009-01-30 18:31:31 +01:00
Carsten Dominik 49e8ee37a8 Dependencies: Integrate John Wiegley's TODO dependency code.
See the documentation for details.
2009-01-28 09:02:37 +01:00
Carsten Dominik 773a3c624e Support for Shift Selection
Emacs 23 introduces `shift-selection-mode', and even turns it on by
default.  Therefore, it is fair to assume that users of Emacs 23 will
expect to be able to select a region by holding down shift will moving
the cursor.  This conflicts with the use of shifted cursor keys in
Org-mode for other purposes, in particular to "change the item under
the cursor", like it is done for time stamps, item bullet types, TODO
keywords and priorities.

This commit tries to support `shift-selection-mode' as much as possible,
while retaining these valuable commands keys for Org-mode.  The
following things are changed:

1. The range of contexts where Org's commands do act is reduced.

  - S-up and S-down no longer jump to the previous and next plain list
    item - you can use the paragraph commands C-up and C-down for this
    quite well.

  - S-left and S-right only change the bullet type of a plain list
    item when the cursor is *exactly* on the bullet, not just anywhere
    in the item line.

2. When a S-cursor key is used outside a special context, a region is
   started or extended.

3. When a region has already been started, it will be continue to
   extend even if the S-cursor keys move the cursor into a special
   context.

4. If you want S-cursor selection to work in headlines as well, you
   can set the variable `org-support-shift-select' to
   `even-in-headlines'.  Then you need to rely on `C-c C-t' to set
   TODO keywords, and on `C-c ,' to set priorities.

If you want everything to behave the way it was, set
`org-support-shift-select' to nil.
2009-01-26 16:23:44 +01:00
Carsten Dominik e793158bc8 Tables: Support for references to remote tables
Formulas can now refer to fields and regions in other tables, be it in
the same file or even in different files.

This also opens the door for more interesting R support, because
arbitrary tables in a file can now be accessed with appropriate
commands.

Finally, this commit also introduces a convenience for creating
references in tables.  For the purpose of references, it will always
be *assumed* that there is another hline at the end if each table.  So
for example in a table that has only a single hline, to separate
header from data, you can now access all of column two with
"@I$2..@II$2".
2009-01-24 10:51:21 +01:00
Carsten Dominik e2371c542b Tables: Document use of C-c RET add hline and then move below it. 2009-01-21 13:14:07 +01:00
Carsten Dominik 0e46dc3f9c LaTeX Export: Allow class definition in property
When exporting a region starting with a headline, a LaTeX_CLASS
property in that entry will be honored.

Requested by Robert Goldman.
2009-01-20 09:07:35 +01:00
Carsten Dominik 1097db056e Documentation: Small fixes. 2009-01-20 08:21:50 +01:00
Carsten Dominik f65165e027 Manual: Add link examples for text search and IDs.
Patch by Daniel Clemente.
2009-01-19 23:48:14 +01:00
Carsten Dominik ff85ca95db Export: Optionally use <textarea> for example export.
Examples and src block can now be exported as <textarea> elements to
HTML if this is desired.  See the documentation for more details.
2009-01-19 23:13:58 +01:00
Carsten Dominik af62bbd44c Documentation: Remove incorrect description of C-c C-q in tables.
Reported by Matt Lundin.
2009-01-16 18:50:30 +01:00
Carsten Dominik b3d6d903bc Export: Better handling of colon examples.
Lines preceded by a colon are treated as fixed-width examples.
This commit improves the moment when the protection of these lines
happens during preprocessing.  And it enforces that a space must
follow the colon for the line to be treated in this way.
2009-01-09 08:28:43 +01:00
Carsten Dominik b0f848e873 Timer: Pause and continue, and mode-line display.
The relative timer is now shown in the mode-line while running.
There is a new command to pause and continue it.

Thanks to Alan Davis for driving this change.
2009-01-08 11:07:27 +01:00
Carsten Dominik 71aeeec70a Footnotes: Add ChangeLog entries. 2008-12-31 01:21:48 +01:00
Carsten Dominik 3018b775e2 Coderefs: Add ChangeLog entries. 2008-12-26 23:23:39 +01:00
Carsten Dominik 2deee3e6e4 Column view: Capture also from locations in other files.
The dynamic block capturing column view has an :id parameter that does
select from where the column view should be captured.  The routine
searching for this entry so far only searched the current file, now it
uses the full ID API to find the entry also in another file.

Furthermore, a value "file:path/to/file.org" will capture the global
column view of that file.

Report by Francois Lagarde.
2008-12-22 08:56:42 +01:00
Carsten Dominik dadc9a1af1 Tables: Implement last-row references.
After the failed implementation of `@0' as a reference for the last
line, this is a second attempt to provide such references.  I would
have liked to allow `@last' as the reference, that would have been
beautiful.  However, too many regular expressions directly search for
`@' followed by a number, so this is too hard to implement.

Therefore, I am now turning the last row into a row of implicitly
named fields.  From now on, $LR1, $LR2,... can be used to refer to
fields in the last row.  These names may also appear on the left hand
side of formulas.
2008-12-19 18:28:58 +01:00
Carsten Dominik 020c9cb3bf Fix typos and grammatical issues in the documentation. 2008-12-17 12:10:24 +01:00
Carsten Dominik 0ea9fb46c5 Implement longtable support for LaTeX export.
Exporting tables to LaTeX suffered from the problem that Org tables
are often long, but that the tabular environment in LaTeX cannot
handle long tables.  This patch fixes this issue.

LaTeX export can now deal with very long tables, by setting an option
in the "ATTR_LaTeX:" line.  Also, you can specify the alignment by
hand.  Here is an example:

Also, table export now correctly deals with tables that start with a
hline.  In such a case, also the LaTeX version will have this extra
hline before the first line.
2008-12-16 07:04:05 +01:00
Carsten Dominik 45102b68ce Captions and attributes for images and tables during export
Tables, and Hyperlinks that represent inlined images, can now be
equipped with additional information that will be used during
export.  The information will be taken from the following special
lines in the buffer and apply to the first following table or
link.

  - #+CAPTION: :: The caption of the image or table.  This string
       should be processed according to the export backend, but
       this is not yet done.
  - #+LABEL: :: A label to identify the figure/table for cross
       references.  For HTML export, this string will become the
       ID for the `<div class="figure">' element that encapsulates
       the image tag and the caption.  For LaTeX export, this
       string will be used as the argument of a `\label{...}'
       macro.  These lables will be available for internal links
       like `[[label][Table] ]'.
  - #+ATTR_HTML: :: Attributes for HTML export of image, to be
       added as attributes into the `<img...>' tag.  This string
       will not be processed, so it should have immediately the
       right format.
  - #+ATTR_LaTeX: :: Attributes for LaTeX export of images, to
       be inserted into the optional argument of the
       `\includegraphics[...]{file}' command, to specify scaling,
       clipping and other options.  This string will not be
       processed, so it should have immediately the right
       format, like `width=5cm,angle=90'

For LaTeX export, if either a caption or a label is given, the
element will be exported as a float, i.e. wrapped into a figure
or table environment.
2008-12-10 12:50:07 +01:00
Carsten Dominik aa07f68c12 Better handling of export options.
This patch improves the internal handling of the large number of
export options that Org-mode has.  In particular, it now defines a
single constant, `org-export-plist-vars' that contains the full list
of options, and how these can be accessed through variables, and
through the #+OPTIONS line.  Before the patch, there used to be a
separate list or the OPTIONS handling, which has gotten out of sync.
This now no longer can happen.

Also, this patch adds two new variables, `org-export-with-priority',
and `org-export-with-todo-keywords', which can be used to turn the
export of TODO keywords and priority cookies on and off, so that these
can simply disappear and not be shown in the exported file.  In fact,
the default for the priority cookie is to remove it.
2008-12-03 07:33:05 +01:00
Carsten Dominik 4800fd8b7c Fix bugs in implementation and documentation of the mapping API.
There were bugs in the mapping API, pointed to by Samuel Wales:

    Manual says:

     The following example counts the number of entries with TODO keyword
     WAITING, in all agenda files.

        (length (org-map-entries t "/+WAITING" nil 'agenda))

    Org says invalid function for the string.

First of all, the example in the manual was wrong, the "nil" should be
gone.  Second, the mapping function did not return all results in a
list, so that `length' could not count them.

This patch fixes these issues.
2008-12-02 16:53:25 +01:00
Carsten Dominik 269c5a85bc New ways to specify time comparison values in property searches.
In addition to "<now>", "<today>", "<yesterday>", and
"<tomorrow>", there are more special values accepted now in
time comparisons in property searches:  You may use strings
like =<+3d>= or =<-2w>=, with units d, w, m, and y for day,
week, month, and year, respectively

Thanks to Linday Todd for this proposal.
2008-11-29 19:12:03 +01:00
Carsten Dominik 733dfca36b Allow to exclude specific tags from inheritance.
So far, the only way to select tags for inheritance was to
allow it for all tags, or to do a positive selection using
one of the more complex settings for
`org-use-tag-inheritance'.  It may actually be better to
allow inheritance for all but a few tags, which was difficult
to achieve with this methodology.

This patch introduces a new option,
`org-tags-exclude-from-inheritance' which allows to specify an
exclusion list for inherited tags.
2008-11-27 13:15:29 +01:00
Carsten Dominik 4b2d3c6feb Implement timer for timed notes.
This patch implements a relative time for taking timed notes, useful
for example while watching a video, or during a meeting which is also
recorded.  Here are the new commands:

    - `C-c C-x .' ::
      Insert a relative time into the buffer.  The first time
      you use this, the timer will be started.  When called
      with a prefix argument, the timer is reset to 0.

    - `C-c C-x -' ::
      Insert a description list item with the current relative
      time.  With a prefix argument, first reset the timer to 0.

    - `C-c C-x 0' ::
      Reset the timer without inserting anything into the buffer.
      By default, the timer is reset to 0.  When called with a
      `C-u' prefix, reset the timer to specific starting
      offset.  The user is prompted for the offset, with a
      default taken from a timer string at point, if any, So this
      can be used to restart taking notes after a break in the
      process.  When called with a double prefix argument
      `C-c C-u', change all timer strings in the active
      region by a certain amount.  This can be used to fix timer
      strings if the timer was not started at exactly the right
      moment.
2008-11-25 12:07:23 +01:00
Carsten Dominik 8e31f6f99c Fix publishing of component files.
When starting the publishing process with
`org-publish-current-project' from a file that is located in a project
that is also a component of a parent project, this patch now makes
sure that the entire parent project is published instead.
2008-11-25 10:56:37 +01:00
Carsten Dominik 1ba1ac5045 Merge changes from downstream Emacs. 2008-11-24 12:21:40 +01:00
Carsten Dominik e51d317a21 New minor org-remember-mode, for extra keybindings.
This patch defines a new minor mode, `org-remember-mode', which is
turned on when Org-mode is used to handle a remember buffer.  This
provides a safe way to modify keybindings (in
`org-remember-mode-map'), without overwriting keys in `org-mode-map'.
Since Org put remember buffers into Org-mode, remember-mode-map will
be entirely ignored.
2008-11-18 20:32:01 +01:00
Carsten Dominik 4954225ce3 Implement link translation.
This patch implements the possibility to translate links.
It can be useful if use both planner and Org-mode, if you sometimes
copy text from one side to the other and you do not want to worry
about link syntax.  This patch allows links created with planner to
function correctly in Org-mode.  I would probably be simple to
implement the reverse conversion in planner as well.

This patch is a first shot at this functionality and very likely can
be improved.
2008-11-14 14:13:48 +01:00
Carsten Dominik 269b49996f Document the bbdb links may use a regular expression.
Things like [[bbdb:R.*Stallman]] are allowed as bbdb links and will do
the right thing.
2008-11-14 09:09:00 +01:00
Carsten Dominik 9a46feebfc Implement refiling for regions.
The refile command allows to move a subtree to under some other
heading, in the current file or even in a different file.

Sometimes one has a number of sibling subtrees that should all be
refiled to the same location.  This patch implements a simplification
for this process.  You can mark the region of subtrees (using
transient-mark-mode in required for this) and then move them all with
a single command.
2008-11-10 22:17:57 +01:00
Carsten Dominik e41a0d9608 Implement table formulas for clocktables.
Org-mode produces summaries of clocked items in the form of Org-mode
tables.  This patch implements the possibility to define formulas that
should be applied to the clock tables, in order to do additional
analysis.

Formulas for clock tables are supported in two ways.

First, a formula can simply be added by hand to a table.  Part of this
patch makes sure that, when the previous version of the table contains
a #+TBLFM: line, it will be copied to the new version.

Secondly, the clocktable definition allows a new parameter
`:formula'.  The string value of this parameter will be installed as
the formula line for the table.  If a formula parameter is given, it
will overrule any previous formula line.

As a special case, using the symbol `%' as the formula will install a
formula that will compute the fraction of total time that was spent in
a subtree.

In both cases, the formulas will be immediately evaluated after the
table has been created.
2008-11-10 20:57:48 +01:00