Subject: Re: bug#61098: 29.0.60; Confusing behavior of show-paren-mode

From: Eli Zaretskii <[email-masked]>
Date: Tue, 31 Jan 2023 14:03:28 +0200

> From: Rah Guzar <[email-masked]>
> Cc: Stefan Monnier <[email-masked]>, [email-masked]
> Date: Mon, 30 Jan 2023 20:21:33 +0100
> 
> Hi,
>   Thanks for the patch, it works as you described.

Thanks for testing.

I'm still waiting for Stefan to help me understand why after that
patch "M-x show-paren-local-mode" _disables_ the mode rather than
enabling it.  Stefan, any wisdom?

> However I have questions about the show-paren-predicate variable.
> 
> When I see its default value  (not (derived-mode . special-mode))
> it makes me think there is some dsl involved. The customize interface
> mentions Lisp Expression as a possibility but the documentation doesn't
> explain what form this expression is supposed to take.

It should be an expression that yields a boolean value (that's why the
variable is named "predicate").  I will improve the doc string when I
install the final version of the changes.

> This makes me think that the default is just a pseudo sentence
> intended to convey what it does and there are only three
> possibilities.

No, it's a real expression in Lisp, just quoted.

> If the latter is correct, I think a simpler way would be to disable
> the mode in the body of special-mode if the value of `show-paren-predicate`
> demands it. I think this will get rid of the problem that the mode is
> disabled the first time show-paren-local-mode is called.
> 
> I am using the equivalent of this which adds a hook to special-mode-hook
> to achieve the outcome and I am pretty happy with it.

I don't think I understand what you have in mind, but let's wait for
Stefan to chime in.