Ihor Radchenko <yanta...@gmail.com> writes:

> I was mainly referring to org-add-note. The last note taken with
> org-add-note can be found quite reliably.
> I am using the following code saving the last note into :SUMMARY:
> property upon exiting the note buffer. Though it may be an overkill, not
> sure how easy would it be to parse the note syntax for notes created by
> org-add-note.

You cannot reliably.

> (defvar yant/last-note-taken ""
>   "Text of the last note taken.")
> (define-advice org-store-log-note (:before (&rest args) 
> yant/org-store-last-note)
>   "Store the last saved note into `yant/last-note-taken'."
>   (let ((txt (buffer-string)))
>     (while (string-match "\\`# .*\n[ \t\n]*" txt)
>       (setq txt (replace-match "" t t txt)))
>     (when (string-match "\\s-+\\'" txt)
>       (setq txt (replace-match " " t t txt)))
>     (when (string-match "\n" txt)
>       (setq txt (replace-match " " t t txt)))
>     (if (not (seq-empty-p txt))
>       (setq yant/last-note-taken txt))))
> (define-advice org-store-log-note (:after (&rest args) 
> yant/org-save-last-note-into-summary-prop)
>   "Save the last saved note into SUMMARY property."
>   (when (and (not org-note-abort) (not (seq-empty-p yant/last-note-taken)))
>     (if (eq major-mode 'org-agenda-mode)
>       (org-with-point-at-org-buffer
>        (org-set-property "SUMMARY" (or yant/last-note-taken "")))
>       (org-set-property "SUMMARY" (or yant/last-note-taken "")))
>     (setq yant/last-note-taken nil)))

This implementation is only tangentially related to a "last note". You
want to introduce some syntax to display the value a given property,
here SUMMARY. But `org-add-note' is not the only way to add a note. 

Again, on a given document, you can only guess what is the "last note".
This is not reliable enough to extend the syntax.


Reply via email to