[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
From: |
Arash Esbati |
Subject: |
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers |
Date: |
Sat, 04 May 2024 16:32:25 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
>> index 97c950267c6..d990a2dbfa9 100644
>> --- a/lisp/textmodes/tex-mode.el
>> +++ b/lisp/textmodes/tex-mode.el
>> @@ -695,7 +696,25 @@ tex-verbatim-environments
>> ("\\\\\\(?:end\\|begin\\) *\\({[^\n{}]*}\\)"
>> (1 (ignore
>> (tex-env-mark (match-beginning 0)
>> - (match-beginning 1) (match-end 1))))))))
>> + (match-beginning 1) (match-end 1)))))
>> + ;; The next two rules change the syntax of `:' and `_' in expl3
>> + ;; constructs, so that `tex-font-lock-suscript' can fontify them
>> + ;; more accurately.
>> + ((concat "\\(\\(?:[\\\\[:space:]{]_\\|"
>> +
>> "[\\\\{[:space:]][^][_[:space:][:cntrl:][:digit:]\\\\{}()/=]+\\)"
>> +
>> "\\(?:_+\\(?:[^][[:space:][:cntrl:][:digit:]:\\\\{}()/#_=]+\\|"
>> + "#+[1-9]\\)\\)+\\)\\([:_]?\\)")
>
> Can you add in the comment some URL pointing to some relevant expl3
> documentation which "explains" why the above regexp makes sense?
> Also I don't clearly see how the above regexp distinguishes expl3 code
> from "normal" LaTeX code, so the comment should say something about
> it.
FWIW, I'm not sure if there is an URL for that, but in interface3.pdf,
chap.1, you'll find:
1.1 Naming functions and variables
LATEX3 does not use @ as a "letter"" for defining internal macros.
Instead, the symbols _ and : are used in internal macro names to provide
structure. The name of each function is divided into logical units using
_, while : separates the name of the function from the argument
specifier ("arg-spec"). This describes the arguments expected by the
function. In most cases, each argument is represented by a single
letter. The complete list of arg-spec letters for a function is referred
to as the signature of the function.
So expect things like this:
\tl_set:Nn \l_mya_tl { A }
\tl_set:Nn \l_myb_tl { B }
\tl_set:Nf \l_mya_tl { \l_mya_tl \l_myb_tl }
>> +;; Setup AUCTeX modes (for testing purposes only).
>> +
>> +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
>> +
>> +(defun tex-set-auctex-xref-backend ()
>> + (add-hook 'xref-backend-functions #'tex--xref-backend nil t))
>
> I assume this will be sent to AUCTeX and is not meant to be in
> `tex-mode.el`, right?
That would have been a question from my side, but I saw that "testing
purposes only" and skipped it for this round.
Best, Arash
- bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, (continued)
- bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Stefan Monnier, 2024/05/16
- bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Dmitry Gutov, 2024/05/19
- bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Stefan Monnier, 2024/05/19
- bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Eli Zaretskii, 2024/05/25
- bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Dmitry Gutov, 2024/05/25
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Dmitry Gutov, 2024/05/06
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Arash Esbati, 2024/05/02
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, Stefan Monnier, 2024/05/03
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, David Fussner, 2024/05/07
bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers, David Fussner, 2024/05/15