Calvin Young <[email protected]> writes:
> How do I need to massage this to give me the beginning of the whole
> list item? Is there a recommended solution that'd work for both
> description lists *and* plain lists?
This seems to work for me:
(defun yf/org-beginning-of-item ()
(let ((element (org-element-at-point)))
;; 'plain-list is returned when at the beginning of the first item in the
list.
(when (eq 'plain-list (org-element-type element))
(save-excursion
(forward-char)
(setq element (org-element-at-point))))
;; look ancestors to find an 'item element.
(while (and element
(not
(eq 'item
(org-element-type element))))
(setq element (org-element-property :parent element)))
(if (not element)
(error "Not in a list item")
(goto-char
(+ (length (org-element-property :bullet element))
(org-element-property :begin element))))))
Probably one could use the list API directly (from org-list.el) too.
--
Nicolas Richard