mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-29 07:58:28 +00:00
(electric-layout-post-self-insert-function-1): Simplify.
Call electric--after-char-pos right from the start, and take advantage of the fact that it guarantees to return the right position or nil.
This commit is contained in:
parent
0621591687
commit
78725e49d2
@ -394,28 +394,23 @@ If multiple rules match, only first one is executed.")
|
||||
|
||||
;; for edebug's sake, a separate function
|
||||
(defun electric-layout-post-self-insert-function-1 ()
|
||||
(let* (pos
|
||||
(let* ((pos (electric--after-char-pos))
|
||||
probe
|
||||
(rules electric-layout-rules)
|
||||
(rule
|
||||
(catch 'done
|
||||
(while (setq probe (pop rules))
|
||||
(cond ((and (consp probe)
|
||||
(eq (car probe) last-command-event))
|
||||
(throw 'done (cdr probe)))
|
||||
((functionp probe)
|
||||
(let ((res
|
||||
(save-excursion
|
||||
(goto-char
|
||||
(or pos (setq pos (electric--after-char-pos))))
|
||||
;; Ensure probe is called at the
|
||||
;; promised place. FIXME: maybe warn if
|
||||
;; it isn't
|
||||
(when (eq (char-before) last-command-event)
|
||||
(funcall probe last-command-event)))))
|
||||
(when res (throw 'done res)))))))))
|
||||
(when pos
|
||||
(while (setq probe (pop rules))
|
||||
(cond ((and (consp probe)
|
||||
(eq (car probe) last-command-event))
|
||||
(throw 'done (cdr probe)))
|
||||
((functionp probe)
|
||||
(let ((res
|
||||
(save-excursion
|
||||
(goto-char pos)
|
||||
(funcall probe last-command-event))))
|
||||
(when res (throw 'done res))))))))))
|
||||
(when (and rule
|
||||
(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)
|
||||
|
Loading…
Reference in New Issue
Block a user