[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 22d2eb6 20/27: Use constant regexp to fontify ma
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex 22d2eb6 20/27: Use constant regexp to fontify math environments |
Date: |
Sat, 27 Jun 2020 03:17:45 -0400 (EDT) |
branch: externals/auctex
commit 22d2eb6a33718053d12b1887b123fca68ae02f36
Author: Ikumi Keita <ikumi@ikumi.que.jp>
Commit: Ikumi Keita <ikumi@ikumi.que.jp>
Use constant regexp to fontify math environments
* font-latex.el (font-latex--match-math-envII-regexp): New internal
variable to store regexp to search math environments such as
"equation".
(font-latex-match-math-envII): Use it.
(font-latex--update-math-env): New function to update
`font-latex-math-environments' and build
`font-latex--match-math-envII-regexp' from it.
(font-latex-math-environments-from-texmathp): Remove.
(font-latex-math-environments): Change default value to nil and
initialize at top level by new function.
* style/breqn.el:
* style/empheq.el:
* style/mathtools.el:
Arrange in accord with the above change.
* style/amsmath.el:
Arrange in accord with the above change.
Add fontification rule for \boxed{}.
* doc/auctex.texi:
Add instruction to convert customization.
---
doc/auctex.texi | 9 ++++++-
font-latex.el | 73 +++++++++++++++++++++++++++++++-----------------------
style/amsmath.el | 20 +++++++++------
style/breqn.el | 11 +++-----
style/empheq.el | 10 +++-----
style/mathtools.el | 1 +
6 files changed, 72 insertions(+), 52 deletions(-)
diff --git a/doc/auctex.texi b/doc/auctex.texi
index 4886840..ab69dd0 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -12,7 +12,7 @@ This manual is for @AUCTeX{}
(version @value{VERSION} from @value{UPDATED}),
a sophisticated TeX environment for Emacs.
-Copyright @copyright{} 1992-1995, 2001, 2002, 2004-2019
+Copyright @copyright{} 1992-1995, 2001, 2002, 2004-2020
Free Software Foundation, Inc.
@quotation
@@ -2274,6 +2274,13 @@ recommended to customize
@code{font-latex-math-environments}, which
is initialized according to @code{texmathp-tex-commands} and
@code{texmathp-tex-commands-default} by default.
+To convert your customization in @code{font-latex-math-environments}
+into @code{texmathp-tex-commands}, please register your own math
+environments, together with starred variants if any, as entries of
+@code{env-on} type in @code{texmathp-tex-commands}, then clear out
+@code{font-latex-math-environments}. You have to restart Emacs for this
+new customization to take effect for fontification.
+
In order to make math constructs more readable, @fontlatex{} displays
subscript and superscript parts in a smaller font and raised or lowered
respectively. This fontification feature can be controlled with the
diff --git a/font-latex.el b/font-latex.el
index ad2153f..984771d 100644
--- a/font-latex.el
+++ b/font-latex.el
@@ -1768,31 +1768,52 @@ Used for patterns like:
(throw 'match t))))))
(require 'texmathp)
-(defun font-latex-math-environments-from-texmathp (list)
- "Return list of math environments extracted from LIST.
-Utility to share data with texmathp.el.
-LIST should have the same structure as `texmathp-tex-commands'.
-Return list of environment names marked as `env-on' type in LIST,
-except starred forms."
- (let (result)
- (dolist (entry list)
- (if (and (eq 'env-on (cadr entry))
- (not (string= "*" (substring (car entry) -1))))
- (push (car entry) result)))
- result))
-
-(defcustom font-latex-math-environments
- (font-latex-math-environments-from-texmathp texmathp-tex-commands1)
+(defcustom font-latex-math-environments nil
"List of math environment names for font locking.
It is no longer recommended to customize this option. You should
-customize `texmathp-tex-commands' instead because it is important for
-stable operation of font lock that this option is coherent with that
-option in addition to `texmathp-tex-commands-default'.
-Actually, the default value of this option is now taken from those
-variables."
+customize `texmathp-tex-commands' instead because it is important
+for stable operation of font lock that this option is coherent
+with that option in addition to `texmathp-tex-commands-default'.
+See info node `(auctex)Fontification of math' to convert your
+customization into `texmathp-tex-commands'."
+ ;; This option is now used only through
+ ;; `font-latex--match-math-envII-regexp'.
:type '(repeat string)
:group 'font-latex)
+(defvar font-latex--match-math-envII-regexp nil
+ "Regular expression to match math environments.
+Set by `font-latex--update-math-env' and used in
+`font-latex-match-math-envII'.")
+
+(defun font-latex--update-math-env (list)
+ "Update variables for font locking of math environments by LIST.
+Helper function for style files such as amsmath.el.
+LIST should have the same structure as `texmathp-tex-commands'.
+Extract environments marked as `env-on' in LIST and add them to
+`font-latex-math-environments', except starred variants. Then
+update `font-latex--match-math-envII-regexp'."
+ (dolist (entry list)
+ (if (and (eq 'env-on (cadr entry))
+ (not (string= "*" (substring (car entry) -1))))
+ ;; Just push since we no longer need to care the order of entries.
+ (cl-pushnew (car entry) font-latex-math-environments :test #'equal)))
+ (setq font-latex--match-math-envII-regexp
+ (concat "\\\\begin[ \t]*{"
+ (regexp-opt font-latex-math-environments t)
+ ;; Subexpression 2 is used to build the \end{<env>}
+ ;; construct later.
+ "\\(\\*?}\\)"
+ ;; Match an optional and possible mandatory
+ ;; argument(s) as long as they are on the same line
+ ;; with no spaces in-between. The content of optinal
+ ;; argument can span multiple lines.
+ "\\(?:\\[[^][]*\\(?:\\[[^][]*\\][^][]*\\)*\\]\\)?"
+ "\\(?:{[^}]*}\\)*")))
+
+;; Initialize.
+(font-latex--update-math-env texmathp-tex-commands1)
+
(defun font-latex-match-math-envII (limit)
"Match math patterns up to LIMIT.
Used for patterns like:
@@ -1804,17 +1825,7 @@ Used for patterns like:
\\end{empheq}
The \\begin{equation} incl. arguments in the same line and
\\end{equation} are not fontified here."
- (when (re-search-forward (concat "\\\\begin[ \t]*{"
- (regexp-opt font-latex-math-environments t)
- ;; Subexpression 2 is used to build
- ;; the \end{<env>} construct below
- "\\(\\*?}\\)"
- ;; Match an optional and possible
- ;; mandatory argument(s). They can
- ;; span multiple lines.
-
"\\(?:\\[[^][]*\\(?:\\[[^][]*\\][^][]*\\)*\\]\\)?"
- "\\(?:{[^}]*}\\)*")
- limit t)
+ (when (re-search-forward font-latex--match-math-envII-regexp limit t)
(let ((beg (match-end 0)) end
(beg-of-begin (match-beginning 0)))
(if (re-search-forward (concat "\\\\end[ \t]*{"
diff --git a/style/amsmath.el b/style/amsmath.el
index ebf651e..a31d1c1 100644
--- a/style/amsmath.el
+++ b/style/amsmath.el
@@ -30,8 +30,11 @@
;;; Code:
-(defvar font-latex-math-environments)
-(declare-function font-latex-math-environments-from-texmathp
+;; Fontification
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+(declare-function font-latex--update-math-env
"font-latex" (list))
(require 'texmathp)
(let ((list '(("equation*" env-on)
@@ -44,13 +47,11 @@
("xxalignat" env-on) ("\\boxed" arg-on)
("\\text" arg-off) ("\\intertext" arg-off))))
(dolist (entry list)
- (add-to-list 'texmathp-tex-commands-default entry t))
+ (add-to-list 'texmathp-tex-commands-default entry))
(texmathp-compile)
(when (and (featurep 'font-latex)
(eq TeX-install-font-lock 'font-latex-setup))
- (dolist (entry (font-latex-math-environments-from-texmathp list))
- ;; Append our addition so that we don't interfere with user
customizations
- (add-to-list 'font-latex-math-environments entry t))))
+ (font-latex--update-math-env list)))
(TeX-add-style-hook
"amsmath"
@@ -195,7 +196,12 @@
;; is non-nil
(and LaTeX-reftex-ref-style-auto-activate
(fboundp 'reftex-ref-style-activate)
- (reftex-ref-style-activate "AMSmath")))
+ (reftex-ref-style-activate "AMSmath"))
+
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("boxed" "{"))
+ 'math-command)))
LaTeX-dialect)
(defun LaTeX-amsmath-env-alignat (env)
diff --git a/style/breqn.el b/style/breqn.el
index 91d69d0..36eb78d 100644
--- a/style/breqn.el
+++ b/style/breqn.el
@@ -95,9 +95,8 @@ Keys offered for key=val query depend on ENV. \"label\" and
(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-(defvar font-latex-math-environments)
-(declare-function font-latex-math-environments-from-texmathp
- "font-latex" (list))
+;; Fontification
+(declare-function font-latex--update-math-env "font-latex" (list))
(require 'texmathp)
(let ((list '(("dmath" env-on) ("dmath*" env-on)
("dseries" env-on) ("dseries*" env-on)
@@ -105,13 +104,11 @@ Keys offered for key=val query depend on ENV. \"label\"
and
("darray" env-on) ("darray*" env-on)
("dsuspend" env-off))))
(dolist (entry list)
- (add-to-list 'texmathp-tex-commands-default entry t))
+ (add-to-list texmathp-tex-commands-default entry))
(texmathp-compile)
(when (and (featurep 'font-latex)
(eq TeX-install-font-lock 'font-latex-setup))
- ;; Append our addition so that we don't interfere with user customizations
- (dolist (entry (font-latex-math-environments-from-texmathp list))
- (add-to-list 'font-latex-math-environments entry t))))
+ (font-latex--update-math-env list)))
(TeX-add-style-hook
"breqn"
diff --git a/style/empheq.el b/style/empheq.el
index aacd6e7..e8b5b51 100644
--- a/style/empheq.el
+++ b/style/empheq.el
@@ -41,14 +41,13 @@
(declare-function font-latex-add-keywords
"font-latex"
(keywords class))
-(declare-function font-latex-math-environments-from-texmathp
+(declare-function font-latex--update-math-env
"font-latex" (list))
(declare-function LaTeX-item-equation-alignat
"amsmath" (&optional suppress))
(defvar LaTeX-mathtools-package-options)
-(defvar font-latex-math-environments)
(defvar LaTeX-empheq-key-val-options
`(("box")
@@ -277,6 +276,7 @@ number of ampersands if possible."
(save-excursion
(insert (make-string (+ ncols ncols -1) ?&))))))
+;; Fontification
(require 'texmathp)
(let ((list '(("empheq" env-on)
;; XXX: Should we add the remaining entries only when
@@ -288,13 +288,11 @@ number of ampersands if possible."
("AmSflalign" env-on) ("AmSflalign*" env-on)
("AmSalignat" env-on) ("AmSalignat*" env-on))))
(dolist (entry list)
- (add-to-list 'texmathp-tex-commands-default entry t))
+ (cl-pushnew entry texmathp-tex-commands-default :test #'equal))
(texmathp-compile)
(when (and (featurep 'font-latex)
(eq TeX-install-font-lock 'font-latex-setup))
- ;; Append our addition so that we don't interfere with user customizations
- (dolist (entry (font-latex-math-environments-from-texmathp list))
- (add-to-list 'font-latex-math-environments entry t))))
+ (font-latex--update-math-env list)))
(TeX-add-style-hook
"empheq"
diff --git a/style/mathtools.el b/style/mathtools.el
index 03a0f9b..f0fb744 100644
--- a/style/mathtools.el
+++ b/style/mathtools.el
@@ -235,6 +235,7 @@ Put line break macro on the last line. Next, insert an
ampersand."
(save-excursion
(insert ?&)))
+;; Fontification
(require 'texmathp)
(add-to-list 'texmathp-tex-commands-default
'("\\shortintertext" arg-off) t)
- [elpa] externals/auctex updated (1006b89 -> 1e8a495), Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 1685a67 01/27: * doc/changes.texi (News in 12.3): Add news about fix of bug#33139., Tassilo Horn, 2020/06/27
- [elpa] externals/auctex e5090c2 02/27: Complement document, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex b97a049 03/27: * doc/changes.texi: Delete words inappropriate for raw file., Tassilo Horn, 2020/06/27
- [elpa] externals/auctex b45bf4d 07/27: Ignore 3 consective $'s properly, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 5017391 10/27: Update region extension in font-latex.el, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex e62ce38 12/27: Merge branch 'obsolete-font-latex-update-font-lock', Tassilo Horn, 2020/06/27
- [elpa] externals/auctex a6b12a2 16/27: Update documents, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 3d4f378 17/27: Fix typos, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 22d2eb6 20/27: Use constant regexp to fontify math environments,
Tassilo Horn <=
- [elpa] externals/auctex 1855efd 21/27: ; * style/mathtools.el: A bit change to align with previous commit., Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 32ad0e2 04/27: Obsolete font-latex-update-font-lock (bug#37945), Tassilo Horn, 2020/06/27
- [elpa] externals/auctex f3df76a 09/27: Add support for algopseudocde style, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 54bb7c1 05/27: Omit hard font-lock reset also in font-latex-add-to-syntax-alist, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 9c105a2 06/27: Trigger refontification in font-latex-add-to-syntax-alist., Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 7a1ebbf 08/27: Add support for algorithm style, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 9170170 11/27: Delete overhead in extending font lock range of math expression, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 0ec28c6 13/27: Reconsider region extension, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex ababc71 14/27: Recover compatibility for older emacsen, Tassilo Horn, 2020/06/27
- [elpa] externals/auctex 393fb21 15/27: * texmathp.el: Add comment about additional bug., Tassilo Horn, 2020/06/27