GNU bug report logs -
#57516
Fontification of single brace in an optional argument
Previous Next
Reported by: Arash Esbati <arash <at> gnu.org>
Date: Thu, 1 Sep 2022 09:33:02 UTC
Severity: normal
Done: Arash Esbati <arash <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Arash Esbati <arash <at> gnu.org> writes:
> Note how the first {[ } extends the fontification until the next {] }.
> I think the issue is in the function `font-latex-find-matching-close',
> but I don't have an idea how to fix this. Any takers?
I think we have a taker. With the following patch:
--8<---------------cut here---------------start------------->8---
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
--8<---------------cut here---------------end--------------->8---
the .tex file in the other message looks like this with "emacs -Q":
[font-latex.png (image/png, inline)]
[Message part 3 (text/plain, inline)]
The change also passes the tests. Any comments welcome.
Best, Arash
This bug report was last modified 363 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.