Subject: Re: bug#53661: 29.0.50; electric-pair-mode not respecting electric-pair-inhibit-predicate.

From: Eli Zaretskii <[email-masked]>
Date: Mon, 31 Jan 2022 21:28:54 +0200

> Date: Mon, 31 Jan 2022 20:20:01 +0100
> From: Ergus <[email-masked]>
> Cc: [email-masked]
> 
> >> I wanted to add "<>" so I added to my init:
> >>
> >> (add-to-list 'electric-pair-pairs '(?< . ?>))
> >
> >And it didn't work because of the hard-coded syntaxes?
> >
> Adding to the list worked correctly, What didn't work was to use the
> electric-pair-inhibit-predicate that was never called, so a < always
> inserted a >.
> 
> >What is the syntax of ?< in the mode where you wanted to add that?
> 
> It is just c++-mode.

And that is your problem, I believe: <> in C++ aren't treated as
parentheses or string delimiters, so their syntax doesn't fit what
electric-pair-mode assumes.

IOW, you need a different, C++ specific feature.  (I'd be surprised if
none already existed, btw.)