mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-17 03:10:58 -08:00
* lisp/simple.el (open-line): Integrate with electric-indent-mode
Also run `post-self-insert-hook' when called interactively.
This commit is contained in:
parent
6939896e2f
commit
bd4f04f86c
1 changed files with 13 additions and 3 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue