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 1 year and 44 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.