Commit bd4f04f8 authored by Artur Malabarba's avatar Artur Malabarba
Browse files

* lisp/simple.el (open-line): Integrate with electric-indent-mode

Also run `post-self-insert-hook' when called interactively.
parent 6939896e
......@@ -458,17 +458,27 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
(put-text-property from (point) 'rear-nonsticky
(cons 'hard sticky)))))
(defun open-line (n)
(declare-function electric-indent-just-newline "electric")
(defun open-line (n &optional interactive)
"Insert a newline and leave point before it.
If `electric-indent-mode' is enabled, indent the new line if it's
not empty.
If there is a fill prefix and/or a `left-margin', insert them on
the new line. If the old line would have been blank, insert them
on the old line as well.
With arg N, insert N newlines.
A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
(interactive "*p\np")
(let* ((do-fill-prefix (and fill-prefix (bolp)))
(do-left-margin (and (bolp) (> (current-left-margin) 0)))
(loc (point-marker))
;; Don't expand an abbrev before point.
;; Don't expand an abbrev before point.
(abbrev-mode nil))
(newline n)
(if (and interactive
(looking-at-p "[[:space:]]*$"))
(electric-indent-just-newline n)
(newline n interactive))
(goto-char loc)
(while (> n 0)
(cond ((bolp)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment