Subject: Re: bug#31155: 26.1; electric-pair-mode sometimes inserts extra ) in process buffers

From: Alex Branham <[email-masked]>
Date: Thu, 26 Apr 2018 11:08:38 -0500

On Mon 23 Apr 2018 at 18:23, Noam Postavsky <[email-masked]> wrote:

> Alex Branham <[email-masked]> writes:
>
>> Sorry for taking so long to respond, it is difficult to capture this
>> happening.
>
> No worries, it takes as long as it takes.
>
>> 1 -> (electric-pair-syntax-info 91)
>> 1 <- electric-pair-syntax-info: (40 93 nil 79153)
>> ======================================================================
>> 1 -> (electric-pair--balance-info 1 79153)
>> 1 <- electric-pair--balance-info: ((nil . 93) nil . 93)
>
>> This happened when I typed (in an inferior R buffer):
>>
>> Rhats[[
>
> Ah, this is a slightly different scenario than I thought, we're missing
> close brackets, rather than inserting too many.  The
> electric-pair--balance-info seems to be saying that you're inside a
> string or comment.  Was that the case?  Or was there a stray quote in
> the buffer?

Sorry, I wasn't clear. This was slightly different behavior than what I
previously reported, though I assume it's related. I was not inside a
string or comment, and there could have been a stray quote in the
buffer. I'm not sure though as I didn't save it (will do in the
future!).

> Anyway, I think tracing a few more functions will be helpful:
>
>     (dolist (fun '(electric-pair--balance-info
>                    electric-pair-skip-if-helps-balance
>                    electric-pair-inhibit-if-helps-balance
>                    electric-pair-syntax-info
>                    electric-pair-default-inhibit
>                    electric-pair-default-skip-self
>                    electric-pair-post-self-insert-function))
>       (trace-function-background fun))

I'll do that next time I stumble into this.