mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
2008-10-12 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-edit-fixed-width-region): Exclude final newline from
picture area.
* org-export-latex.el (org-export-latex-subcontent): Add labels to
sections, to make internal links work.
(org-export-latex-fontify-headline): Do not remove all text
properties, to make sure that target properties survive this
process.
* org-exp.el (org-export-preprocess-string): Change sequence of
modifications, to make sure links are prepared before the LaTeX
conversions do happen.
* org-attach.el (org-attach-delete-all): Renamed from
`org-attch-delete'. Add a security query before deleting the
entire directory. New optional argument FORCE can overrule the
security query.
(org-attach-delete-one): New command.
* org-attach.el (org-attach-file-list): Fix bug with directory.
* org.el (org-apps-regexp-alist): New function.
(org-file-apps): Add auto-mode to the default value.
(org-open-file): Use the new structure of org-file-apps.
* org-attach.el (org-attach): Support the new keys.
(org-attach-method): New option.
* org-bbdb.el (org-bbdb-anniversaries): Fix but with 29 Feb/1
March.
* org.el (org-remove-uniherited-tags): Fix reverse interpretation
of the list value o `org-use-tag-inheritance'.
* org-attach.el (org-attach-auto-tag): New option.
(org-attach-tag, org-attach-untag): New functions.
(org-attach-attach, org-attach-new, org-attach-sync): Call
`org-attach-tag'.
(org-attach-delete): Call `org-attach-untag'.
* org-attach.el: New file.
* org-table.el (orgtbl-self-insert-command): Make this work for
the keypad as well.
* org.el (org-add-log-setup): Limit searc for drawers to entry
text, not to subtree.
* org-clock.el (org-clock-heading-for-remember): New variable.
(org-clock-in): Set `org-clock-heading-for-remember'.
2008-10-12 James TD Smith <ahktenzero@mohorovi.cc>
* org-remember.el (org-remember-apply-template): Add new
expansions: %k, %K for currently clocked task and a link to the
currently clocked task, and %< to file notes in the currently
clocked task.
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
* org-export-latex.el (org-export-latex-make-header): Also insert
the content of the property :latex-header-extra.
* org-exp.el (org-infile-export-plist): Put the content of
#+LATEX_HEADER: into the property :latex-header-extra.
* org-colview.el (org-columns-get-format-and-top-level): Remove
resetting the marker.
* org-colview-xemacs.el (org-columns-get-format-and-top-level):
Remove resetting the marker.
* org.el (org-entry-property-inherited-from): Improve docstring.
(org-entry-get-with-inheritance): Reset marker before starting the
search.
* org-exp.el (org-infile-export-plist): Allow multiple STYLE lines.
* org.el (org-entry-get-multivalued-property)
(org-entry-protect-space, org-entry-restore-space): New
functions.
(org-file-apps-defaults-macosx): Let postscript files be opened by
preview.
(org-time-stamp-inactive): Call `org-time-stamp'.
(org-time-stamp): New argument `inactive'. Also edit inacive
stamps. Convert time stamp type.
(org-open-file): Interpret the `default' value for the `command'
in `org-file-apps'.
* org-id.el (org-id-int-to-b36-one-digit)
(org-id-b36-to-int-one-digit, org-id-int-to-b36)
(org-id-b36-to-int, org-id-time-to-b36): Modified from b62 to
b36.
* org-id.el (org-id-reverse-string): New function.
(org-id-new): Use `org-id-reverse-string' to make sure the
beginning chars of the ID are mutating fast. This allows to use a
directory structure to spread things better.
(org-id-prefix): Changed default to nil.
* org-list.el (org-move-item-down, org-move-item-up): Remember and
restore the column of the cursor position.
* org-remember.el (org-remember-apply-template): Remove properties
from `initial'.
* org-wl.el (org-wl-open): Remove useless call to
`wl-thread-open-all'.
* org-remember.el (org-remember-handler): Fix bug with `bottom'
location.
* org-bbdb.el (org-bbdb-anniversaries): Require bbdb in
`org-bbdb-anniversaries'.
* org.el (org-get-next-sibling, org-forward-same-level): New
functions, similar to the outline versions, but invisible headings
are OK.
2008-10-12 Bastien Guerry <bzg@altern.org>
* org.el (org-auto-repeat-maybe): Insert a space between
the timestamp's type and the timestamp itself.
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
* org-table.el (org-table-sum): Do not format the result with %g,
it does rounding when there are too many digits.
* org.el (org-map-entries): Protect the keyword-selecting variables.
2008-10-12 Bastien Guerry <bzg@altern.org>
* org-agenda.el (org-agenda-to-appt): Make sure the function check
against all agenda files.
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
* org-list.el: New file, aggregating list functions from org.el
and org-export-latex.el.
* org.el (org-edit-src-region-extra): New option.
* org-agenda.el (org-agenda-to-appt): Fix bug with appointment
time before 1am.
2008-10-12 Bastien Guerry <bzg@altern.org>
* org-export-latex.el (org-export-latex-keywords-maybe): Bug fix.
2008-10-12 James TA Smith <ahktenzero@mohorovi.cc>
* org-plot.el (org-plot/gnuplot): Make tables starting with a
hline work correctly.
(org-plot/gnuplot-script): Put commas at the end of each script
line.
* org.el (org-get-refile-targets): Replace links with their
descriptions
(org-imenu-get-tree): Replace links with their descriptions.
* org-remember.el (org-remember-apply-template): Add a new
expansion for adding properties to remember items.
* org.el (org-add-log-setup): Skip over drawers (properties,
clocks etc) when adding notes.
* org-agenda.el (org-agenda-get-closed): show durations of clocked
items as well as the start and end times.
* org-compat.el (org-get-x-clipboard-compat): Add a compat
function for fetching the X clipboard on XEmacs and GNU Emacs 21.
* org-remember.el (org-get-x-clipboard): Use the compat
function to get clipboard values when x-selection-value is
unavailable. Use substring-no-properties instead of
set-text-properties to remove text properties from the clipboard
value.
* lisp/org-clock.el (org-update-mode-line): Support limiting the
modeline clock string, and display the full todo value in the
tooltip. Set a local keymap so mouse-3 on the clock string goes to
the currently clocked task.
(org-clock-string-limit): Add a custom value for the maximum
length of the clock string in the modeline.
(org-clock-mode-map): Add a keymap for the modeline string
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
* org-compat.el (org-propertize): New function.
2008-10-12 Bastien Guerry <bzg@altern.org>
* org-export-latex.el (org-export-latex-tables): protect exported
tables from further special chars conversion.
(org-export-latex-preprocess): Preserve LaTeX environments.
(org-list-parse-list): Parse descriptive lists.
(org-list-to-generic, org-list-to-latex, org-list-to-html)
(org-list-to-texinfo): Export descriptive lists.
(org-quote-chars): Remove.
(org-export-latex-keywords-maybe): Use `replace-regexp-in-string'.
(org-export-latex-list-beginning-re): Rename to
`org-list-beginning-re'
(org-list-item-begin): Rename to `org-list-item-beginning'
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-refile): Allow refiling to the last entry in the
buffer.
(org-get-tags-at): Fix bug when inheritance is turned off.
* org.el (org-indent-line-function): No longer check for src
regions, this is too much overhead.
* org-agenda.el (org-agenda-highlight-todo): Fix bugs with keyword
matching.
* org.el (org-scan-tags): Make sure that tags matching is not case
sensitive. TODO keyword matching is case sensitive, however, to
avoid confusion with similar words that are not meant to be
keywords.
* org.el (org-get-local-tags-at): New function.
(org-get-local-tags): New function.
* org-exp.el (org-export-get-categories): New function.
* org-agenda.el (org-sorting-choice)
(org-agenda-sorting-strategy, org-agenda-get-todos)
(org-agenda-get-timestamps, org-agenda-get-deadlines)
(org-agenda-get-scheduled, org-agenda-get-blocks)
(org-entries-lessp): Implement sorting by TODO state.
(org-cmp-todo-state): New defsubst.
* org-colview.el (org-colview-construct-allowed-dates): New
function.
(org-columns-next-allowed-value): Use
`org-colview-construct-allowed-dates'.
* org-colview-xemacs.el (org-colview-construct-allowed-dates): New
function.
(org-columns-next-allowed-value): Use
`org-colview-construct-allowed-dates'.
* org.el (org-protect-slash): New function.
(org-get-refile-targets): Use `org-protect-slash'.
* org-agenda.el (org-global-tags-completion-table): New variable.
* org-exp.el (org-export-handle-export-tags): New function.
(org-export-preprocess-string): Call
`org-export-handle-export-tags'.
* org-plot.el: New file.
* org-publish.el (org-publish-expand-components): Function removed.
(org-publish-expand-projects): Allow components to have components.
* org.el (org-indent-line-function): Do not indent in regions that
are external source code.
(org-yank-and-fold-if-subtree): New function.
* org-agenda.el (org-agenda-todayp): New function.
(org-agenda-get-deadlines, org-agenda-get-scheduled): Use
`org-agenda-todayp'.
* org.el (org-insert-heading-respect-content)
(org-insert-todo-heading-respect-content): New commands.
(org-insert-heading-respect-content): New option.
(org-insert-heading): Respect `org-insert-heading-respect-content'.
* org-clock.el (org-clock-find-position): Make sure the note after
the clock line gets moved into the new clock drawer.
* org-id.el (org-id-new): New option.
* org-table.el (org-table-copy-down): Avoid overflow during
increment. Use prefix argument 0 to temporarily disable the
increment.
* org-exp.el (org-export-as-html): Do not turn on the major mode
if the buffer will be killed anyway.
(org-get-current-options): Exclude the #+TEXT field.
(org-export-as-html): Make sure text before the first headline is
a paragraph.
* org-publish.el (org-publish-org-to): Tell the exporter that this
buffer will be killed, so it is not necessary to do major mode
initialization.
* org-archive.el (org-archive-to-archive-sibling): Show empty
lines after folding the archive sibling.
* org.el (org-log-note-extra): New variable.
2008-10-12 Bastien Guerry <bzg@altern.org>
* org.el (org-additional-option-like-keywords): Added keywords for
the _QUOTE, _VERSE and _SRC environments.
* org-export-latex.el (org-export-latex-preprocess): Fix bug when
exporting _QUOTE and _VERSE environments.
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
* org-agenda.el (org-agenda-filter-by-tag): New command.
* org-exp.el (org-get-current-options): Remove angular brackets
from the date entry.
* org.el (org-edit-fixed-width-region): New function.
(org-edit-fixed-width-region): Also try
`org-edit-fixed-width-region'.
(org-edit-fixed-width-region-mode): New option.
(org-activate-code): Only interprete lines starting with colon
plus a space as example lines.
* org-remember.el (org-remember-templates): Add nil instead of
empty strings to fix the length of remember templates.
* org-table.el (org-calc-default-modes): Fix the time format for
calc, from 12 hour to 24 hour clock.
* org-agenda.el (org-agenda-get-deadlines)
(org-agenda-get-scheduled): Avoid `time-of-day' extraction for
entries that are pre-warnings of deadlines or reminders.
* org.el (org-sort-entries-or-items): Make numeric and alpha
comparisons ignore any TODO keyword and priority cookie.
* org-remember.el (org-remember-handler): Reinterpretation of the
prefix argument.
* org-agenda.el (org-agenda-get-scheduled): Use new
`org-scheduled' face.
* org-faces.el (org-scheduled): New face.
* org-wl.el (org-wl-open): Remove incorrect declaration.
* org-gnus.el (org-gnus-store-link): Support for :to information
in gnus links.
* org-exp.el (org-export-as-html): Fixed typo in creator
information.
(org-export-protect-examples): New parameter indent. Insert extra
spaces only when this parameter is specified.
(org-export-preprocess-string): Call `org-export-protect-examples'
with an indentation parameter when exporting to ASCII.
* org-remember.el (org-remember-templates)
(org-remember-apply-template): Allow the file component to be a
function.
* org.el (org-goto-local-search-headings): Renamed from
`org-goto-local-search-forward-headings'. Added the possibility
to search backwards.
* org-export-latex.el (org-export-latex): New customization
group.
* org-agenda.el (org-write-agenda): Erase buffer for txt export.
* org-exp.el (org-html-do-expand): Allow {} to terminate
tex macro
* org.el (org-buffer-list): Select buffers based on major mode,
not on file name.
* org-agenda.el (org-agenda-align-tags): Fix bug with malformed
face property.
* org-colview.el (org-columns-display-here): Use
`org-columns-modify-value-for-display-function'.
* org-colview-xemacs.el (org-columns-display-here): Use
`org-columns-modify-value-for-display-function'.
* org.el (org-columns-modify-value-for-display-function): New option.
* org-publish.el (org-publish-file): Make sure the directory match
for the publishing directory works correctly.
* org-agenda.el (org-agenda-execute-calendar-command)
(org-agenda-diary-entry): Additional optional argument.
This commit is contained in:
parent
f691c21696
commit
621f83e4c1
28 changed files with 1796 additions and 1496 deletions
|
|
@ -5,7 +5,7 @@
|
|||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.06b
|
||||
;; Version: 6.09a
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
|
@ -34,15 +34,17 @@
|
|||
(require 'cl))
|
||||
(require 'org)
|
||||
|
||||
(declare-function remember-mode "remember" ())
|
||||
(declare-function remember "remember" (&optional initial))
|
||||
(declare-function remember-buffer-desc "remember" ())
|
||||
(declare-function remember-finalize "remember" ())
|
||||
(defvar remember-save-after-remembering)
|
||||
(defvar remember-data-file)
|
||||
(defvar remember-register)
|
||||
(defvar remember-buffer)
|
||||
(defvar remember-handler-functions)
|
||||
(defvar remember-annotation-functions)
|
||||
(defvar org-clock-heading)
|
||||
(defvar org-clock-heading-for-remember)
|
||||
|
||||
(defgroup org-remember nil
|
||||
"Options concerning interaction with remember.el."
|
||||
|
|
@ -133,8 +135,11 @@ Furthermore, the following %-escapes will be replaced with content:
|
|||
%x content of the X clipboard
|
||||
%^C Interactive selection of which kill or clip to use
|
||||
%^L Like %^C, but insert as link
|
||||
%k title of currently clocked task
|
||||
%K link to currently clocked task
|
||||
%^g prompt for tags, with completion on tags in target file
|
||||
%^G prompt for tags, with completion all tags in all agenda files
|
||||
%^{prop}p Prompt the user for a value for property `prop'
|
||||
%:keyword specific information for certain link types, see below
|
||||
%[pathname] insert the contents of the file given by `pathname'
|
||||
%(sexp) evaluate elisp `(sexp)' and replace with the result
|
||||
|
|
@ -164,8 +169,8 @@ calendar | %:type %:date"
|
|||
:get (lambda (var) ; Make sure all entries have at least 5 elements
|
||||
(mapcar (lambda (x)
|
||||
(if (not (stringp (car x))) (setq x (cons "" x)))
|
||||
(cond ((= (length x) 4) (append x '("")))
|
||||
((= (length x) 3) (append x '("" "")))
|
||||
(cond ((= (length x) 4) (append x '(nil)))
|
||||
((= (length x) 3) (append x '(nil nil)))
|
||||
(t x)))
|
||||
(default-value var)))
|
||||
:type '(repeat
|
||||
|
|
@ -176,6 +181,7 @@ calendar | %:type %:date"
|
|||
(string :tag "Template")
|
||||
(choice :tag "Destination file"
|
||||
(file :tag "Specify")
|
||||
(function :tag "Function")
|
||||
(const :tag "Use `org-default-notes-file'" nil))
|
||||
(choice :tag "Destin. headline"
|
||||
(string :tag "Specify")
|
||||
|
|
@ -207,8 +213,8 @@ user each time a remember buffer with a running clock is filed away. "
|
|||
|
||||
;;;###autoload
|
||||
(defun org-remember-insinuate ()
|
||||
"Setup remember.el for use wiht Org-mode."
|
||||
(require 'remember)
|
||||
"Setup remember.el for use with Org-mode."
|
||||
(org-require-remember)
|
||||
(setq remember-annotation-functions '(org-remember-annotation))
|
||||
(setq remember-handler-functions '(org-remember-handler))
|
||||
(add-hook 'remember-mode-hook 'org-remember-apply-template))
|
||||
|
|
@ -300,26 +306,33 @@ RET at beg-of-buf -> Append to file as level 2 headline
|
|||
(cddr (assoc char templates)))))
|
||||
|
||||
(defun org-get-x-clipboard (value)
|
||||
"Get the value of the x clibboard, in a way that also works with XEmacs."
|
||||
"Get the value of the x clibboard, compatible with XEmacs, and GNU Emacs 21."
|
||||
(if (eq window-system 'x)
|
||||
(let ((x (if org-xemacs-p
|
||||
(org-no-warnings (get-selection-no-error value))
|
||||
(and (fboundp 'x-selection-value)
|
||||
(x-selection-value value)))))
|
||||
(and (> (length x) 0) (set-text-properties 0 (length x) nil x) x))))
|
||||
(let ((x (org-get-x-clipboard-compat value)))
|
||||
(if x (org-no-properties x)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-remember-apply-template (&optional use-char skip-interactive)
|
||||
"Initialize *remember* buffer with template, invoke `org-mode'.
|
||||
This function should be placed into `remember-mode-hook' and in fact requires
|
||||
to be run from that hook to function properly."
|
||||
(when (and (boundp 'initial) (stringp initial))
|
||||
(setq initial (org-no-properties initial))
|
||||
(remove-text-properties 0 (length initial) '(read-only t) initial))
|
||||
(if org-remember-templates
|
||||
(let* ((entry (org-select-remember-template use-char))
|
||||
(ct (or org-overriding-default-time (org-current-time)))
|
||||
(dct (decode-time ct))
|
||||
(ct1
|
||||
(if (< (nth 2 dct) org-extend-today-until)
|
||||
(encode-time 0 59 23 (1- (nth 3 dct)) (nth 4 dct) (nth 5 dct))
|
||||
ct))
|
||||
(tpl (car entry))
|
||||
(plist-p (if org-store-link-plist t nil))
|
||||
(file (if (and (nth 1 entry) (stringp (nth 1 entry))
|
||||
(string-match "\\S-" (nth 1 entry)))
|
||||
(file (if (and (nth 1 entry)
|
||||
(or (and (stringp (nth 1 entry))
|
||||
(string-match "\\S-" (nth 1 entry)))
|
||||
(functionp (nth 1 entry))))
|
||||
(nth 1 entry)
|
||||
org-default-notes-file))
|
||||
(headline (nth 2 entry))
|
||||
|
|
@ -346,11 +359,24 @@ to be run from that hook to function properly."
|
|||
(replace-match "[\\1[%^{Link description}]]" nil nil v-a)
|
||||
v-a))
|
||||
(v-n user-full-name)
|
||||
(v-k (if (marker-buffer org-clock-marker)
|
||||
(substring-no-properties org-clock-heading)))
|
||||
(v-K (if (marker-buffer org-clock-marker)
|
||||
(org-make-link-string
|
||||
(buffer-file-name (marker-buffer org-clock-marker))
|
||||
org-clock-heading)))
|
||||
v-I
|
||||
(org-startup-folded nil)
|
||||
(org-inhibit-startup t)
|
||||
org-time-was-given org-end-time-was-given x
|
||||
prompt completions char time pos default histvar)
|
||||
|
||||
(when (functionp file)
|
||||
(setq file (funcall file)))
|
||||
(when (and file (not (file-name-absolute-p file)))
|
||||
(setq file (expand-file-name file org-directory)))
|
||||
|
||||
|
||||
(setq org-store-link-plist
|
||||
(append (list :annotation v-a :initial v-i)
|
||||
org-store-link-plist))
|
||||
|
|
@ -358,20 +384,23 @@ to be run from that hook to function properly."
|
|||
(erase-buffer)
|
||||
(insert (substitute-command-keys
|
||||
(format
|
||||
"## Filing location: Select interactively, default, or last used:
|
||||
"## %s \"%s\" -> \"* %s\"
|
||||
## C-u C-c C-c like C-c C-c, and immediately visit note at target location
|
||||
## C-0 C-c C-c \"%s\" -> \"* %s\"
|
||||
## %s to select file and header location interactively.
|
||||
## %s \"%s\" -> \"* %s\"
|
||||
## C-u C-u C-c C-c \"%s\" -> \"* %s\"
|
||||
## C-2 C-c C-c as child of the currently clocked item
|
||||
## To switch templates, use `\\[org-remember]'. To abort use `C-c C-k'.\n\n"
|
||||
(if org-remember-store-without-prompt " C-u C-c C-c" " C-c C-c")
|
||||
(if org-remember-store-without-prompt " C-c C-c" " C-u C-c C-c")
|
||||
(if org-remember-store-without-prompt " C-c C-c" " C-1 C-c C-c")
|
||||
(abbreviate-file-name (or file org-default-notes-file))
|
||||
(or headline "")
|
||||
(or (car org-remember-previous-location) "???")
|
||||
(or (cdr org-remember-previous-location) "???"))))
|
||||
(insert tpl) (goto-char (point-min))
|
||||
(or (cdr org-remember-previous-location) "???")
|
||||
(if org-remember-store-without-prompt "C-1 C-c C-c" " C-c C-c"))))
|
||||
(insert tpl)
|
||||
(goto-char (point-min))
|
||||
|
||||
;; Simple %-escapes
|
||||
(while (re-search-forward "%\\([tTuUaiAcx]\\)" nil t)
|
||||
(while (re-search-forward "%\\([tTuUaiAcxkKI]\\)" nil t)
|
||||
(when (and initial (equal (match-string 0) "%i"))
|
||||
(save-match-data
|
||||
(let* ((lead (buffer-substring
|
||||
|
|
@ -417,7 +446,7 @@ to be run from that hook to function properly."
|
|||
(replace-match x t t))))
|
||||
|
||||
;; Turn on org-mode in the remember buffer, set local variables
|
||||
(org-mode)
|
||||
(let ((org-inhibit-startup t)) (org-mode))
|
||||
(org-set-local 'org-finish-function 'org-remember-finalize)
|
||||
(if (and file (string-match "\\S-" file) (not (file-directory-p file)))
|
||||
(org-set-local 'org-default-notes-file file))
|
||||
|
|
@ -425,7 +454,7 @@ to be run from that hook to function properly."
|
|||
(org-set-local 'org-remember-default-headline headline))
|
||||
;; Interactive template entries
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "%^\\({\\([^}]*\\)}\\)?\\([gGtTuUCL]\\)?" nil t)
|
||||
(while (re-search-forward "%^\\({\\([^}]*\\)}\\)?\\([gGtTuUCLp]\\)?" nil t)
|
||||
(setq char (if (match-end 3) (match-string 3))
|
||||
prompt (if (match-end 2) (match-string 2)))
|
||||
(goto-char (match-beginning 0))
|
||||
|
|
@ -470,6 +499,22 @@ to be run from that hook to function properly."
|
|||
(car clipboards)
|
||||
'(clipboards . 1)
|
||||
(car clipboards))))))
|
||||
((equal char "p")
|
||||
(let*
|
||||
((prop (substring-no-properties prompt))
|
||||
(allowed (with-current-buffer
|
||||
(get-buffer (file-name-nondirectory file))
|
||||
(org-property-get-allowed-values nil prop 'table)))
|
||||
(existing (with-current-buffer
|
||||
(get-buffer (file-name-nondirectory file))
|
||||
(mapcar 'list (org-property-values prop))))
|
||||
(propprompt (concat "Value for " prop ": "))
|
||||
(val (if allowed
|
||||
(org-completing-read propprompt allowed nil
|
||||
'req-match)
|
||||
(org-completing-read propprompt existing nil nil
|
||||
"" nil ""))))
|
||||
(org-set-property prop val)))
|
||||
(char
|
||||
;; These are the date/time related ones
|
||||
(setq org-time-was-given (equal (upcase char) char))
|
||||
|
|
@ -488,7 +533,7 @@ to be run from that hook to function properly."
|
|||
(if (re-search-forward "%\\?" nil t)
|
||||
(replace-match "")
|
||||
(and (re-search-forward "^[^#\n]" nil t) (backward-char 1))))
|
||||
(org-mode)
|
||||
(let ((org-inhibit-startup t)) (org-mode))
|
||||
(org-set-local 'org-finish-function 'org-remember-finalize))
|
||||
(when (save-excursion
|
||||
(goto-char (point-min))
|
||||
|
|
@ -556,6 +601,7 @@ note stored by remember.
|
|||
Lisp programs can set ORG-FORCE-REMEMBER-TEMPLATE-CHAR to a character
|
||||
associated with a template in `org-remember-templates'."
|
||||
(interactive "P")
|
||||
(org-require-remember)
|
||||
(cond
|
||||
((equal goto '(4)) (org-go-to-remember-target))
|
||||
((equal goto '(16)) (org-remember-goto-last-stored))
|
||||
|
|
@ -617,39 +663,38 @@ The user is queried for the template."
|
|||
;;;###autoload
|
||||
(defun org-remember-handler ()
|
||||
"Store stuff from remember.el into an org file.
|
||||
First prompts for an org file. If the user just presses return, the value
|
||||
of `org-default-notes-file' is used.
|
||||
Then the command offers the headings tree of the selected file in order to
|
||||
file the text at a specific location.
|
||||
You can either immediately press RET to get the note appended to the
|
||||
file, or you can use vertical cursor motion and visibility cycling (TAB) to
|
||||
find a better place. Then press RET or <left> or <right> in insert the note.
|
||||
When the template has specified a file and a headline, the entry is filed
|
||||
there, or in the location defined by `org-default-notes-file' and
|
||||
`org-remember-default-headline'.
|
||||
|
||||
Key Cursor position Note gets inserted
|
||||
-----------------------------------------------------------------------------
|
||||
RET buffer-start as level 1 heading at end of file
|
||||
RET on headline as sublevel of the heading at cursor
|
||||
RET no heading at cursor position, level taken from context.
|
||||
Or use prefix arg to specify level manually.
|
||||
<left> on headline as same level, before current heading
|
||||
<right> on headline as same level, after current heading
|
||||
If no defaults have been defined, or if the current prefix argument
|
||||
is 1 (so you must use `C-1 C-c C-c' to exit remember), an interactive
|
||||
process is used to select the target location.
|
||||
|
||||
So the fastest way to store the note is to press RET RET to append it to
|
||||
the default file. This way your current train of thought is not
|
||||
interrupted, in accordance with the principles of remember.el.
|
||||
You can also get the fast execution without prompting by using
|
||||
C-u C-c C-c to exit the remember buffer. See also the variable
|
||||
`org-remember-store-without-prompt'.
|
||||
When the prefix is 0 (i.e. when remember is exited with `C-0 C-c C-c'),
|
||||
the entry is filed to the same location as the previous note.
|
||||
|
||||
Before being stored away, the function ensures that the text has a
|
||||
headline, i.e. a first line that starts with a \"*\". If not, a headline
|
||||
is constructed from the current date and some additional data.
|
||||
When the prefix is 2 (i.e. when remember is exited with `C-2 C-c C-c'),
|
||||
the entry is fild as a subentry of the entry where the clock is
|
||||
currently running.
|
||||
|
||||
When `C-u' has been used as prefix argument, the note is stored and emacs
|
||||
moves point to the new location of the note, so that editing can be
|
||||
continued there (smilar to inserting \"%&\" into the tempate).
|
||||
|
||||
Before storing the note, the function ensures that the text has an
|
||||
org-mode-style headline, i.e. a first line that starts with
|
||||
a \"*\". If not, a headline is constructed from the current date and
|
||||
some additional data.
|
||||
|
||||
If the variable `org-adapt-indentation' is non-nil, the entire text is
|
||||
also indented so that it starts in the same column as the headline
|
||||
\(i.e. after the stars).
|
||||
|
||||
See also the variable `org-reverse-note-order'."
|
||||
(when (and (equal current-prefix-arg 2)
|
||||
(not (marker-buffer org-clock-marker)))
|
||||
(error "No runing clock"))
|
||||
(when (org-bound-and-true-p org-jump-to-target-location)
|
||||
(let* ((end (min (point-max) (1+ (point))))
|
||||
(beg (point)))
|
||||
|
|
@ -666,15 +711,17 @@ See also the variable `org-reverse-note-order'."
|
|||
(catch 'quit
|
||||
(if org-note-abort (throw 'quit nil))
|
||||
(let* ((visitp (org-bound-and-true-p org-jump-to-target-location))
|
||||
(fastp (org-xor (equal current-prefix-arg '(4))
|
||||
(previousp (and (member current-prefix-arg '((16) 0))
|
||||
org-remember-previous-location))
|
||||
(clockp (equal current-prefix-arg 2))
|
||||
(fastp (org-xor (equal current-prefix-arg 1)
|
||||
org-remember-store-without-prompt))
|
||||
(file (cond
|
||||
(fastp org-default-notes-file)
|
||||
((and (eq org-remember-interactive-interface 'refile)
|
||||
org-refile-targets)
|
||||
org-default-notes-file)
|
||||
((not (and (equal current-prefix-arg '(16))
|
||||
org-remember-previous-location))
|
||||
((not previousp)
|
||||
(org-get-org-file))))
|
||||
(heading org-remember-default-headline)
|
||||
(visiting (and file (org-find-base-buffer-visiting file)))
|
||||
|
|
@ -682,10 +729,16 @@ See also the variable `org-reverse-note-order'."
|
|||
(org-startup-align-all-tables nil)
|
||||
(org-goto-start-pos 1)
|
||||
spos exitcmd level reversed txt)
|
||||
(if (and (equal current-prefix-arg '(16)) org-remember-previous-location)
|
||||
(setq file (car org-remember-previous-location)
|
||||
heading (cdr org-remember-previous-location)
|
||||
fastp t))
|
||||
(when (equal current-prefix-arg '(4))
|
||||
(setq visitp t))
|
||||
(when previousp
|
||||
(setq file (car org-remember-previous-location)
|
||||
heading (cdr org-remember-previous-location)
|
||||
fastp t))
|
||||
(when clockp
|
||||
(setq file (buffer-file-name (marker-buffer org-clock-marker))
|
||||
heading org-clock-heading-for-remember
|
||||
fastp t))
|
||||
(setq current-prefix-arg nil)
|
||||
;; Modify text so that it becomes a nice subtree which can be inserted
|
||||
;; into an org tree.
|
||||
|
|
@ -739,7 +792,6 @@ See also the variable `org-reverse-note-order'."
|
|||
(setq org-goto-start-pos (or (match-beginning 0) (point-min))))
|
||||
((eq heading 'bottom)
|
||||
(goto-char (point-max))
|
||||
(re-search-backward "^\\* " nil t)
|
||||
(or (bolp) (newline))
|
||||
(setq org-goto-start-pos (point)))
|
||||
((and (stringp heading) (string-match "\\S-" heading))
|
||||
|
|
@ -761,7 +813,7 @@ See also the variable `org-reverse-note-order'."
|
|||
(cond
|
||||
((and fastp (memq heading '(top bottom)))
|
||||
(setq spos org-goto-start-pos
|
||||
exitcmd (if (eq heading 'top) 'left 'right)))
|
||||
exitcmd (if (eq heading 'top) 'left nil)))
|
||||
(fastp (setq spos org-goto-start-pos
|
||||
exitcmd 'return))
|
||||
((eq org-remember-interactive-interface 'outline)
|
||||
|
|
@ -816,6 +868,12 @@ See also the variable `org-reverse-note-order'."
|
|||
(move-marker org-remember-last-stored-marker (point)))
|
||||
(t (error "This should not happen"))))
|
||||
|
||||
((eq heading 'bottom)
|
||||
(org-paste-subtree 1 txt)
|
||||
(and org-auto-align-tags (org-set-tags nil t))
|
||||
(bookmark-set "org-remember-last-stored")
|
||||
(move-marker org-remember-last-stored-marker (point)))
|
||||
|
||||
((and (bobp) (not reversed))
|
||||
;; Put it at the end, one level below level 1
|
||||
(save-restriction
|
||||
|
|
@ -857,11 +915,41 @@ See also the variable `org-reverse-note-order'."
|
|||
|
||||
t) ;; return t to indicate that we took care of this note.
|
||||
|
||||
|
||||
(defun org-do-remember (&optional initial)
|
||||
"Call remember."
|
||||
(remember initial))
|
||||
|
||||
(defun org-require-remember ()
|
||||
"Make sure remember is loaded, or install our own emergency version of it."
|
||||
(condition-case nil
|
||||
(require 'remember)
|
||||
(error
|
||||
;; Lets install our own micro version of remember
|
||||
(defvar remember-register ?R)
|
||||
(defvar remember-mode-hook nil)
|
||||
(defvar remember-handler-functions nil)
|
||||
(defvar remember-buffer "*Remember*")
|
||||
(defvar remember-save-after-remembering t)
|
||||
(defvar remember-annotation-functions '(buffer-file-name))
|
||||
(defun remember-finalize ()
|
||||
(run-hook-with-args-until-success 'remember-handler-functions)
|
||||
(when (equal remember-buffer (buffer-name))
|
||||
(kill-buffer (current-buffer))
|
||||
(jump-to-register remember-register)))
|
||||
(defun remember-mode ()
|
||||
(fundamental-mode)
|
||||
(setq mode-name "Remember")
|
||||
(run-hooks 'remember-mode-hook))
|
||||
(defun remember (&optional initial)
|
||||
(window-configuration-to-register remember-register)
|
||||
(let* ((annotation (run-hook-with-args-until-success
|
||||
'remember-annotation-functions)))
|
||||
(switch-to-buffer-other-window (get-buffer-create remember-buffer))
|
||||
(remember-mode)))
|
||||
(defun remember-buffer-desc ()
|
||||
(buffer-substring (point-min) (save-excursion (goto-char (point-min))
|
||||
(point-at-eol)))))))
|
||||
|
||||
(provide 'org-remember)
|
||||
|
||||
;; arch-tag: 497f30d0-4bc3-4097-8622-2d27ac5f2698
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue