bug-auctex
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#65912: 2023-08-31; Fix xref errors when matching in unvisited files


From: David Fussner
Subject: bug#65912: 2023-08-31; Fix xref errors when matching in unvisited files
Date: Fri, 15 Sep 2023 07:37:01 +0100

Thanks Ikumi. I should have run more tests myself, so apologies for making it harder for you. I'll let you know if I figure anything out.

David. 

On Fri, 15 Sept 2023, 06:45 Ikumi Keita, <ikumi@ikumi.que.jp> wrote:
Hi David, thanks for raising these issues.

>>>>> David Fussner via bug-auctex via Bug reporting list for AUCTeX <bug-auctex@gnu.org> writes:

> I enclose a patch (0001), which puts the required call, with a comment, at
> the end of font-latex-set-syntactic-keywords, which seems to work for
> all the AUCTeX modes, but there may be a better place for it.

1. This breaks doctex fontification. Doctex mode calls
   `font-latex-setup' twice; once in `VirTeX-common-initialization',
   once in `docTeX-mode'. Since the first one calls
   `font-lock-set-defaults' which sets the variable
   `font-lock-set-defaults' to t (and `major-mode' isn't `doctex-mode'
   yet), the second call to `font-lock-set-defaults' does nothing and
   doctex specific fontification isn't taken into account.
   Adding
(setq font-lock-set-defaults nil)
   before (funcall TeX-install-font-lock) in `docTeX-mode' addresses
   this problem.

2. I think better place for `(font-lock-set-defaults)' is
   `font-latex-setup' rather than `font-latex-set-syntactic-keywords';
   the latter is sometimes called afterwards by AUCTeX style files.

I modified your proposal to make the attached patch. This fixes your
first bug keeping the doctex fontification.

> If you apply patch 0001, and make sure font-latex.el is reloaded, you
> can then see the next bug: in specific cases, xref-find-references
> reports a hit only in visited files, despite there being identical text
> in the unvisited one.

I confirmed the reported result.

> The attached patch (0002) parses and applies styles in the temp
> buffer, and only in such non-file-visiting buffers. It does so both in
> LaTeX-common-initialization and in plain-TeX-common-initialization,
> which I think covers all the modes.

It seems reasonable basically. However, this makes two regression tests
fail:
2 unexpected results:
   FAILED  LaTeX-filling
   FAILED  LaTeX-style-hook-with-class-option

I thought the following advice in latex-test.el is interfering badly:
----------------------------------------------------------------------
;; We need to ensure that font-lock has put the syntax properties
;; already which won't happen in batch mode.  So trigger font-lock
;; immediately.
(define-advice LaTeX-common-initialization (:after ())
  (font-lock-ensure))
----------------------------------------------------------------------
However, the failures remain even after I deleted this advice. I haven't
figured out what's going on yet. (Maybe the failures only appear in
batch mode and aren't real issues.) Does anyone out there have insights?

Regards,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine


reply via email to

[Prev in Thread] Current Thread [Next in Thread]