Commit Graph

522 Commits

Author SHA1 Message Date
Julien Danjou f73b121549 org-capture: use org-eval
* org-capture.el (org-capture-fill-template): Use org-eval.
2010-12-20 13:12:48 +01:00
Julien Danjou ce837d0e8f org: rework `org-set-property'
* org-capture.el (org-capture-fill-template): Use `org-set-property'
directly.

* org.el (org-set-property): Split property and values reading.
(org-read-property-name, org-read-property-value)
(org-set-property-function): New functions.
(org-property-set-functions-alist): New variable.

The goal of this patch is to introduce a special variable
`org-property-set-functions-alist'. This variable allows to read
properties values in a more intelligent way from `org-set-property' or
from `org-capture'.

For that, it simplifies the `org-set-property' code and remove
duplication between `org-capture' and `org-set-property'.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-17 18:37:30 +01:00
Carsten Dominik 8aacc708dd Capture: Better error message for invalid entry-type templates
* lisp/org-capture.el (org-capture-place-entry):
(org-capture-insert-template-here): Check tree for validity before
pasting it.
2010-12-16 16:51:04 +01:00
Carsten Dominik 7666ba421f Version number back to 7.4 2010-12-10 18:49:40 +01:00
Carsten Dominik 76a25715c9 Bump version number to 7.5 2010-12-10 18:43:10 +01:00
Carsten Dominik 970b2f7b88 Allow to jump to capture template after finalizing
* lisp/org-capture.el (org-capture-finalize): New prefix argument
STAY-WITH-CAPTURE.
(org-capture-refile): Improve docstring.
* doc/org.texi (Using capture): Document using prefix arguments for
finalizing capture.
2010-12-06 09:32:24 +01:00
Julien Danjou 13f066d66d org-capture: use org-today
* org-capture.el: Use org-today.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-01 00:50:08 +01:00
Allen S. Rout f8e6119131 New hook to run after finalizing capture, suitable for deleting a frame
* lisp/org-capture.el (org-capture-after-finalize-hook): New hook.
(org-capture-finalize): Run the new hook.

TINYCHANGE
2010-11-27 07:55:21 +01:00
Carsten Dominik 341e9ce1d7 Date tree capture with prompt for date
* doc/org.texi (Template elements): Document the new entry type.

* lisp/org-capture.el (org-capture-templates): Add new option to customize
type and docstring.
(org-capture-set-target-location): Interpret the file+datetree+prompt
entry.
2010-11-25 17:00:57 +01:00
Carsten Dominik dbc8a8ede1 Remove the autoload for org-capture-templates
This seems to have been causing than solving problems.
2010-11-12 16:26:48 -06:00
Bastien Guerry 6630edbd0f Set version number to 7.3 2010-11-07 14:52:14 +01:00
Carsten Dominik 82af72eef7 Push version number to 7.02trans 2010-10-29 09:11:46 +02:00
Carsten Dominik 7635429d44 New capture property :kill-buffer
* lisp/org-capture.el (org-capture-templates): New capture
property `:kill-buffer'. (org-capture-finalize): Kill target buffer
if that is desired.
(org-capture-target-buffer): Remember if we have to make the buffer.

Proposal by Samuel Wales.
2010-10-26 17:46:48 +02:00
Carsten Dominik 2a58795e19 Fix empty line bug in capture
* lisp/org-capture.el (org-capture-empty-lines-before):
(org-capture-empty-lines-after): Make sure the n=0 does not insert any
newlines.

Marcel van der Boom writes:

> I'm in the process of migrating from org-remember to org-capture.
> Pretty easy going so far, but it seems org-capture adds newlines, which
> I think it should not do.
>
> My (test) capture-template is:
>
> (("t" "Todo" entry
>  (file "~/.outlet/GTD.org")
>  "* TODO %?" :prepend t :empty-lines 0)
>
> with the intention of inserting the captured task on the
> first line of the file ~/.outlet/GTD.org. What happens when I capture
> an task is this:
>
> <beginning of file>
>
> * TODO Captured task
>
> <original first line of file here>
> ....
>
> Both before and after the task is a newline. Also, when capturing and
> cancelling the capture with C-c C-k the newlines remain whereas the
> task is removed.
2010-10-26 06:34:16 +02:00
Carsten Dominik a2c342308d Fix placing capture items at beginning of buffer.
* lisp/org-capture.el (org-capture-place-entry): If the first
line is already a headline, just stay there.

Patch by THomas Fuchs.
TINYCHANGE

> I'm trying to capture and file an entry as an top-level entry as first entry

> in an org file without config at the beginning (no "#+").
> This leads to filing the entry as _second_ headline in the org file.

> The template is:
> ("z" "test" entry (file "~/Data/z.org") "* %^{Note} %t  :NOTE:\n %?"
> :prepend t)
>
> I think this is due to jumping over lines starting with "#+" at the
> beginning of the org file
> (line 715 in org-capture.el (org-capture-place-entry)).
> My file has no config header and starts with the first headline. Calling
> outline-next-heading
> in this situation leads to jumping to the second headline in the file.
2010-10-16 07:17:00 +02:00
Carsten Dominik ed39b332fb Capture: Fix positioning error when :unnarrowed property is set
* lisp/org-capture.el (org-capture-place-entry): Move to `beg' before
searching for `%?'.
2010-10-11 08:26:26 +02:00
Carsten Dominik 2b3fa6ef3e Fix bug with capture template prompt history
* lisp/org-capture.el (org-capture-fill-template): Initialize history variable.
2010-09-30 13:12:12 +02:00
David Maus 215749b3d8 Widen to remove possible restrictions in target buffer
* org-capture.el (org-capture-place-template): Widen to remove
possible restrictions in target buffer.

Jules Bean wrote:
>If I run org-capture with the template:

>("t" "Todo" entry (file+headline
>"/Users/jules/work/TODO.org" "Tasks") "* TODO %?
>  (Captured at %u)
>  %i
>  %a
>")

>whilst I have narrowed (using, e.g., org-narrow-to-subtree) the buffer
>that contains TODO.org, a new "* Tasks" headline is inserted at the
>end of my narrowing and the new entry is added there, which messes up
>the hierarchy of the file.
2010-09-24 14:09:56 +02:00
David Maus 567201e56c Update doc string with new message date related escapes
* org-capture.el (org-capture-templates): Update doc string with new
message date related escapes.
2010-09-23 18:46:35 +02:00
Bastien Guerry d821c54aab Allow %:org-date for Gnus links.
* org-capture.el (org-capture-templates): update docstring
to advertize %:org-date.

* org-remember.el (org-remember-templates): update docstring
to advertize %:org-date.

* org-gnus.el (org-gnus-store-link): define %:org-date.

This was suggested by Sébastien Vauban.
2010-09-22 11:35:32 +02:00
David Maus 59fa0d12c8 Small fix in doc string
* org-capture.el (org-capture-templates): Small fix in doc string.
2010-09-12 18:45:04 +02:00
Carsten Dominik 8302e2b0d8 Fix read-only property removal bug
* lisp/org-capture.el (org-capture): Compute the length of the
correct string when removing properties.
2010-09-03 07:09:18 +02:00
Carsten Dominik d8498a40e8 Fix read-only issue with capture
* lisp/org-capture.el (org-capture): Remove read-only text properties
from capture text.
(org-capture-set-target-location): Throw an error if file+headline
target does not point into a file which is in Org mode.

Richard Riley writes:

> If I select a region in, in this case, an erc (emacs irc client)
> buffer in the read only section and then use my global keys to create
> a new item using the following "j" template while the text is still
> selected
>
> ("j" "Journal" entry
>  (file+datetree "journal.org")
>  "* %T %?\n  %i\n  %a")
>
> then I get the following backtrace :-
>
> Debugger entered--Lisp error: (error "Capture abort: (text-read-only)")
>  signal(error ("Capture abort: (text-read-only)"))
>  error("Capture abort: %s" (text-read-only))
>  byte-code("\301\302!\203\n
2010-09-02 11:35:21 +02:00
Nicolas Goaziou dae1ec63a9 org-fix-bullet-type is now org-list-repair. Created aliases for compatibility. 2010-09-01 19:05:53 +02:00
Nicolas Goaziou ff6c147ac6 Defined `org-item-beginning-re'. Org capture should recognize new lists.
* org-capture.el (org-capture-place-item): use `org-search-forward-unenclosed'
  and `org-search-backward-unenclosed' and new variable `org-item-beginning-re'.
* org-list.el (org-item-beginning-re): regexp matching beginning of an item.
2010-09-01 19:05:49 +02:00
Manish Sharma 2cf6136523 Allow "#" and "%" in tags
Patch largely from Manish, missing points added by Carsten
2010-08-31 08:25:20 +02:00
Carsten Dominik b212d2ed60 Align tags after capture template tags insertion
* lisp/org-capture.el (org-capture-fill-template): Align tags
after insertion.
2010-08-30 13:51:04 +02:00
Magnus Henoch bf0d8c5a0e org-capture + autoload
Jambunathan K <kjambunathan@gmail.com> writes:

> It would be convenient if I could do a
>
> M-x customize-group org-capture and/or
> M-x customize-variable org-capture-templates
>
> without having triggered a prior org-capture.
>
> For now, I trigger a capture, abort it and then proceed ahead with
> customizing these.

Here is a patch that adds an "autoload cookie" for
org-capture-templates.  After recompiling, org-install.el should contain
an autoload declaration for org-capture-templates.

Let's see if the patch tracker likes me :)

Magnus
2010-08-20 10:01:50 +02:00
Carsten Dominik 6da5c4525a Fix checkitem and item placement bugs in org-capture
* lisp/org-capture.el (org-capture-place-template): Handle the checkitem
case.
(org-capture-place-item): Provide boundaries for the search to make
sure we do not get a match in a different tree.
2010-08-16 10:24:13 +02:00
Bastien Guerry f0be9ff91b Bugfix: tiny typo in org-capture.el. 2010-08-11 15:08:45 +02:00
Carsten Dominik 0633c6aa09 Capture: Fix indentation of %i 2010-08-11 11:10:02 +02:00
Noorul Islam 0ac2a69836 org-capture: Make messages consistent.
A very small patch that makes the message displayed consistent.

* lisp/org-capture.el (org-capture-finalize):
  Make messages consistent.
2010-07-31 18:41:52 +02:00
John Wiegley 3ee6b99f06 Added a missing call to (goto-char (point-min)) 2010-07-28 21:05:50 -04:00
Bernt Hansen 95212c2202 Fix clocking on capture completion
* lisp/org-capture.el (org-capture-finalize): Fix clock in of interrupted
task during capture finalize

Calling org-capture-get inside the org-with-point-at macro does not
work when the current clocking task and the capture target buffer are
the same.  In this case the captured task would continue clocking
instead of switching back to the previously clocking task.
2010-07-28 02:35:38 -04:00
Carsten Dominik e3b93cda2e Capture: Default template when no capture templates are defined
* lisp/org-capture.el (org-capture-target-buffer): Throw an error
if we have no target file.
(org-capture-select-template): Use a default template if the user has
not specified any.
2010-07-21 08:28:20 +02:00
Carsten Dominik cee04fa632 Make org-capture use `org-default-notes-file' if the file is not specified
* lisp/org-macs.el (org-string-nw-p): New function.
* lisp/org-capture.el (org-capture-import-remember-templates): Interpret
an empty string as request to use `org-default-notes-file'.
(org-capture-target-buffer): If the FILE is not a (non-empty) string,
use `org-default-notes-file'.
2010-07-20 09:05:31 +02:00
Carsten Dominik 347c8ebe34 Fix customize type for capture template function
* lisp/org-capture.el (org-capture-templates): Fix customize type
2010-07-19 14:42:06 +02:00
Carsten Dominik 6268cceec3 Mention release 7.01 on the website, push release number to 7.01trans 2010-07-19 08:33:24 +02:00
Carsten Dominik aaea4a8dbf Capture: Change order of escape processing
* lisp/org-capture.el (org-capture-fill-template): Do inserting file
contents and expanding sexp escapes first, so that further escape
processing can happen in the inserted text.

This was a request by Sebastian Rose.
2010-07-18 07:37:52 +02:00
Philip Rooke 254740cb9c Correct some docstrings
This patch makes some straightforward corrections to a number of
docstrings.  Each change is normally to:

- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
  and tips given in the Elisp manual

No attempt is made to provide missing docstrings or document arguments.

Cheers,

Phil
2010-07-15 19:04:38 +02:00
Carsten Dominik 0791edd54a Capture, fix template files again
Note to self: Next time, just trust David ... :-)
2010-07-14 21:59:53 +02:00
Carsten Dominik bca27d9215 Capture: Fix the case of using a template file
* lisp/org-capture.el (org-capture-set-plist): Make sure txt is a string
before calling `string-match'.
(org-capture-templates): Fix customization type.

Modified from a patch proposal by Johan Friis.

TINYCHANGE
2010-07-14 11:03:27 +02:00
Carsten Dominik cb1ab577a2 Fix bookmarking the capture position
* lisp/org-capture.el (org-capture-refile): Do not try to manipulate
bookmark list.
* lisp/org.el (org-refile): Use the correct bookmark here.
2010-07-13 14:12:45 +02:00
David Maus 4c1b83e899 Check if `org-capture-link-is-already-stored' is bound before evaluating.
* org-capture.el (org-capture): Check if
`org-capture-link-is-already-stored' is bound before evaluating.

If `org-protocol-capture' is the first function that calls
`org-capture', this variable is locally bound while it is globally
unbound. I.e. org-capture.el was not loaded before, the defvar not
evaluated.  If `org-protocol-capture' exits, Emacs restores the global
value, which is void.
2010-07-09 10:06:50 +02:00
Philip Rooke 7add6fd51d The docstring of org-capture-templates
A few minor corrections and suggestions for the org-capture-templates
docstring
2010-07-08 06:41:53 +02:00
Carsten Dominik b6305c713c Make sure going to last capture also works after refile 2010-07-06 12:49:41 +02:00
Carsten Dominik 2235ecb422 Fix bug in getting template from file or function 2010-07-06 12:49:35 +02:00
Carsten Dominik c80d5b9c27 Capture: Expand template file name 2010-07-06 09:44:31 +02:00
Carsten Dominik 75192f263e Allow capture template to come from a file or from a function call
* lisp/org-capture.el (org-capture-templates): Allow the template
to come from a file or function call.
(org-capture-place-entry): Get the template from file or function.
2010-07-06 09:41:01 +02:00
Stephen Eglen 27a4e48b0a Small doc fixes to org-feed.el and org-capture.el 2010-07-05 15:07:53 +02:00
Carsten Dominik 9e9bc16476 Capture: fix the function target 2010-07-05 08:53:48 +02:00
Carsten Dominik 8b7c742750 Capture: Put final touched to file+regexp & file+function targets
* lisp/org-capture.el (org-capture-set-target-location): Store
exact positions for file+regexp and file+function targets.
(org-capture-place-entry, org-capture-place-item)
(org-capture-place-table-line, org-capture-place-plain-text): Respect
exact positions.
(org-capture-finalize): Make sure we are at the beginning of a line
when fixing the empty lines after the entry.
2010-07-05 08:25:51 +02:00
Carsten Dominik d0fa608267 Capture: Respect time-of-day preference in interactive template prompt.
* lisp/org-capture.el (org-capture-fill-template): Respect
time-of-day preference in template prompt.

In an interactive time prompt in a capture template, the users
preference of getting a stamp with time was not respected.

Reported by Markus Heller
2010-07-02 09:08:29 +02:00
Carsten Dominik 0ed29448aa Keep byte compiler happy 2010-07-01 15:54:29 +02:00
Carsten Dominik 14f05b4461 Capture: Fix bug in file+function target specification
* lisp/org-capture.el (org-capture-set-target-location): Fix
file+function interpretation.
2010-07-01 15:43:43 +02:00
Carsten Dominik d537c10964 Capture: Better error handling and better return-to-last-stored
* lisp/org-capture.el (org-capture-position-for-last-stored):
org-capture-bookmark-last-stored-position): New functions.
(org-capture-place-table-line): Better error catching.
(org-capture-place-item):
(org-capture-place-entry):
(org-capture-place-plain-text): Call
`org-capture-position-for-last-stored'.
(org-capture-finalize): Just call
`org-capture-bookmark-last-stored-position'.
2010-06-29 09:16:04 +02:00
Carsten Dominik f63d977c8b Better capturing of error when aborting capture 2010-06-27 12:26:08 +02:00
Carsten Dominik a77dce0eac Do not set the file name of the temporary buffer during capture 2010-06-27 08:33:16 +02:00
Carsten Dominik 2b26cb4e4e Fix bug with regexp target definition
Patch by Juan Pechiar
2010-06-25 20:53:15 +02:00
Carsten Dominik ae20361475 Fix the clock target for org-capture 2010-06-25 07:29:13 +02:00
Carsten Dominik e6182995d9 Skip template selection if there is only a single template 2010-06-24 07:17:54 +02:00
Carsten Dominik 92d69c7cf7 Keep byte compiler happy 2010-06-23 17:41:24 +02:00
Carsten Dominik a46e01358e Org Capture: Make ?q abort, and allow to specify the line position in table 2010-06-23 17:16:44 +02:00
Carsten Dominik fb46cf11d3 Make the link properties from org-protocol work in capture 2010-06-23 16:21:22 +02:00
Carsten Dominik c303801202 Fix typo 2010-06-23 13:26:58 +02:00
Carsten Dominik 94e76bd7e2 Remove forgotten (debug) form 2010-06-23 10:37:11 +02:00
Carsten Dominik fab06f5463 Implement aborting a capture note with `C-c C-k' 2010-06-23 10:36:42 +02:00
Carsten Dominik 85e6bb964d Improve importing of remember templates into org-capture
Tassilo Horn had set org-remember-default-headline to `bottom', and
the importer did not handle this special case.
2010-06-23 08:41:14 +02:00
Carsten Dominik 19602fa56e Fix minor bugs in org-capture.el, and keep byte-compiler happy 2010-06-23 07:39:56 +02:00
Carsten Dominik 2ea8652235 Minor fixes to org-capture.el 2010-06-23 06:24:26 +02:00
Carsten Dominik 0c4e2ab0ed Add autoloads for org-capture 2010-06-22 14:29:13 +02:00
Carsten Dominik 1d52e54efd New capture system org-capture
* lisp/org-agenda.el (org-agenda-action): Make `c' key call org-capture.
* lisp/org-capture.el: New file.
* lisp/org-compat.el (org-get-x-clipboard): Function moved here from
remember.el.
* lisp/org-mks.el: New file
* lisp/org.el (org-set-regexps-and-options): Allow statistic cookies as
part of complex headlines.
(org-find-olp): New argument THIS-BUFFER.  When set, assume that the
OLP does not contain a file name.
2010-06-22 14:19:18 +02:00