On Fri, Mar 14, 2014 at 2:11 PM, Nicolas Goaziou <n.goaz...@gmail.com> wrote: > Hello, > > Matt Price <mopto...@gmail.com> writes: > >> I'm trying to write a function that will mark the parent of the >> current element. I think I understand how to do it but for some >> reason I can get the mark to persist after the funciton is called. I >> think it's really an elisp problem, not an org problem, but am hoping >> someone can ehelp me. Here's what I have: >> >> (defun er/mark-org-parent-element () >> "Marks an org parent element" >> (interactive) >> (let ((parent (plist-get (car (cdr (org-element-at-point))) :parent))) > > It is better to use (org-element-property :parent (org-element-at-point)) > >> (let ((parent-props (car (cdr parent)))) > > You shouldn't extract properties this way. See below. > >> ;; (print parent-props) >> ;; (print (plist-get parent-props :begin)) >> ;; (print (plist-get parent-props :end)) >> (if (plist-get parent-props :begin) >> (progn >> (goto-char (plist-get parent-props :begin)) > > It is better to use (org-element-property :begin parent) > >> (set-mark (point)) >> (goto-char (plist-get parent-props :end)) > > It is better to use (org-element-property :end parent) > > Anyway, I suggest to use `org-up-element' and `org-mark-element'
I am a little stunned by how awesome this is. it was worth not noticing org-up-element in the docs to learn the proper way to address org-element properties. Thank you Nicolas! And everyone else too of course. Matt > instead. > > > Regards, > > -- > Nicolas Goaziou