Subject: Re: bug#57516: Fontification of single brace in an optional argument

From: Arash Esbati <[email-masked]>
Date: Mon, 27 May 2024 17:26:07 +0200

Arash Esbati <[email-masked]> writes:

> I think we have a taker.  With the following patch:
>
> diff --git a/font-latex.el b/font-latex.el
> index ccddd8b1..d814642a 100644
> --- a/font-latex.el
> +++ b/font-latex.el
> @@ -1473,12 +1473,21 @@ ignored during the search."
>          ;; closing brace gets a comment end syntax.
>          ;; (2022 Mar) The latter half of the above paragraph no longer
>          ;; applies since we changed the way to fontify ^^A comment.
> -        (parse-sexp-lookup-properties nil))
> +        (parse-sexp-lookup-properties nil)
> +        (syntax (TeX-search-syntax-table openchar closechar)))
>      (or
>       (condition-case nil
>           (progn
> -           (goto-char (with-syntax-table
> -                          (TeX-search-syntax-table openchar closechar)
> +           ;; It is possible to have an opt. arg like \foo[key={]}].
> +           ;; Since braces are always balanced in opt. arguments, we
> +           ;; change the syntax to "generic comment delimiter".  For the
> +           ;; backslash, we switch to "/" in order to ignore things like
> +           ;; \{ and \}:
> +           (unless (and (= openchar ?\{) (= closechar ?\}))
> +             (modify-syntax-entry ?\{ "|" syntax)
> +             (modify-syntax-entry ?\} "|" syntax)
> +             (modify-syntax-entry ?\\ "/" syntax))
> +           (goto-char (with-syntax-table syntax
>                          (scan-sexps (point) 1)))
>             ;; No error code.  See if closechar is unquoted
>             (save-excursion
>
> the .tex file in the other message looks like this with "emacs -Q":
>
> The change also passes the tests.  Any comments welcome.

No further comments, so I installed the change, closing.

Best, Arash