From: Karl Fogel Date: Thu, 19 Nov 2015 23:32:37 +0000 (-0600) Subject: Revert `open-line' electric-indent sensitivity X-Git-Tag: emacs-25.0.90~726 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c593538968a6d6c3d03da9ef6f489da6210e70e1;p=emacs.git Revert `open-line' electric-indent sensitivity * lisp/simple.el (open-line): Remove electric indent code. (electric-indent-just-newline): Don't declare. * test/automated/simple-test.el (open-line-indent): Adjust test. This partly reverts Artur Malabarba's change that added electric indent sensitivity to `open-line' (Oct 24 22:26:27 2015 +0100, git commit bd4f04f86), and adjusts a new test he added right afterwards (Sat Oct 24 23:43:06 2015 +0100, git commit 207f235e3) accordingly. However, the new INTERACTIVE argument to `open-line', which he also added in the first commit, is not reverted here. See the thread "Questioning the new behavior of `open-line'." on the Emacs Devel mailing list, and in particular this message: From: Artur Malabarba Subject: Re: Questioning the new behavior of `open-line'. To: Karl Fogel Cc: David Kastrup, Pierpaolo Bernardi, emacs-devel Date: Wed, 18 Nov 2015 21:03:58 +0000 Message-ID: \ https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01707.html --- diff --git a/lisp/simple.el b/lisp/simple.el index dc19bd6e512..8b57bf04bea 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -458,15 +458,10 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." (put-text-property from (point) 'rear-nonsticky (cons 'hard sticky))))) -(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. - +the new line if the line would have been blank. With arg N, insert N newlines. A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." (interactive "*p\np") @@ -475,10 +470,7 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." (loc (point-marker)) ;; Don't expand an abbrev before point. (abbrev-mode nil)) - (if (and interactive - (looking-at-p "[[:space:]]*$")) - (electric-indent-just-newline n) - (newline n interactive)) + (newline n interactive) (goto-char loc) (while (> n 0) (cond ((bolp) diff --git a/test/automated/simple-test.el b/test/automated/simple-test.el index 07b5eaa93e4..7e0dbb786a7 100644 --- a/test/automated/simple-test.el +++ b/test/automated/simple-test.el @@ -138,6 +138,21 @@ (open-line 1))) '("- - " . "\n(a b c d)")))) +;; For a while, from 24 Oct - 19 Nov 2015, `open-line' in the Emacs +;; development tree became sensitive to `electric-indent-mode', which +;; it had not been before. This sensitivity was reverted for the +;; Emacs 25 release, so it could be discussed further (see thread +;; "Questioning the new behavior of `open-line'." on the Emacs Devel +;; mailing list). The only test case here that started failing after +;; the reversion is the third one, the one that currently expects +;; `("(a b" . "\n \n c d)")'. If `open-line' were again sensitive +;; to electric indent, then the three spaces between the two newlines +;; would go away, leaving `("(a b" . "\n\n c d)")'. +;; +;; If electric indent sensitivity were re-enabled, we might also want +;; to make the test cases below a bit stricter, or add some more test +;; cases that are specific to `electric-indent-mode', since right now +;; all but one of the cases pass with or without electric indent. (ert-deftest open-line-indent () (should (equal (simple-test--dummy-buffer (electric-indent-local-mode 1) @@ -152,7 +167,7 @@ (let ((current-prefix-arg nil)) (call-interactively #'open-line) (call-interactively #'open-line))) - '("(a b" . "\n\n c d)"))) + '("(a b" . "\n \n c d)"))) (should (equal (simple-test--dummy-buffer (electric-indent-local-mode 1) (open-line 5 'interactive))