Rasmus <ras...@gmx.us> writes: > + ;; cdlatex-environment always return nil. Therefore, capture output > + ;; first and determine if an environment was selected. > + (let* ((beg (point-marker)) > + (end (copy-marker (point) t)) > + (env (org-trim > + (or (progn (ignore-errors (cdlatex-environment environment item)) > + (delete-and-extract-region beg end)) > + ""))))
The `or' is not necessary: `delete-and-extract-region' already returns the empty string when markers don't move. (env (progn (ignore-errors (cdlatex-environment environment item)) (org-trim (delete-and-extract-region beg end))) > + (when (org-string-nw-p env) > + ;; Get indentation of next line unless at column 0. > + (let ((ind (if (bolp) 0 > + (save-excursion > + (org-return-indent) > + (prog1 (org-get-indentation) > + (when (and (skip-chars-forward " \t") (eolp)) > + (delete-region beg (point))))))) Nitpick (when (progn (skip-chars-forward " \") (eolp)) ...) since you're not really interested in the return value of `skip-chars-forward' (which is always non-nil). > + (bol (and (skip-chars-backward " \t") (bolp)))) Ditto. > + ;; Insert a newline before environment unless at column zero > + ;; to "escape" the current line. Insert a newline if > + ;; something is one the same line as \end{ENVIRONMENT}. > + (insert (concat (unless bol "\n") > + env > + (and (skip-chars-forward " \t") (not (eolp)) "\n"))) Ditto. > + (unless (zerop ind) > + (let* ((element (org-element-at-point)) > + (elm-beg (org-element-property :begin element)) > + (elm-end (copy-marker > + (save-excursion > + (goto-char (org-element-property :end element)) > + (skip-chars-backward " \t\n\r") > + (point))))) > + (save-excursion > + (goto-char elm-beg) > + (beginning-of-line) > + (while (<= (point) elm-end) > + (org-indent-to-column ind) > + (forward-line))) > + (set-marker elm-end nil))))) I don't think you need `org-element-at-point' at all. You already have BEG and END markers available. I didn't test it, but this should be enough to indent the environment. Also you shouldn't apply `org-indent-to-column' when line is empty. Regards,