auctex
[Top][All Lists]
Advanced

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

Re: [AUCTeX] fontification question


From: Arash Esbati
Subject: Re: [AUCTeX] fontification question
Date: Fri, 28 Apr 2017 13:32:47 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2

Arash Esbati <address@hidden> writes:

> Tassilo Horn <address@hidden> writes:
>
>> Ah, right. Well, then I guess your patch makes sense. Feel free to
>> commit it.
>
> Done.  Best, Arash

Well, I have found one use-case where the patch still doesn't fit: expl3
syntax.  Please consider this snippet:

    \cs_new:Npn \foo_bar:Nn #1#2
    {
      \cs_if_exist:NTF #1
      { \__foo_bar:n {#2} }
      { \__foo_bar:nn {#2} { literal } }
    }

Current code doesn't work on \__foo_bar:n.  My plan is to install this
patch:

--8<---------------cut here---------------start------------->8---
diff --git a/font-latex.el b/font-latex.el
index ea3e829a..2f662965 100644
--- a/font-latex.el
+++ b/font-latex.el
@@ -1782,6 +1782,11 @@ marks boundaries for searching for group ends."
              (throw 'extend group-start)))))
       nil)))

+(defvar font-latex-match-simple-exclude-list
+  '("-" "," "/" "&" "#" "_")
+  "List of characters directly after \"\\\" excluded from fontification.
+Each character is a string.")
+
 (defun font-latex-match-simple-command (limit)
   "Search for command like \\foo before LIMIT."
   ;; \s_ matches chars with symbol syntax, \sw chars with word syntax, \s. 
chars
@@ -1793,7 +1798,10 @@ marks boundaries for searching for group ends."
                    "\\\\\\(\\s_\\|\\sw\\|\\s.\\)\\(?:\\s_\\|\\sw\\)*" limit 
t)))
         (pos (funcall search)))
     (while (and pos
-               (member (match-string 1) '("-" "," "/" "&" "#" "_")))
+               (member (match-string 1)
+                       (if (eq major-mode 'doctex-mode)
+                           (remove "_" font-latex-match-simple-exclude-list)
+                         font-latex-match-simple-exclude-list)))
       (setq pos (funcall search)))
     pos))
--8<---------------cut here---------------end--------------->8---

Then it works at least in doctex-mode.  I'm reluctant to include
something like this in expl3.el:

    (set (make-local-variable 'font-latex-match-simple-exclude-list) 
         (remove "_" font-latex-match-simple-exclude-list))

It breaks too much for little benefit.  I will also contact the author
of expl3.el; he tends to have good ideas :-)

Best, Arash



reply via email to

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