From: João Távora Date: Sat, 29 Dec 2018 18:34:53 +0000 (+0000) Subject: Another iteration for an improved electric-layout-mode X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=80a19b8b7a0f48eac410f66653d975c623d3c79c;p=emacs.git Another iteration for an improved electric-layout-mode * lisp/electric.el (electric-layout-rules): Add nil back to symbols list. (electric-layout-post-self-insert-function-1): Call function in correct position. --- diff --git a/lisp/electric.el b/lisp/electric.el index b52efb07c7b..0484319ed47 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -372,7 +372,8 @@ just inserted was CHAR. WHERE can be: -* one of the symbols `before', `after', `around', `after-stay'. +* one of the symbols `before', `after', `around', `after-stay', + or nil. * a list of the preceding symbols, processed in order of appearance to insert multiple newlines; @@ -408,10 +409,14 @@ If multiple rules match, only first one is executed.") (eq (car probe) last-command-event)) (throw 'done (cdr probe))) ((functionp probe) - (let ((res (funcall probe last-command-event))) + (let ((res + (save-excursion + (goto-char + (or pos (setq pos (electric--after-char-pos)))) + (funcall probe last-command-event)))) (when res (throw 'done res))))))))) (when (and rule - (setq pos (electric--after-char-pos)) + (or pos (setq pos (electric--after-char-pos))) ;; Not in a string or comment. (not (nth 8 (save-excursion (syntax-ppss pos))))) (goto-char pos)