Subject: bug#79047: Add some multi-character pairs to some major modes.

From: Alan Mackenzie <[email-masked]>
Date: Thu, 24 Jul 2025 18:47:24 +0000

Hello, Stefan.

Thanks for your reply.

Sadly you snipped the key section of my last post.  Here it is again:

> > But electric pair mode's implementation violates an (unwritten) Emacs
> > convention about hooks, i.e. that a hook function doesn't mess with
> > the functionality that invoked it.  For example, a function in
> > window-scroll-functions may not change the scrolling state of a
> > window, and an after-change-functions function never changes the text
> > of a buffer.

> > By contrast, electric-pair-post-self-insert-function does mess with
> > the invoking functionality, namely self-insert-command; it inserts
> > further characters.  From the point of view of a Lisp program, this
> > makes self-insert-function an undefined function - what it does
> > varies from time to time and from buffer to buffer.

As you're aware, when faced with a problem, I tend to analyse the cause
at the appropriately abstract level, and then fix that cause, rather than
just paper over the problem with some unsatisfactory workaround.

The fundamental cause of this problem with electric pair mode is, I
believe, in my two quoted paragraphs above.  I ask you to answer the
points made in these two paragraphs.

Thanks!

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).