Commit Graph

448 Commits

Author SHA1 Message Date
Phil Hudson 83c93e6fed org-capture.el: Give a default value when prompting for a property
* lisp/org-capture.el (org-capture-templates)
(org-capture-fill-template): Enable declaring a default value
when prompting for a property during capture.

* lisp/org.el (org-read-property-value): Add parameter DEFAULT
for an initial/default/suggested property value.

* doc/org-manual.org: Document declaring a default value for a
prompted property during capture.
2020-09-23 14:12:08 +02:00
Samuel W. Flint d06aa486d6 Add in support for filling in the bare link in org capture
* doc/org-manual.org: Document new %L capture template formatting
directive.
* lisp/org-capture.el (org-capture-templates): Document new %L capture
template formatting directive.
* lisp/org-capture.el (org-capture-fill-template): Add in support for
%L, bare link formatting, in org-capture-fill-template.

TINYCHANGE
2020-09-23 10:57:49 +02:00
Phil Hudson bbe447adc7 lisp/org-capture.el (org-capture-templates): Fix docstring typo
* lisp/org-capture.el (org-capture-templates): Fix docstring typo.

TINYCHANGE
2020-09-14 15:39:13 +02:00
Bastien Guerry f5573e6a00 org-capture.el: Fix heading's level when inserting a template "here"
* lisp/org-capture.el (org-capture-place-entry): Fix heading's
level when inserting a template "here" with C-0 M-x org-capture.

Reported-by: Nick Dokos <ndokos@gmail.com>
See <https://orgmode.org/list/87lfiuxqze.fsf@alphaville.usersys.redhat.com/>
2020-09-09 11:34:04 +02:00
Bastien 7b59fe0775 Merge branch 'maint' 2020-09-05 11:14:32 +02:00
Leo Vivier 3008fb45dc org-capture: Update plist before finalizing
* lisp/org-capture.el (org-capture-finalize): Update
`org-capture-plist' with local-value before finalizing.

We use the global-variable `org-capture-plist' to populate the
local-variable `org-capture-current-plist' on the init of the
`org-capture' buffer.  However, we do not do the opposite (i.e. update
the global-variable with the local-variable) on
`org-capture-finalize'.

This is fine for the majority of `org-capture-finalize', since we’re
using the LOCAL arg of `org-capture-get' to read
`org-capture-current-plist' instead of `org-capture-list', but this
trick does not work for `org-capture-after-finalize', since the hook
is run after the `org-capture-buffer' has been closed.

This causes problem with `:kill-buffer t', and it limits what can be
done with cleanup functions in `org-capture-after-finalize'.

See <https://orgmode.org/list/87h7tv9pkm.fsf@hidden/> for details.
2020-09-05 11:14:17 +02:00
Bastien Guerry 3ff8358139 Merge branch 'maint' 2020-09-04 11:35:39 +02:00
Nicholas Vollmer 50c4556977 capture: Document defualt template strings
* lisp/org-capture.el (org-capture-templates): Document default entry
type template strings.

TINYCHANGE
2020-09-04 11:35:32 +02:00
Kyle Meyer 86fada6b5d Merge branch 'maint' 2020-07-03 02:31:57 -04:00
Nicholas Vollmer 99b8f36ab8 capture: org-capture pass KEYS with GOTO arg
* lisp/org-capture.el (org-capture): Pass `keys' arg to
`org-capture-goto-target'.

Allows programmatically visiting a specific template.
2020-07-03 02:31:31 -04:00
Kevin Liu 6882478cac capture: Fix org-capture-place-entry narrow bounds
* lisp/org-capture.el (org-capture-place-entry): Prevent breaking the
following headline inside the capture buffer.  This should match the
behavior from 9.3.
(org-capture-finalize): Reverts cb2774d1a, which solves a similar
problem but only in the finalize stage, so the subtree structure would
still be broken in the middle of editing the capture.
2020-06-13 10:47:21 +02:00
Nicholas Vollmer 3ba4f056d7 capture: Set `org-capture-current-plist' before `org-capture-mode-hook'
* org-capture.el (org-capture-place-template): Allow
`org-capture-current-plist' access during `org-capture-mode-hook'

Ensure consistency between org-capture's hooks.

`org-capture-after-finalize-hook' is now the only hook that cannot
access `org-capture-current-plist' because the capture buffer is
killed when it is run.
2020-06-10 19:41:35 +02:00
Kyle Meyer cd61eedddb Merge branch 'maint' 2020-05-07 22:47:35 -04:00
Kyle Meyer ff56f580da capture: Correct docstring typo
* lisp/org-capture.el (org-capture--position-cursor): Correct
docstring typo.
2020-05-07 22:47:20 -04:00
Nicolas Goaziou 0edd9aee38 Merge branch 'maint' 2020-05-07 22:37:02 +02:00
Nicolas Goaziou 09086b7e75 Fix capturing plain text with :unnarrowed property and no "%?" marker
* lisp/org-capture.el (org-capture-narrow): Remove undocumented point
move.
(org-capture--position-cursor): New function.
(org-capture-place-entry):
(org-capture-place-item):
(org-capture-place-table-line):
(org-capture-place-plain-text): Use new function.
* testing/lisp/test-org-capture.el (test-org-capture/plain): Add test.

Reported-by: No Wayman <iarchivedmywholelife@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2020-05/msg00095.html>
2020-05-07 22:35:13 +02:00
Mattias Engdegård b78583a1c1 Backport commit 770f76f05 from Emacs
Make regexps smaller and faster by removing terms that are superfluous
by virtue of standing next to another term that matches more.  See
https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00949.html
for details.

* lisp/ob-core.el (org-babel-remove-result):
* lisp/ob-fortran.el (org-babel-fortran-ensure-main-wrap):
* lisp/org-capture.el (org-capture-set-target-location):
* lisp/org-compat.el (org-maybe-keyword-time-regexp):
* lisp/org-table.el (org-table-expand-lhs-ranges):
Remove subsumed repetitions.

Remove subsumed repetitions in regexps
770f76f050376bbd77a3cc8cf44db57cf855a27c
Mattias Engdegård
Thu Feb 20 16:05:18 2020 +0100
2020-03-15 22:51:31 -04:00
Bastien 5af2d215ff Revert "org-capture.el: Conditionally throw an error on missing annotation"
This reverts commit 78ec8da52a.
2020-02-19 13:37:24 +01:00
Bastien 0b9fcc603f Revert "org-capture.el: Don't throw an error abusively"
This reverts commit 26ba4f7d7f.
2020-02-19 13:37:17 +01:00
Bastien 26ba4f7d7f org-capture.el: Don't throw an error abusively
* lisp/org-capture.el (org-capture-fill-template): Don't throw
a user error when immediately finishing a template from which
an initial annotation is missing, warn instead.

This fixes 78ec8da52a.  Thanks to Eric Fraga for reporting this.
2020-02-19 13:32:49 +01:00
Bastien fae16ed8f5 Add `generated-autoload-file' buffer local variable
* lisp/org.el:
* lisp/org-num.el:
* lisp/org-macs.el:
* lisp/org-list.el:
* lisp/org-lint.el:
* lisp/org-keys.el:
* lisp/org-goto.el:
* lisp/org-duration.el:
* lisp/org-compat.el:
* lisp/org-colview.el:
* lisp/org-capture.el:
* lisp/org-agenda.el:
* lisp/ol.el: Add `generated-autoload-file' buffer local variable.

This is needed when compiling Org files within GNU Emacs.
2020-02-18 23:37:24 +01:00
Bastien cb2774d1a8 org-capture.el: Fix possibly missing final newline
* lisp/org-capture.el (org-capture-finalize): When capturing
an entry, fix missing final newline when the user has deleted
it.

This continues the fix done in d8c51531c.
2020-02-18 01:25:59 +01:00
Bastien 915a8eade4 org-agenda.el/org-capture.el: Use `user-error' in two places
* lisp/org-capture.el (org-capture-set-target-location):
* lisp/org-agenda.el (org-agenda-clock-out): Use `user-error'.
2020-02-17 08:55:19 +01:00
Bastien 78ec8da52a org-capture.el: Conditionally throw an error on missing annotation
* lisp/org-capture.el (org-capture-fill-template): Throw a
user error when :immediate-finish is `t' and when the %a
template could not be expanded.

Thanks to Leo Gaspard for this idea.
2020-02-11 14:45:19 +01:00
Bastien 4fe4d12a79 Merge branch 'maint' 2020-02-07 20:44:31 +01:00
Bastien 5fc950a494 org-capture.el: Fix entry template insertion
* lisp/org-capture.el (org-capture-place-entry): Place point
correctly before narrowing the buffer.

* testing/lisp/test-org-capture.el (test-org-capture/entry):
Fix test.

Thanks to Bernt Hansen for reporting this.
2020-02-07 20:43:50 +01:00
Bastien f636cf91b6 New org-refile.el file with refile definitions
* lisp/org-refile.el: New file.

* lisp/org.el (org-refile, org-directory)
(org-default-notes-file, org-reverse-note-order)
(org-log-refile, org-refile-targets)
(org-refile-target-verify-function, org-refile-use-cache)
(org-refile-use-outline-path)
(org-outline-path-complete-in-steps)
(org-refile-allow-creating-parent-nodes)
(org-refile-active-region-within-subtree)
(org-refile-target-table, org-refile-cache)
(org-refile-markers, org-refile-marker)
(org-refile-cache-clear, org-refile-cache-check-set)
(org-refile-cache-put, org-refile-cache-get)
(org-outline-path-cache, org-refile-get-targets)
(org--get-outline-path-1, org-get-outline-path)
(org-format-outline-path, org-display-outline-path)
(org-refile-history, org-after-refile-insert-hook)
(org-capture-last-stored-marker, org-refile-keep, org-copy)
(org-refile, org-refile-goto-last-stored)
(org-refile--get-location, org-refile-get-location)
(org-refile-check-position, org-refile-new-child)
(org-olpath-completing-read): Move to org-refile.el.
(org-menu-define): Display Org refile comands only when
'org-refile is featured.

* lisp/org-keys.el (org-refile-copy, org-mode-map): Declare
functions.

* lisp/org-capture.el: Require 'org-refile.

* lisp/org-agenda.el: Require 'org-refile.
2020-02-05 15:34:06 +01:00
Bastien 6ceba7b98f Merge branch 'maint' 2020-02-05 00:14:05 +01:00
Bastien d8c51531c0 org-capture.el: Fix narrowing when placing an entry
* lisp/org-capture.el (org-capture-place-entry): Fix narrowing
boundaries.

Thanks to Gustavo Barros for the detailed bug report.
2020-02-05 00:13:24 +01:00
Bastien 6ec3b993fd Merge branch 'maint' 2020-02-04 19:09:55 +01:00
Bastien 6c895f1466 org-capture.el (org-capture-templates): Fix typos in docstring
* lisp/org-capture.el (org-capture-templates): Fix typos in docstring.
2020-02-04 18:34:25 +01:00
Kyle Meyer 93c11da002 Merge branch 'maint' 2020-01-01 13:39:26 -05:00
Kyle Meyer ff5fc050d3 Update copyright year to 2020 2020-01-01 13:38:46 -05:00
Nicolas Goaziou 1d38233b83 Silence byte-compiler
* lisp/org-compat.el (org-file-properties): Fix typo.
2019-12-15 19:07:51 +01:00
Nicolas Goaziou 31d2f48f69 Merge branch 'maint' 2019-12-12 22:35:10 +01:00
Nicolas Goaziou b64a3308aa org-capture: Get capture templates from anonymous functions
* lisp/org-capture.el (org-capture-get-template): Allow specifying
template from an anonymous function.
* doc/org-manual.org (Template elements): Document it.
2019-12-12 22:33:22 +01:00
Nicolas Goaziou 2f9188658b org-capture: Silence byte-compiler
* lisp/org-capture.el (org-capture-set-target-location): Fix pcase
patterns.
2019-12-09 22:14:01 +01:00
Jason Dunsmore a410413be8 org-capture: Add support for month trees
* doc/org-manual.org: Add `:tree-type month' option for capture
  templates.
* lisp/org-capture.el (org-capture-set-target-location): Add
  `:tree-type month' option to capture templates to group entries by
  month.
* lisp/org-datetree.el (org-datetree-find-month-create): Add
  `org-datetree-find-month-create' function to add datetree entries
  grouped by month.
* testing/lisp/test-org-datetree.el
  (test-org-datetree/find-month-create): Add test for new function.
2019-12-09 20:08:28 +01:00
Gustav Wikström 1bdff9f73d Org document property-drawers
Add functionality to define property-blocks on document level, in
addition to at headline level.

* doc/org-manual.org:
* etc/ORG-NEWS: Document new functionality.

* lisp/org.el (org-keyword-regexp): Define constant instead of
  hardcoding.
(org-file-properties): Renamed, see next line.
(org-keyword-properties): Renamed from above.  Due to the fact that
  properties can be defined for the whole document using property
  drawers this local variable needs a rename to make its name less
  ambigous.
(org-refresh-properties, org-refresh-property, org-entry-properties)
(org-refresh-category-properties, org-get-property-block)
(org-entry-get-with-inheritance, org-entry-put)
(org-insert-property-drawer, org-end-of-subtree): Made to work before
  first headline.
(org-at-property-block-p): New function to validate if point is at the
start of a property block.
(org-property-global-value): Renamed, see next line.
(org-property-global-or-keyword-value): Renamed from above to match
  its functionality better.
(org-back-to-heading-or-point-min): New function to make a document
  work as a level 0 node in the outline.
(org-at-keyword-p): Predicate function to answer to if we're currently
at a keyword line or not.
(org-up-heading-or-point-min): New function to make a document work as
a level 0 node in the outline.

* lisp/org-element.el (org-element--current-element): Can now detect
  property-blocks before first headline according to it's positional
  rules.

* lisp/org-attach.el (org-attach): Make it possible to call the
  attachment dispatcher also before the first headline, since document
  property drawers make attachments possible for the whole document
  now.

* lisp/org-capture.el: Modified only due to rename of function in
  org.el.

* lisp/org-compat.el (org-file-properties)
(org-property-global-value): Renamed functions declared obsolete.

* testing/lisp/test-org.el (org/insert-property-drawer)
(org/set-property, org/delete-property, org/delete-property-globally):
  Additions of tests to check if they work before first headline.
(org/at-property-p, org/at-property-block-p, org/get-property-block)
(org/entry-get, org/refresh-properties): New tests

* testing/examples/property-inheritance.org: Switch from
  property-keywords to a property-drawer in the testfile.
  Functionality should be the same, but now using a document drawer
  instead of property-keywords.

  Reason for switching is that I'd like us to slowly depricate
  property-keywords.

* testing/lisp/test-org-element.el:

* contrib/lisp/ox-taskjuggler.el: A comment is modified only due to
  rename of function in org.el.
2019-10-19 14:07:58 +02:00
Kyle Meyer c7c04b0447 Merge branch 'maint' 2019-08-18 17:44:08 -04:00
Paul Eggert 74bf99502d Backport commit 988e37fa0 from Emacs
* lisp/org-agenda.el (org-agenda-get-timestamps, org-agenda-get-progress)
(org-agenda-show-clocking-issues):
* lisp/org-capture.el (org-capture-set-target-location):
* lisp/org-clock.el (org-clock-get-sum-start):
* lisp/org.el (org-current-time, org-store-link)
(org-read-date, org-read-date-display)
(org-display-custom-time, org-timestamp-to-time)
Simplify use of encode-time.
* lisp/org-clock.el (org-clock-in, org-clock-update-time-maybe):
* lisp/org-colview.el (org-columns--age-to-minutes):
* lisp/org-macs.el (org-2ft):
* lisp/org.el (org-get-scheduled-time, org-get-deadline-time)
(org-add-planning-info, org-time-string-to-absolute)
(org-closest-date):
Use org-time-string-to-time instead of doing it by hand with
encode-time.
* lisp/org.el (org-read-date): Avoid extra trip through encode-time.

Simplify use of encode-time
988e37fa0f922b852715671d59a0e3f682373411
Paul Eggert
Sun Feb 10 23:54:35 2019 -0800

Note(km): org-current-time has been modified to use org-time-subtract
and org-time-less-p for backward compatibility.  Some changes from
988e37fa0 have been dropped to keep encode-time's call compatible with
older Emacsen.
2019-08-18 17:36:13 -04:00
Paul Eggert 08c7bbbf71 Backport commit a5b796a87 from Emacs
* lisp/ob-haskell.el (org-babel-haskell-export-to-lhs):
Omit unnecessary ‘?’ after nullable pattern.
* lisp/org-capture.el (org-capture-fill-template):
Match upper-case as well as lower-case letters.

Fix 2019-08-04 regex lint
a5b796a8798a809044d847568e6472cc5eca077e
Paul Eggert
Sun Aug 4 11:39:54 2019 -0700
2019-08-17 09:45:22 -04:00
Carsten Dominik e413e7695c Keep brackets around capture link annotation, to protect spaces
2019-07-27  Carsten Dominik  <carsten.dominik@gmail.com>

	* lisp/org-capture.el (org-capture-fill-template): Keep [[]]
	around the %l link annotation.

When capture is called from a buffer and the template includes a %l
annotation, then this link needs to be enclosed in [[ ... ]].  The
default link is a search link that searches for the line at point -
and when the link contains whitespace, it needs to be part of the link.
2019-07-27 21:57:21 +02:00
Kyle Meyer 57e254e67c Merge branch 'maint' 2019-07-14 11:14:54 -04:00
Ismail S 64262af685 Backport commit fb48eb48f from Emacs
* lisp/org-capture.el (org-capture-templates): Fix typo in doc
string (bug#36491).

Fix minor typo in org-capture-templates
fb48eb48f3bd432307821bc7158d1090f0e4bbf0
Ismail S
Tue Jul 9 00:53:18 2019 +0200

TINYCHANGE
2019-07-14 11:12:33 -04:00
Nicolas Goaziou 0201d1c0cc Fix inserting capture templates at point
* lisp/org-capture.el (org-capture):
(org-capture-set-target-location):
(org-capture-place-entry):
(org-capture-place-item):
(org-capture-place-table-line): Fix inserting capture templates at
point.  Insert a new internal property for capture
template: :insert-here.
(org-capture-insert-template-here): Remove function.

* testing/lisp/test-org-capture.el (test-org-caputre/entry):
(test-org-capture/item):
(test-org-capture/table-line): Add tests.

Reported-by: Dominic Surano <sk8ingdom@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2019-07/msg00002.html>
2019-07-06 16:02:37 +02:00
Nicolas Goaziou 21fa859c4d Merge branch 'maint' 2019-04-09 09:24:46 +02:00
Nicolas Goaziou 6efe53cf0b org-capture: Do not break planning when capturing items
* lisp/org-capture.el (org-capture-place-item): When there is no list
  to augment, insert new list after planning info and properties
  drawers.
* testing/lisp/test-org-capture.el (test-org-capture/item): Add tests.

Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://lists.gnu.org/r/emacs-orgmode/2019-04/msg00060.html>
2019-04-09 09:23:00 +02:00
Nicolas Goaziou da517aaeb8 Merge branch 'maint' 2019-04-02 22:12:10 +02:00
Nicolas Goaziou b913b7404b org-capture: Fix capture on empty entries
* lisp/org-capture.el (org-capture-fill-template): Prevent raising an
  error when template is an empty entry.
* testing/lisp/test-org-capture.el (test-org-caputre/entry): Add test.

Reported-by: Roland Everaert <reveatwork@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2019-04/msg00019.html>
2019-04-02 22:10:50 +02:00