Commit Graph

1170 Commits

Author SHA1 Message Date
Bastien Guerry 4231cb4b12 Use `org-add-hook' in some places and merge Emacs revno r112320
* ox.el (org-export-stack-mode)
* org-crypt.el (org-crypt-check-auto-save)
(org-crypt-use-before-save-magic): Use `org-add-hook' when the
hooks are local hooks.

* org-indent.el (org-indent-mode)
* org-agenda.el (org-agenda-mode): Use `org-add-hook' and
merge upstream change from Emacs revno r112320.
2013-04-18 10:29:00 +02:00
Bastien Guerry 937b4484c6 org-agenda.el: New commands for dragging a line forward/backward
* org-agenda.el (org-agenda-drag-line-forward)
(org-agenda-drag-line-backward): New commands.
(org-agenda-mode-map): Bind the new commands to M-<down> and
M-<up> respectively.

* org.texi (Agenda commands): Add a table heading for dragging
agenda lines forward/backward.
2013-04-17 20:25:02 +02:00
Bastien Guerry 4e62936ae5 org-agenda.el: (org-agenda-bulk-toggle-all): New command
* org-agenda.el (org-agenda-bulk-toggle): Fix docstring.
(org-agenda-bulk-toggle-all): New command.
(org-agenda-mode-map): Bind `org-agenda-bulk-toggle' to `M-m'
and `org-agenda-bulk-toggle-all' to `M-*'.
(org-agenda-menu): Add `org-agenda-bulk-toggle' and
`org-agenda-bulk-toggle-all'.
(org-agenda-bulk-mark, org-agenda-bulk-unmark): Jump to the
next headline, not the next line.
2013-04-16 22:02:07 +02:00
Bastien Guerry 0f0d0ecf01 org-agenda.el (org-agenda-entry-text-mode): Also check against regexp filters
* org-agenda.el (org-agenda-entry-text-mode): Also check
against regexp filters.
2013-04-13 12:28:24 +02:00
Bastien Guerry 4a603bcd28 org-agenda.el (org-timeline): Handle `org-agenda-show-log'
* org-agenda.el (org-timeline): Handle `org-agenda-show-log'.

Thanks to Derek Upham for reporting this bug.
2013-04-13 11:46:16 +02:00
Bastien Guerry 6ca318353f org-agenda.el: Use `user-error' instead of `error' in some places
* org-agenda.el (org-agenda-undo, org-agenda)
(org-agenda-append-agenda)
(org-agenda-get-restriction-and-command, org-agenda-write)
(org-agenda-clock-cancel)
(org-agenda-diary-entry-in-org-file, org-agenda-diary-entry)
(org-agenda-execute-calendar-command)
(org-agenda-goto-calendar, org-agenda-convert-date)
(org-agenda-bulk-mark, org-agenda-bulk-action)
(org-agenda-show-the-flagging-note): Use `user-error' instead
of `error'.
2013-04-10 14:38:27 +02:00
Bastien Guerry c7f99d1e87 org-agenda.el (org-agenda-append-agenda): Set buffer read only
* org-agenda.el (org-agenda-append-agenda): Set buffer read
only.
2013-04-10 11:40:30 +02:00
Bastien Guerry cd481dfba8 org-agenda.el (org-agenda-goto-date): Fix bug when going to a date in month view
* org-agenda.el (org-agenda-span-to-ndays): Enhance docstring.
(org-agenda-goto-date): Fix bug when going to a date in month
view.

Thanks to Eric S Fraga for reporting this bug.
2013-04-08 21:25:10 +02:00
Bastien Guerry 15d6dd651b org-agenda.el (org-agenda-goto-date): Redo an agenda* if needed
* org-agenda.el (org-agenda-goto-date): If the agenda was
built as agenda* (scheduled/deadline items with hour spec)
then redo an agenda*.
2013-04-08 21:25:10 +02:00
Bastien Guerry c25566fec3 org-agenda.el (org-agenda-goto-date): Put the cursor on the agenda line with the selected date
* org-agenda.el (org-agenda-goto-date): Put the cursor on the
agenda line with the selected date.
2013-04-08 21:25:10 +02:00
Bastien Guerry b37e27edb5 org-agenda.el (org-agenda-restriction-lock-highlight-subtree): New option
* org-faces.el (org-agenda-restriction-lock): Use less flashy
colors.

* org-agenda.el
(org-agenda-restriction-lock-highlight-subtree): New option.
2013-04-06 01:51:29 +02:00
Bastien Guerry c61303ed3d org-agenda.el: Rename the "top-category" filter as "top-headline"
* org-agenda.el (org-agenda-top-headline-filter): Rename from
`org-agenda-top-headline-filter'.
(org-find-top-headline): Rename from `org-find-top-category'.
Add a docstring.
(org-agenda-filtered-by-top-headline): Rename from
`org-agenda-filtered-by-top-category'.
(org-agenda-filter-by-top-headline): Rename from
`org-agenda-filter-by-top-category'.  Fix docstring.
(org-agenda-filter-top-headline-apply): Rename from
`org-agenda-filter-top-category-apply'.  Fix docstring.
(org-agenda-mode-map): Update binding.

Using category here was confusing, because there is no Org
category involved, the filtering is really against a headline.
Since category filtering also exists, the confusion was bad.
2013-04-05 19:46:02 +02:00
Bastien Guerry 889b7e507c org-agenda.el (org-agenda-get-todos): Set `todo-state' earlier so that we can skip false-positives in time
* org-agenda.el (org-agenda-get-todos): Set `todo-state'
earlier so that we can skip false-positives in time.

For example, when searching for a TODO headline with "* NEXT bla"
in a buffer where (1) there is such a headline but (2) "NEXT" is
not in the list of known TODO keywords, then we skip this match.

The earlier behavior threw an error.
2013-04-05 19:46:02 +02:00
Carsten Dominik a5d6548a57 Highlight only headline with agenda subtree restriction
* lisp/org-agenda.el (org-agenda-set-restriction-lock): Highlight only
  the headline when agenda is restricted to a subtree.  Do not
  highlight the entire subtree.
2013-04-05 16:44:57 +02:00
Bastien Guerry 618277cf93 org-agenda.el (org-agenda-limit-interactively): New command
* org-agenda.el (org-agenda-dim-blocked-tasks): Enhance
docstring.
(org-agenda-finalize-entries): Conditionally apply limits so
that we don't manipulate big lists uselessly.
(org-agenda-limit-entries): Limit exclusively.  E.g., when
limiting to a maximum of "2 tags", don't limit among tagged
entries only, but limit among all entries.
(org-agenda-limit-interactively): New command.
(org-agenda-mode-map): Bind the new command to "~".
(org-agenda-redo): Small fix: don't use `eval'.
2013-04-05 08:37:51 +02:00
Bastien Guerry 0066737092 org-agenda.el: Minor typo fix and docstring enhancement
* org-agenda.el (org-agenda-start-on-weekday): Fix typo.
(org-agenda-start-day): Enhance docstring.

* org.texi (Weekly/daily agenda): Add `org-agenda-start-day'
and `org-agenda-start-on-weekday' to the variable index and
document them.
2013-04-03 18:28:30 +02:00
Max Mikhanosha 9594249b4d Fix agenda generation error if agenda had time grid and agenda format
contain effort

* lisp/org-agenda.el (org-agenda-format-item): Ensure effort is "" when unset
2013-03-26 06:55:53 -04:00
Bastien Guerry ce8706f268 Fix commit 3abd5e 2013-03-25 15:54:36 +01:00
Bastien Guerry 3abd5ef707 org-agenda.el: Re-align leaders to the left
* org-agenda.el (org-agenda-scheduled-leaders)
(org-agenda-deadline-leaders): Re-align leaders to the left,
back to a 11 characters width.

Thanks to Matt Lundin for reporting display problems here.
2013-03-25 06:03:17 +01:00
Bastien Guerry a9880a7710 Implement group tags
* org-agenda.el (org-tags-view): Set the matcher after
preparing the agenda, as `org-tag-groups-alist-for-agenda'
might be needed.
(org-agenda-filter-make-matcher): New parameter `filter' and
`type'.  Handle group tags.
(org-agenda-filter-expand-tags): New function.
(org-agenda-filter-apply): Handle group tags.

* org.el (org-blank-before-new-entry): Tiny docstring fix.
(org-tag-alist-for-agenda): Add docstring.
(org-tag-groups-alist-for-agenda): New global variable.
(org-tag-groups-alist): New buffer-local variable.
(org-tag-alist, org-tag-persistent-alist): Handle :grouptags.
(org-group-tags): New option.
(org-toggle-group-tags): New command.
(org-mode-map): Bind `org-toggle-group-tags' to `C-c C-x q'.
(org-set-regexps-and-options-for-tags): New function, factored
out from `org-set-regexps-and-options'.
(org-set-regexps-and-options): Don't handle tags, they are now
handled separately by `org-set-regexps-and-options-for-tags'.
(org-assign-fast-keys): Handle :grouptags.
(org-mode): Use `org-set-regexps-and-options-for-tags' on top
of `org-set-regexps-and-options'.
(org-fontify-meta-lines-and-blocks-1): Fontify group tags.
(org-make-tags-matcher): Expand group tags in the matcher.
(org-tags-expand): New function.
(org-tags-completion-function): Tiny code clean up.
(org-set-current-tags-overlay): Add a docstring.
(org-fast-tag-selection): Highlight group tags.
(org-agenda-prepare-buffers): Set `org-tag-alist-for-agenda'
and `org-tag-groups-alist-for-agenda'.  Don't uniquify
`org-tag-alist-for-agenda' as we may need the grouping
information for filtering in the agenda buffer.
(org-uniquify-alist): New function.

* org-pcomplete.el (pcomplete/org-mode/file-option/tags):
Handle :grouptags.

* org-faces.el (mode-line): New face for group tags.
2013-03-25 05:42:35 +01:00
Bastien Guerry c8a3425559 org-agenda.el (org-agenda-redo): Set filters after agenda has been redone
* org-agenda.el (org-agenda-redo): Set filters after agenda
has been redone.
2013-03-19 19:39:34 +01:00
Bastien Guerry ecb9e5811d org.el (org-store-link): Store each line of the active as a separate link
* org.el (org-store-link): When there is an active region,
store each line as a separate link.
(org-insert-all-links): Use a default description when links
do not have one already.

* org-agenda.el (org-agenda-redo): Fix typo in code.
2013-03-19 19:39:12 +01:00
Bastien Guerry 5127f56790 org-agenda.el (org-agenda-dim-blocked-tasks): Only throw a message when called interactively
* org-agenda.el (org-agenda-dim-blocked-tasks): Only throw a
message when called interactively.  Fix docstring position in
the defun.
2013-03-19 09:57:11 +01:00
Bastien Guerry acbf00ea24 org-agenda.el (org-agenda-mode-map): Use ?= for filtering by regexp and ?| for removing all filters
* org-agenda.el (org-agenda-mode-map): Use ?= for filtering by
regexp and ?| for removing all filters.
(org-agenda-filter-remove-all): New command.
(org-agenda-filter-show-all-re): Rename from
`org-agenda-filter-show-all-regexp'.
(org-agenda-filter-by-regexp): Call
`org-agenda-filter-show-all-re'.
2013-03-16 19:40:02 +01:00
Bastien Guerry 7e806c155c org-agenda.el (org-agenda-Quit): Set `org-agenda-buffer' to nil
* org-agenda.el (org-agenda-Quit): Set `org-agenda-buffer' to
nil.  This prevents bugs when calling e.g., `org-diary' after
quitting an agenda window.
2013-03-16 18:59:52 +01:00
Bastien Guerry 00948a6834 org-agenda.el: Don't hardcode the default agenda entry types
* org-agenda.el (org-agenda-entry-types): Move earlier in the file.
(org-agenda-custom-commands-local-options, org-diary)
(org-agenda-get-day-entries): Don't hardcode the default
agenda entry types, use `org-agenda-entry-types'.
2013-03-16 18:56:56 +01:00
Bastien Guerry 7c71b7c686 org-agenda.el (org-agenda-custom-commands): Fix default setting
* org-agenda.el (org-agenda-custom-commands): Fix default
setting so that the customize interface does not complain
about a mismatch.
2013-03-16 18:54:26 +01:00
Bastien Guerry e0e699ab3d org-compat.el: New compatibility function `org-defvaralias'
* org-compat.el (org-defvaralias): Newcompatibility function.
* org.el:
* org-agenda.el:
* org-list.el:
* org-gnus.el:
* org-clock.el: Use it.
2013-03-14 13:53:52 +01:00
Bastien Guerry d3361ce350 Fix a compiler warning. 2013-03-13 23:05:45 +01:00
Bastien Guerry a3ed698dbb Merge branch 'master-agenda' 2013-03-13 19:54:55 +01:00
Bastien Guerry 81daada648 Fix compiler warning 2013-03-13 19:54:30 +01:00
Bastien Guerry df31fe6bdd org-agenda.el: New agenda entry types :scheduled* and :deadline*
* org.el (org-deadline-time-hour-regexp)
(org-scheduled-time-hour-regexp): New buffer local variables.
(org-set-regexps-and-options): Set the new variables.

* org-agenda.el (org-agenda-custom-commands-local-options):
Add :deadline* and :scheduled* to the list of possible agenda
entry types.
(org-agenda): Implement a new agenda type agenda* with :scheduled*
and :deadline* replacing :scheduled and :deadline respectively in
agenda entry types.  In such agenda, only scheduled and deadline
items with a time specification [h]h:mm will be considered.
(org-agenda-entry-types): Document the new agenda entry types
:scheduled* and :deadline*.
(org-agenda-list): New parameter `with-hour'.  Use :scheduled* and
:deadline*.
(org-agenda-get-day-entries): Handle :scheduled* and :deadline*.
(org-agenda-get-deadlines, org-agenda-get-scheduled): New
parameter `with-hour'.  Use `org-deadline-time-hour-regexp' or
`org-scheduled-time-hour-regexp' as the search string if needed.
(org-agenda-to-appt): Use :scheduled* and :deadline* by default,
as other scheduled and deadline items don't have a time spec and
cannot be turned into appointments.  Trim bracket links and use
only the description as the appointment text.
(org-agenda-get-restriction-and-command): Add
default description for the agenda* view.
(org-agenda-run-series): Handle agenda* views.
2013-03-13 19:52:25 +01:00
Bastien Guerry c1e437bbe9 org-agenda.el: Implement agenda filtering by regexp with "|"
* org-faces.el (org-agenda-filter-tags)
(org-agenda-diary, org-agenda-calendar-event)
(org-agenda-calendar-sexp): Minor code clean up.
(org-agenda-filter-category): Docstring fix.
(org-agenda-filter-category): New face.

* org-agenda.el (org-agenda-local-vars): Add
`org-agenda-re-filter-overlays' and `org-agenda-regexp-filter'.
(org-agenda-mode-map): Use "|" for
`org-agenda-filtered-by-regexp'.
(org-agenda-re-filter-overlays): New variable.
(org-agenda-mark-filtered-text): Use
`org-agenda-re-filter-overlays'.
(org-agenda-finalize, org-agenda-redo): Allow regexp filtering.
(org-agenda-filter-by-category): Set `org-agenda-category-filter'
here instead of within `org-agenda-apply-filter'.
(org-agenda-regexp-filter): New variable.
(org-agenda-filter-by-regexp): New function to filter agenda
buffers by regexp.
(org-agenda-filter-make-matcher): Make matcher for regexp filters.
(org-agenda-filter-apply): Don't set `org-agenda-tag-filter' and
`org-agenda-category-filter'.  Maybe apply regexp filter.
(org-agenda-filter-hide-line): Add docstring.  Hide
regexp-filtered lines.
(org-agenda-filter-show-all-tag, org-agenda-filter-show-all-cat):
Add docstring.
(org-agenda-filter-show-all-regexp): New function.
(org-agenda-set-mode-name): Add regexp-filter information.
(org-agenda-custom-commands-local-options): Add regexp filter.
(org-agenda-regexp-filter-preset): New variable.
(org-agenda-prepare): Use the new variable.

* org.texi (Agenda commands): Document `org-agenda-filter-by-regexp'.
2013-03-13 19:26:41 +01:00
Bastien Guerry 742f473820 org-agenda.el (org-agenda-skip-scheduled-if-deadline-is-shown): New allowed value `repeated-after-deadline'
* org-agenda.el (org-agenda-skip-scheduled-if-deadline-is-shown):
New allowed value `repeated-after-deadline' which will prevent the
display of scheduled items when repeated after the current
deadline.
(org-agenda-get-scheduled): Handle the new value.

This allows this task

* Do me every day before March, 16th (included)
  SCHEDULED: <2013-03-12 mar. +1d> DEADLINE: <2013-03-16 sam.>

to step being displayed after March, 16th.

Thanks a lot to Rick Hanson for coming with this idea and a clear example.
2013-03-12 18:58:18 +01:00
Bastien Guerry 9e00635699 org-agenda.el (org-sorting-choice): Fix default value
* org-agenda.el (org-sorting-choice): Fix default value.
2013-03-11 18:18:11 +01:00
Bastien Guerry 32385e9536 org-agenda.el (org-agenda-day-view): Fix parameter's name
* org-agenda.el (org-agenda-day-view): Fix parameter's name.
2013-03-08 12:23:10 +01:00
Bastien Guerry a2e39d98b8 org-agenda.el (org-agenda-refile): Enhance docstring. Allow to clear the refile cache with C-0 or C-u C-u C-u
* org-agenda.el (org-agenda-refile): Enhance docstring.  Allow to
clear the refile cache with C-0 or C-u C-u C-u.
2013-03-08 10:33:19 +01:00
Bastien Guerry c00a43e857 Revert `org-agenda-dim-blocked-tasks' and `org-agenda-inhibit-startup' to their previous default (t and nil)
* org.el (org-agenda-inhibit-startup): Revert to nil as the default.
* org-agenda.el (org-agenda-dim-blocked-tasks): Revert to t as the
default.

The reason for this reversion is that that users expect the agenda to
DTRT by default, and that it's better not to change the previous default
in general.  Also, users who need to speed up their agenda are probably
long time users with big and numerous agenda files, and it's easier for
them to find these variables than it is for newbies to find out why the
agenda does not DTRT.

If users want to speed up their agenda, they can now read advice here:
http://orgmode.org/worg/agenda-optimization.html
2013-03-06 10:35:19 +01:00
Bastien Guerry 8a2e3e2a79 Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.

* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 16:38:33 +01:00
Bastien Guerry 54ffb0beff org-agenda.el: Fix or add docstrings.
* org-agenda.el (org-agenda-format-date-aligned)
(org-agenda-time-of-day-to-ampm-maybe)
(org-scheduled-past-days)
(org-agenda-normalize-custom-commands)
(org-agenda-run-series, org-store-agenda-views): Fix or add
docstring.
2013-03-05 16:38:33 +01:00
Bastien Guerry 06ec886572 org-agenda.el (org-agenda-write): Overwrite file when called non-interactively
* org-agenda.el (org-agenda-write): Overwrite file when called
non-interactively.

Thanks to Simon Thum for reporting this.
2013-03-03 17:42:32 +01:00
Bastien Guerry e57ce7bd78 Merge branch 'maint' 2013-03-02 12:10:35 +01:00
Bastien Guerry c8d5674562 org-agenda.el (org-agenda-filter-apply): Deactive `org-agenda-entry-text-mode' when filtering
* org-agenda.el (org-agenda-filter-apply): Deactive
`org-agenda-entry-text-mode' when filtering.
(org-agenda-entry-text-mode): Don't allow in filtered views.
Don't show the maximum number of lines when turning off.

Thanks to Sébastien Vauban for pointing a related issue.
2013-03-02 11:00:30 +01:00
Bastien Guerry 3b4a0b21c8 org-agenda.el (org-agenda-entry-text-leaders): New option
* org-agenda.el (org-agenda-entry-text-leaders): New option.
(org-agenda-entry-text-show-here): Use it.

Thanks to Sébastien Vauban for a preliminary patch for this.
2013-03-01 17:27:50 +01:00
Bastien Guerry ccc7383890 Don't create UID for the entire file when write an agenda to .ics
* org-agenda.el (org-agenda-collect-markers)
(org-create-marker-find-array): Move to ox-icalendar.el.
(org-agenda-marker-table, org-check-agenda-marker-table):
Delete.

* ox-icalendar.el (org-icalendar-create-uid): New parameter
H-MARKERS to only update some headlines, not the whole file.
(org-icalendar--combine-files): When exporting to an .ics file
only add UID to the headlines shown in the agenda buffer.
(org-agenda-collect-markers, org-create-marker-find-array):
Move here.
2013-03-01 15:47:55 +01:00
Bastien Guerry 0c40f479cd org-agenda.el (org-agenda-write): Ask before overwriting an existing file
* org-agenda.el (org-agenda-write): Ask before overwriting an
existing file.

Thanks to Rainer Stengele for suggesting this.
2013-03-01 15:06:28 +01:00
Bastien Guerry c8c991e049 org-agenda.el (org-agenda-deadline-leaders): New formatting string for past deadlines
* org-agenda.el (org-agenda-deadline-leaders): New formatting
string for past deadlines.
(org-agenda-scheduled-leaders): Small change.
(org-agenda-get-deadlines): Use the new formatting string.

Thanks to Sébastien Vauban who suggested this idea and proposed
a preliminary patch for it.
2013-02-27 14:29:46 +01:00
Bastien Guerry 295b0ba5d1 Bump :version to "24.4" and add :package-version.
The options updated are those who won't be in Emacs 24.3.
2013-02-26 18:21:28 +01:00
Bastien Guerry de73b35909 Merge branch 'maint'
Conflicts:
	contrib/oldexp/org-exp.el
	lisp/org.el
2013-02-26 14:36:36 +01:00
Bastien Guerry 8f49547aaf Remove top-level autoloads sexps.
These autoloads were erroneously introduced by commit e4c31cf98.
2013-02-26 14:35:01 +01:00