1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Restore comment/string check for 'electric-layout-mode'

This reverts an accidental change which allowed
'electric-layout-mode' to insert newlines inside strings and
comments.  The new behavior can be obtained by setting the
new variable 'electric-layout-allow-in-comment-or-string' to a
non-nil value.
* lisp/electric.el (electric-layout-allow-in-comment-or-string):
New variable to determine whether inserting newlines is
permitted within comments or strings.
(electric-layout-post-self-insert-function-1): Restore the
previous default behavior of not inserting newlines within
comments or strings.
This commit is contained in:
Morgan Willcock 2024-09-24 19:33:11 +01:00 committed by Eli Zaretskii
parent 5a462948e1
commit ba44fc9a44

View File

@ -385,6 +385,9 @@ If multiple rules match, only first one is executed.")
(defvar electric-layout-allow-duplicate-newlines nil
"If non-nil, allow duplication of `before' newlines.")
(defvar electric-layout-allow-in-comment-or-string nil
"If non-nil, allow inserting newlines inside a comment or string.")
(defun electric-layout-post-self-insert-function ()
(when electric-layout-mode
(electric-layout-post-self-insert-function-1)))
@ -409,7 +412,10 @@ If multiple rules match, only first one is executed.")
(goto-char pos)
(funcall probe last-command-event))))
(when res (throw 'done res))))))))))
(when rule
(when (and rule
(or electric-layout-allow-in-comment-or-string
;; Not in a comment or string.
(not (nth 8 (save-excursion (syntax-ppss pos))))))
(goto-char pos)
(when (functionp rule) (setq rule (funcall rule)))
(dolist (sym (if (symbolp rule) (list rule) rule))