From 89c066a10cee93b80998b64a64911e71c3f5ddf7 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 23 Jan 2011 12:06:32 +0100 Subject: [PATCH] Newline-and-indent respects list structure * lisp/org.el (org-return): when called from inside an item with the indent flag, function should keep text moved inside the item. This allows to use C-j to separate lines in an item: cursor won't go back to column 0. --- lisp/org.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lisp/org.el b/lisp/org.el index 2e6bd3bde..2b2501a44 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -17490,6 +17490,18 @@ See the individual commands for more information." ((org-at-table-p) (org-table-justify-field-maybe) (call-interactively 'org-table-next-row)) + ;; when `newline-and-indent' is called within a list, make sure + ;; text moved stays inside the item. + ((and (org-in-item-p) indent) + (if (and (org-at-item-p) (>= (point) (match-end 0))) + (progn + (newline) + (org-indent-line-to (length (match-string 0)))) + (let ((ind (org-get-indentation))) + (newline) + (if (org-looking-back org-list-end-re) + (org-indent-line-function) + (org-indent-line-to ind))))) ((and org-return-follows-link (eq (get-text-property (point) 'face) 'org-link)) (call-interactively 'org-open-at-point))