Hello, Carsten Dominik <carsten.domi...@gmail.com> writes:
> Well, it is to avoid that a new headline would be made inside a drawer, > because it would violate Org syntax. But of course, it would be OK to > insert an item. What would be a good solution? Maybe we better catch > this problem in org-insert-heading? Or maybe not at all? We also do > not catch it in src block, for example. So I am fine with removing > this condition in org-meta-return. I suggest to be very permissive and allow a user to shoot himself in the foot. The following function implements the same behaviour as before, without the drawer check, but with Elements. (defun org-meta-return (&optional arg) "Insert a new heading or wrap a region in a table. Calls `org-insert-heading' or `org-table-wrap-region', depending on context. See the individual commands for more information." (interactive "P") (org-check-before-invisible-edit 'insert) (or (run-hook-with-args-until-success 'org-metareturn-hook) (let* ((element (org-element-at-point)) (type (org-element-type element))) (when (eq type 'table-row) (setq element (org-element-property :parent element))) (if (and (eq type 'table) (eq (org-element-property :type element) 'org) (>= (point) (org-element-property :contents-begin element)) (< (point) (org-element-property :contents-end element))) (call-interactively 'org-table-wrap-region) (call-interactively 'org-insert-heading))))) Regards, -- Nicolas Goaziou