Cleaning up template code for remember.
You can now define templates that file to the beginning/end of the file, as level 1 entries. Also some documentation issue are fixed now.
This commit is contained in:
parent
d546fd332d
commit
058b918ad6
|
@ -1,3 +1,11 @@
|
|||
2008-06-13 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-remember.el (org-remember-visit-immediately): Position
|
||||
cursor after moving to the note.
|
||||
(org-remember-apply-template): Use a text property to record the
|
||||
cursor position.
|
||||
(org-remember-handler): Align tags after pasting the note.
|
||||
|
||||
2008-06-12 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-bbdb.el (org-bbdb-follow-anniversary-link): New function.
|
||||
|
|
|
@ -50,9 +50,12 @@
|
|||
:group 'org)
|
||||
|
||||
(defcustom org-remember-store-without-prompt t
|
||||
"Non-nil means, `C-c C-c' stores remember note without further promts.
|
||||
In this case, you need `C-u C-c C-c' to get the prompts for
|
||||
note file and headline.
|
||||
"Non-nil means, `C-c C-c' stores remember note without further prompts.
|
||||
It then uses the file and headline specified by the template or (if the
|
||||
themplate does not specify them) by the variables `org-default-notes-file'
|
||||
and `org-remember-default-headline'. To force prompting anyway, use
|
||||
`C-u C-c C-c' to file the note.
|
||||
|
||||
When this variable is nil, `C-c C-c' gives you the prompts, and
|
||||
`C-u C-c C-c' triggers the fasttrack."
|
||||
:group 'org-remember
|
||||
|
@ -99,13 +102,16 @@ it will be interpreted relative to `org-directory'.
|
|||
|
||||
An optional fifth element can specify the headline in that file that should
|
||||
be offered first when the user is asked to file the entry. The default
|
||||
headline is given in the variable `org-remember-default-headline'.
|
||||
headline is given in the variable `org-remember-default-headline'. When
|
||||
this element is `top' or `bottom', the note will be placed as a level-1
|
||||
entry at the beginning or end of the file, respectively.
|
||||
|
||||
An optional sixth element specifies the contexts in which the user can
|
||||
select the template. This element can be either a list of major modes
|
||||
or a function. `org-remember' will first check whether the function
|
||||
returns `t' or if we are in any of the listed major modes, and select
|
||||
the template accordingly.
|
||||
An optional sixth element specifies the contexts in which the template
|
||||
will be offered to the user. This element can be a list of major modes
|
||||
or a function, and the template will only be offered if `org-remember'
|
||||
is called from a mode in the list, or if the function returns t.
|
||||
Templates that specify t or nil for the context will be always be added
|
||||
to the list of selectable templates.
|
||||
|
||||
The template specifies the structure of the remember buffer. It should have
|
||||
a first line starting with a star, to act as the org-mode headline.
|
||||
|
@ -165,14 +171,16 @@ calendar | %:type %:date"
|
|||
(string :tag "Name")
|
||||
(character :tag "Selection Key")
|
||||
(string :tag "Template")
|
||||
(choice
|
||||
(file :tag "Destination file")
|
||||
(const :tag "Prompt for file" nil))
|
||||
(choice
|
||||
(string :tag "Destination headline")
|
||||
(const :tag "Selection interface for heading" nil))
|
||||
(choice
|
||||
(const :tag "Use by default" nil)
|
||||
(choice :tag "Destination file"
|
||||
(file :tag "Specify")
|
||||
(const :tag "Use `org-default-notes-file'" nil))
|
||||
(choice :tag "Destin. headline"
|
||||
(string :tag "Specify")
|
||||
(const :tag "Use `org-remember-default-headline'" nil)
|
||||
(const :tag "Level 1 at beginning of file" top)
|
||||
(const :tag "Level 1 at end of file" bottom))
|
||||
(choice :tag "Context"
|
||||
(const :tag "Use in all contexts" nil)
|
||||
(const :tag "Use in all contexts" t)
|
||||
(repeat :tag "Use only if in major mode"
|
||||
(symbol :tag "Major mode"))
|
||||
|
@ -409,7 +417,7 @@ to be run from that hook to function properly."
|
|||
(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))
|
||||
(if (and headline (stringp headline) (string-match "\\S-" headline))
|
||||
(if headline
|
||||
(org-set-local 'org-remember-default-headline headline))
|
||||
;; Interactive template entries
|
||||
(goto-char (point-min))
|
||||
|
@ -501,6 +509,10 @@ from that hook."
|
|||
This should be run in `post-command-hook' and will remove itself
|
||||
from that hook."
|
||||
(org-remember '(16))
|
||||
(goto-char (or (text-property-any
|
||||
(point) (save-excursion (org-end-of-subtree t t))
|
||||
'org-position-cursor t)
|
||||
(point)))
|
||||
(message "%s"
|
||||
(format
|
||||
(substitute-command-keys
|
||||
|
@ -633,6 +645,11 @@ 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 (org-bound-and-true-p org-jump-to-target-location)
|
||||
(let* ((end (min (point-max) (1+ (point))))
|
||||
(beg (point)))
|
||||
(if (= end beg) (setq beg (1- beg)))
|
||||
(put-text-property beg end 'org-position-cursor t)))
|
||||
(goto-char (point-min))
|
||||
(while (looking-at "^[ \t]*\n\\|^##.*\n")
|
||||
(replace-match ""))
|
||||
|
@ -703,25 +720,43 @@ See also the variable `org-reverse-note-order'."
|
|||
(widen)
|
||||
(and (goto-char (point-min))
|
||||
(not (re-search-forward "^\\* " nil t))
|
||||
(insert "\n* " (or heading "Notes") "\n"))
|
||||
(insert "\n* " (or (and (stringp heading) heading)
|
||||
"Notes") "\n"))
|
||||
(setq reversed (org-notes-order-reversed-p))
|
||||
|
||||
;; Find the default location
|
||||
(when (and heading (stringp heading) (string-match "\\S-" heading))
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward
|
||||
(concat "^\\*+[ \t]+" (regexp-quote heading)
|
||||
(org-re "\\([ \t]+:[[:alnum:]@_:]*\\)?[ \t]*$"))
|
||||
nil t)
|
||||
(setq org-goto-start-pos (match-beginning 0))
|
||||
(when fastp
|
||||
(goto-char (point-max))
|
||||
(unless (bolp) (newline))
|
||||
(insert "* " heading "\n")
|
||||
(setq org-goto-start-pos (point-at-bol 0)))))
|
||||
(when heading
|
||||
(cond
|
||||
((eq heading 'top)
|
||||
(goto-char (point-min))
|
||||
(or (looking-at org-outline-regexp)
|
||||
(re-search-forward org-outline-regexp nil t))
|
||||
(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))
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward
|
||||
(concat "^\\*+[ \t]+" (regexp-quote heading)
|
||||
(org-re "\\([ \t]+:[[:alnum:]@_:]*\\)?[ \t]*$"))
|
||||
nil t)
|
||||
(setq org-goto-start-pos (match-beginning 0))
|
||||
(when fastp
|
||||
(goto-char (point-max))
|
||||
(unless (bolp) (newline))
|
||||
(insert "* " heading "\n")
|
||||
(setq org-goto-start-pos (point-at-bol 0)))))
|
||||
(t (goto-char (point-min)) (setq org-goto-start-pos (point)
|
||||
heading 'top))))
|
||||
|
||||
;; Ask the User for a location, using the appropriate interface
|
||||
(cond
|
||||
((and fastp (memq heading '(top bottom)))
|
||||
(setq spos org-goto-start-pos
|
||||
exitcmd (if (eq heading 'top) 'left 'right)))
|
||||
(fastp (setq spos org-goto-start-pos
|
||||
exitcmd 'return))
|
||||
((eq org-remember-interactive-interface 'outline)
|
||||
|
@ -758,17 +793,20 @@ See also the variable `org-reverse-note-order'."
|
|||
(end-of-line 1)
|
||||
(insert "\n"))))
|
||||
(org-paste-subtree (org-get-valid-level level 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)))
|
||||
((eq exitcmd 'left)
|
||||
;; before current
|
||||
(org-paste-subtree level 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)))
|
||||
((eq exitcmd 'right)
|
||||
;; after current
|
||||
(org-end-of-subtree t)
|
||||
(org-paste-subtree level 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)))
|
||||
(t (error "This should not happen"))))
|
||||
|
@ -780,6 +818,7 @@ See also the variable `org-reverse-note-order'."
|
|||
(goto-char (point-max))
|
||||
(if (not (bolp)) (newline))
|
||||
(org-paste-subtree (org-get-valid-level 1 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))))
|
||||
|
||||
|
@ -791,6 +830,7 @@ See also the variable `org-reverse-note-order'."
|
|||
(re-search-forward "^\\*+ " nil t)
|
||||
(beginning-of-line 1)
|
||||
(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))))
|
||||
(t
|
||||
|
@ -799,6 +839,7 @@ See also the variable `org-reverse-note-order'."
|
|||
(org-paste-subtree
|
||||
(if (numberp current-prefix-arg) current-prefix-arg)
|
||||
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))))
|
||||
|
||||
|
|
Loading…
Reference in New Issue