Subject: bug#54551: show-paren-mode inconsistency

From: goncholden <[email-masked]>
Date: Fri, 25 Mar 2022 07:10:36 +0000

------- Original Message -------
On Friday, March 25th, 2022 at 6:47 PM, Eli Zaretskii <[email-masked]> wrote:
> > Date: Thu, 24 Mar 2022 22:48:35 +0000
> > From: goncholden [email-masked]
> > Cc: [email-masked]
> >
> > Consider the following command
> >
> > (setq initial-frame-alist '((width . 72) (height . 26)) ).
> >
> > Would be instructive that when one puts the cursor in the space between (width . 72) and (height . 26), the entire (width . 72) (height . 26) would be highlighted.
>
> Why only "(width . 72) (height . 26)" and not the entire setq expression?
>
> Or maybe I don't understand what you mean by "instructive", i.e. what
>
> exactly would you like Emacs to show you and why?
>
> show-paren-mode has a specific goal: to show you the matching
>
> parenthesis in an unobtrusive way, and do that as you type as well as
>
> when you move through the code. That is the "instructive" role that
>
> it takes up upon itself. It sounds like you want something else,
>
> which would then call for a different feature with different visuals
>
> (parenthesized expressions tend to nest, so being "inside" one of them
>
> means you are "inside" all of the outer ones, and displaying them
>
> calls for a different technique than what show-paren does).
>
> > But (setq show-paren-when-point-inside-paren t) does not do that.
> >
> > Can be very non-intuitive when debugging.
>
> For debugging, I suggest that you use C-M-u.
>
> > Also, if you put the cursor on the parenthesis following (height . 26), only (height . 26) gets highlighted, rather than the entire (height . 26) (height . 26).
>
> What do you mean by "the entire (height . 26)"? Did you try to set
> show-paren-style to 'expression', and if not, does it do what you
> want?

I had been trying "(customize-set-variable 'show-paren-when-point-inside-paren t)".
It has been suggested to me to try "highlight-sexp", which seems to work better than
the functionality provided by show-paren-when-point-inside-paren.

With "highlight-sexp", placing cursor after "(width . 72)" does highlight
"(width . 72) (height . 26)" for the expression
"(setq initial-frame-alist '((width . 72) (height . 26)) )"

"highlight-sexp" does highlight the innermost expression, not so with
"show-paren-when-point-inside-paren".

You are making sense, but I wondered if you could see possibilities for
improvements to "show-paren-mode".

I am debugging a problem where emacs states that there exists an extra
closing parenthesis, but having extreme difficulty locating it.

Have split the file in two and using "require" on a child file.  Otherwise
I have to comment each line of code rather than whole sections.  Commenting
each line is likely to introduce errors if one is not very careful removing
the comment tags.