auctex-diffs
[Top][All Lists]
Advanced

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

[AUCTeX-diffs] [elpa] externals/auctex 35b71dfe3f 08/14: Add new style/e


From: Tassilo Horn
Subject: [AUCTeX-diffs] [elpa] externals/auctex 35b71dfe3f 08/14: Add new style/etoolbox.el
Date: Sat, 16 Apr 2022 04:28:44 -0400 (EDT)

branch: externals/auctex
commit 35b71dfe3f3d7f32165687b67eb7876fbdbe6409
Author: Arash Esbati <arash@gnu.org>
Commit: Arash Esbati <arash@gnu.org>

    Add new style/etoolbox.el
    
    * Makefile.in (STYLESRC): Add new style.
    
    * style/etoolbox.el: New file.
    
    * style/biblatex.el ("biblatex"):
    * style/polyglossia.el ("polyglossia"): Don't run the style hook
    for 'etoolbox' since it adds a lot a macros to the completion list
    which are usually not needed for regular LaTeX editing.
---
 Makefile.in          |   2 +-
 style/biblatex.el    |  29 ++--
 style/etoolbox.el    | 376 +++++++++++++++++++++++++++++++++++++++++++++++++++
 style/polyglossia.el |   2 +-
 4 files changed, 392 insertions(+), 17 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 9ee6db0c59..c1b29c1733 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -179,7 +179,7 @@ STYLESRC = style/prosper.el \
           style/cuted.el     style/floatpag.el  style/flushend.el \
           style/midfloat.el  style/stabular.el  style/stfloats.el \
           style/rotating.el  style/sidecap.el   style/l3doc.el \
-          style/ifthen.el
+          style/ifthen.el    style/etoolbox.el
 
 STYLEELC = $(STYLESRC:.el=.elc)
 
diff --git a/style/biblatex.el b/style/biblatex.el
index 3e86b71825..43115becc6 100644
--- a/style/biblatex.el
+++ b/style/biblatex.el
@@ -266,7 +266,6 @@ for citation keys."
                      "biblatex" "backend=bibtexu")))))
 
    (TeX-run-style-hooks
-    "etoolbox"
     "keyval"
     "kvoptions"
     "logreq"
@@ -330,7 +329,7 @@ for citation keys."
     ;; Dynamic Entry Sets
     '("defbibentryset" "Set"
       (TeX-arg-eval mapconcat #'identity (TeX-completing-read-multiple
-                                         "Keys: " (LaTeX-bibitem-list)) ","))
+                                          "Keys: " (LaTeX-bibitem-list)) ","))
     ;;; Citation Commands
     '("cite" (TeX-arg-conditional TeX-arg-cite-note-p
                                   (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
@@ -522,22 +521,22 @@ for citation keys."
               (car cmd)
               '(TeX-arg-conditional TeX-arg-cite-note-p
                                     ([LaTeX-arg-biblatex-natbib-notes])
-                                  nil)
+                                    nil)
               #'TeX-arg-cite))))
          cmds))
 
-     ;; Fontification for compat macros does not go into `font-latex.el':
-     (when (and (featurep 'font-latex)
-                (eq TeX-install-font-lock 'font-latex-setup))
-       (font-latex-add-keywords '(("citet"        "*[[{")
-                                  ("Citet"        "*[[{")
-                                  ("citep"        "*[[{")
-                                  ("Citep"        "*[[{")
-                                  ("citealt"      "*[[{")
-                                  ("Citealt"      "*[[{")
-                                  ("citealp"      "*[[{")
-                                  ("Citealp"      "*[[{"))
-                                'biblatex))))
+       ;; Fontification for compat macros does not go into `font-latex.el':
+       (when (and (featurep 'font-latex)
+                  (eq TeX-install-font-lock 'font-latex-setup))
+         (font-latex-add-keywords '(("citet"        "*[[{")
+                                    ("Citet"        "*[[{")
+                                    ("citep"        "*[[{")
+                                    ("Citep"        "*[[{")
+                                    ("citealt"      "*[[{")
+                                    ("Citealt"      "*[[{")
+                                    ("citealp"      "*[[{")
+                                    ("Citealp"      "*[[{"))
+                                  'biblatex))))
 
    (LaTeX-add-environments
     ;;; Bibliography commands
diff --git a/style/etoolbox.el b/style/etoolbox.el
new file mode 100644
index 0000000000..42af6a4832
--- /dev/null
+++ b/style/etoolbox.el
@@ -0,0 +1,376 @@
+;;; etoolbox.el --- AUCTeX style for `etoolbox.sty' v2.5k  -*- 
lexical-binding: t; -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <arash@gnu.org>
+;; Created: 2022-03-19
+;; Keywords: tex
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Commentary:
+
+;; This file adds support for `etoolbox.sty' v2.5k from 2020/10/05.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+                  "font-latex"
+                  (keywords class))
+
+(defun LaTeX-arg-etoolbox-csname (optional &optional prompt)
+  "Query and insert the name of a TeX control sequence.
+If OPTIONAL is non-nil, then insert it in square brackets.
+PROMPT replaces the standard one."
+  (TeX-argument-insert
+   (completing-read
+    (TeX-argument-prompt optional prompt "Control sequence")
+    (TeX-symbol-list))
+   optional))
+
+(defun LaTeX-arg-etoolbox-macro-free (optional &optional prompt)
+  "Query and insert a macro not surrounded by braces.
+If OPTIONAL is non-nil, insert the macro only when given by the
+user."
+  (let ((TeX-arg-opening-brace "")
+        (TeX-arg-closing-brace "")
+        (macro (completing-read
+                (TeX-argument-prompt optional prompt
+                                     (concat "Macro: " TeX-esc)
+                                     t)
+                (TeX-symbol-list))))
+    (TeX-argument-insert macro optional TeX-esc)))
+
+(TeX-add-style-hook
+ "etoolbox"
+ (lambda ()
+
+   (TeX-add-symbols
+
+    ;; 2.1 Definitions
+    '("newrobustcmd"  TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] 
t)
+    '("newrobustcmd*" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] 
t)
+    '("renewrobustcmd"  TeX-arg-macro [ TeX-arg-define-macro-arguments ] t)
+    '("renewrobustcmd*" TeX-arg-macro [ TeX-arg-define-macro-arguments ] t)
+    '("providerobustcmd"  TeX-arg-define-macro [ 
TeX-arg-define-macro-arguments ] t)
+    '("providerobustcmd*" TeX-arg-define-macro [ 
TeX-arg-define-macro-arguments ] t)
+
+    ;; 2.2 Patching
+    '("robustify" TeX-arg-macro)
+
+    ;; 2.3 Protection
+    '("protecting" t)
+
+    ;; 2.4 Length and Counter Assignments
+    '("defcounter" TeX-arg-counter t)
+    '("deflength"  TeX-arg-length t)
+
+    ;; 2.5 Additional Document Hooks
+    '("AfterPreamble" t)
+    '("AtEndPreamble" t)
+    '("AfterEndPreamble" t)
+    '("AfterEndDocument" t)
+
+    ;; 2.6 Environment Hooks
+    '("AtBeginEnvironment" TeX-arg-environment t)
+    '("AtEndEnvironment" TeX-arg-environment t)
+    '("BeforeBeginEnvironment" TeX-arg-environment t)
+    '("AfterEndEnvironment" TeX-arg-environment t)
+
+    ;; 3 Author Commands
+    ;; 3.1.1 Macro Definitions
+    '("csdef"  LaTeX-arg-etoolbox-csname [TeX-arg-free "Arguments"] t)
+    '("csgdef" LaTeX-arg-etoolbox-csname [TeX-arg-free "Arguments"] t)
+    '("csedef" LaTeX-arg-etoolbox-csname [TeX-arg-free "Arguments"] t)
+    '("csxdef" LaTeX-arg-etoolbox-csname [TeX-arg-free "Arguments"] t)
+    '("protected@csedef"
+      LaTeX-arg-etoolbox-csname [TeX-arg-free "Arguments"] t)
+    '("protected@csxdef"
+      LaTeX-arg-etoolbox-csname [TeX-arg-free "Arguments"] t)
+    '("cslet"   LaTeX-arg-etoolbox-csname TeX-arg-macro)
+    '("letcs"   TeX-arg-macro LaTeX-arg-etoolbox-csname)
+    '("csletcs" LaTeX-arg-etoolbox-csname LaTeX-arg-etoolbox-csname)
+    '("csuse"   LaTeX-arg-etoolbox-csname)
+    '("undef"   LaTeX-arg-etoolbox-macro-free)
+    '("gundef"  LaTeX-arg-etoolbox-macro-free)
+    '("csundef"   LaTeX-arg-etoolbox-csname)
+    '("csgundef"  LaTeX-arg-etoolbox-csname)
+    '("csmeaning" LaTeX-arg-etoolbox-csname)
+    '("csshow"    LaTeX-arg-etoolbox-csname)
+
+    ;; 3.1.2 Arithmetic Definitions
+    '("numdef" LaTeX-arg-etoolbox-macro-free "Integer expression")
+    '("numgdef" LaTeX-arg-etoolbox-macro-free "Integer expression")
+    '("csnumdef" LaTeX-arg-etoolbox-csname "Integer expression")
+    '("csnumgdef" LaTeX-arg-etoolbox-csname "Integer expression")
+
+    '("dimdef" LaTeX-arg-etoolbox-macro-free "Dimension expression")
+    '("dimgdef" LaTeX-arg-etoolbox-macro-free "Dimension expression")
+    '("csdimdef" LaTeX-arg-etoolbox-csname "Dimension expression")
+    '("csdimgdef" LaTeX-arg-etoolbox-csname "Dimension expression")
+
+    '("gluedef" LaTeX-arg-etoolbox-macro-free "Glue expression")
+    '("gluegdef" LaTeX-arg-etoolbox-macro-free "Glue expression")
+    '("csgluedef" LaTeX-arg-etoolbox-csname "Glue expression")
+    '("csgluegdef" LaTeX-arg-etoolbox-csname "Glue expression")
+
+    '("mudef" LaTeX-arg-etoolbox-macro-free "Muglue expression")
+    '("mugdef" LaTeX-arg-etoolbox-macro-free "Muglue expression")
+    '("csmudef" LaTeX-arg-etoolbox-csname "Muglue expression")
+    '("csmugdef" LaTeX-arg-etoolbox-csname "Muglue expression")
+
+    ;; 3.2 Expansion Control
+    '("expandonce" LaTeX-arg-etoolbox-macro-free)
+    '("csexpandonce" LaTeX-arg-etoolbox-csname)
+
+    ;; 3.3.1 Appending to a Hook
+    '("appto" LaTeX-arg-etoolbox-macro-free t)
+    '("gappto" LaTeX-arg-etoolbox-macro-free t)
+    '("eappto" LaTeX-arg-etoolbox-macro-free t)
+    '("xappto" LaTeX-arg-etoolbox-macro-free t)
+    '("protected@eappto" LaTeX-arg-etoolbox-macro-free t)
+    '("protected@xappto" LaTeX-arg-etoolbox-macro-free t)
+
+    '("csappto" LaTeX-arg-etoolbox-csname t)
+    '("csgappto" LaTeX-arg-etoolbox-csname t)
+    '("cseappto" LaTeX-arg-etoolbox-csname t)
+    '("csxappto" LaTeX-arg-etoolbox-csname t)
+    '("protected@cseappto" LaTeX-arg-etoolbox-csname t)
+    '("protected@csxappto" LaTeX-arg-etoolbox-csname t)
+
+    ;; 3.3.2 Prepending to a Hook
+    '("preto" LaTeX-arg-etoolbox-macro-free t)
+    '("gpreto" LaTeX-arg-etoolbox-macro-free t)
+    '("epreto" LaTeX-arg-etoolbox-macro-free t)
+    '("xpreto" LaTeX-arg-etoolbox-macro-free t)
+    '("protected@epreto" LaTeX-arg-etoolbox-macro-free t)
+    '("protected@xpreto" LaTeX-arg-etoolbox-macro-free t)
+
+    '("cspreto" LaTeX-arg-etoolbox-csname t)
+    '("csgpreto" LaTeX-arg-etoolbox-csname t)
+    '("csepreto" LaTeX-arg-etoolbox-csname t)
+    '("csxpreto" LaTeX-arg-etoolbox-csname t)
+    '("protected@csepreto" LaTeX-arg-etoolbox-csname t)
+    '("protected@csxpreto" LaTeX-arg-etoolbox-csname t)
+
+    ;; 3.4 Patching
+
+    '("patchcmd" ["Prefix"] TeX-arg-macro 4)
+    '("ifpatchable" TeX-arg-macro 3)
+    '("ifpatchable*" TeX-arg-macro 2)
+    '("apptocmd" TeX-arg-macro 3)
+    '("pretocmd" TeX-arg-macro 3)
+    "tracingpatches"
+
+    ;; 3.5.1 TeX Flags
+    '("newbool"     "Name")
+    '("providebool" "Name")
+    '("booltrue"    "Name")
+    '("boolfalse"   "Name")
+    '("setbool"     "Name" (TeX-arg-eval completing-read
+                                         (TeX-argument-prompt nil nil "Value")
+                                         '("true" "false")))
+    '("ifbool"      "Name" 2)
+    '("notbool"     "Name" 2)
+
+    ;; 3.5.2 LaTeX Flags
+    '("newtoggle"     "Name")
+    '("providetoggle" "Name")
+    '("toggletrue"    "Name")
+    '("togglefalse"   "Name")
+    '("settoggle"     "Name" (TeX-arg-eval completing-read
+                                           (TeX-argument-prompt nil nil 
"Value")
+                                           '("true" "false")))
+    '("iftoggle"      "Name" 2)
+    '("nottoggle"     "Name" 2)
+
+    ;; 3.6.1 Macro Tests
+    '("ifdef" TeX-arg-macro 2)
+    '("ifcsdef" LaTeX-arg-etoolbox-csname 2)
+    '("ifundef" TeX-arg-macro 2)
+    '("ifcsundef" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefmacro" TeX-arg-macro 2)
+    '("ifcsmacro" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefparam" TeX-arg-macro 2)
+    '("ifcsparam" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefprefix" TeX-arg-macro 2)
+    '("ifcsprefix" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefprotected" TeX-arg-macro 2)
+    '("ifcsprotected" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefltxprotected" TeX-arg-macro 2)
+    '("ifcsltxprotected" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefempty" TeX-arg-macro 2)
+    '("ifcsempty" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefvoid" TeX-arg-macro 2)
+    '("ifcsvoid" LaTeX-arg-etoolbox-csname 2)
+    '("ifdefequal" TeX-arg-macro TeX-arg-macro 2)
+    '("ifcsequal" LaTeX-arg-etoolbox-csname LaTeX-arg-etoolbox-csname 2)
+    '("ifdefstring" TeX-arg-macro 3)
+    '("ifcsstring" LaTeX-arg-etoolbox-csname 3)
+    '("ifdefstrequal" TeX-arg-macro TeX-arg-macro 2)
+    '("ifcsstrequal" LaTeX-arg-etoolbox-csname LaTeX-arg-etoolbox-csname 2)
+
+    ;; 3.6.2 Counter and Length Tests
+    '("ifdefcounter" TeX-arg-macro 2)
+    '("ifcscounter" LaTeX-arg-etoolbox-csname 2)
+    '("ifltxcounter" TeX-arg-counter 2)
+    '("ifdeflength" TeX-arg-length 2)
+    '("ifcslength" (TeX-arg-eval completing-read
+                                 (TeX-argument-prompt nil nil "Length")
+                                 (LaTeX-length-list))
+      2)
+    '("ifdefdimen" TeX-arg-macro 2)
+    '("ifcsdimen" "Control sequence" 2)
+
+    ;; 3.6.3 String Tests
+    '("ifstrequal" 4)
+    '("ifstrempty" 3)
+    '("ifblank" 3)
+    '("notblank" 3)
+
+    ;; 3.6.4 Arithmetic Tests
+    '("ifnumcomp" 5)
+    '("ifnumequal" 4)
+    '("ifnumgreater" 4)
+    '("ifnumless" 4)
+    '("ifnumodd" 3)
+
+    '("ifdimcomp" 5)
+    '("ifdimequal" 4)
+    '("ifdimgreater" 4)
+    '("ifdimless" 4)
+
+    ;; 3.6.5 Boolean Expressions
+    '("ifboolexpr" 3)
+    '("ifboolexpe" 3)
+    '("whileboolexpr" 2)
+    '("unlessboolexpr" 2)
+
+    ;; 3.7 List Processing
+    ;; 3.7.1 User Input
+    '("DeclareListParser" TeX-arg-define-macro "Separator")
+    '("DeclareListParser*" TeX-arg-define-macro "Separator")
+    '("docsvlist" t)
+    '("forcsvlist" 2)
+
+    ;; 3.7.2 Internal Lists
+    '("listadd" TeX-arg-macro t)
+    '("listdadd" TeX-arg-macro t)
+    '("listeadd" TeX-arg-macro t)
+    '("listxadd" TeX-arg-macro t)
+
+    '("listcsadd" LaTeX-arg-etoolbox-csname t)
+    '("listcsgadd" LaTeX-arg-etoolbox-csname t)
+    '("listcseadd" LaTeX-arg-etoolbox-csname t)
+    '("listcsxadd" LaTeX-arg-etoolbox-csname t)
+
+    '("listremove" TeX-arg-macro t)
+    '("listgremove" TeX-arg-macro t)
+    '("listcsremove" LaTeX-arg-etoolbox-csname t)
+    '("listcsgremove" LaTeX-arg-etoolbox-csname t)
+
+    '("dolistlool" TeX-arg-macro)
+    '("dolistcslool" LaTeX-arg-etoolbox-csname)
+
+    '("forlistloop" t TeX-arg-macro)
+    '("forlistcsloop" t LaTeX-arg-etoolbox-csname)
+
+    '("ifinlist" t TeX-arg-macro nil nil)
+    '("xifinlist" t TeX-arg-macro nil nil)
+
+    '("ifinlistcs" t LaTeX-arg-etoolbox-csname nil nil)
+    '("xifinlistcs" t LaTeX-arg-etoolbox-csname nil nil)
+
+    ;; 3.8 Miscellaneous Tools
+    '("rmntonum" "Roman numeral")
+    '("ifrmnum" 3))
+
+   ;; Add the exceptions to `LaTeX-indent-begin-exceptions-list' and
+   ;; run `LaTeX-indent-commands-regexp-make':
+   (let ((exceptions '("ifpatchable"
+                       "ifbool"
+                       "iftoggle"
+                       "ifdef"
+                       "ifcsdef"
+                       "ifundef"
+                       "ifcsundef"
+                       "ifdefmacro"
+                       "ifcsmacro"
+                       "ifdefparam"
+                       "ifcsparam"
+                       "ifdefprefix"
+                       "ifcsprefix"
+                       "ifdefprotected"
+                       "ifcsprotected"
+                       "ifdefltxprotected"
+                       "ifcsltxprotected"
+                       "ifdefempty"
+                       "ifcsempty"
+                       "ifdefvoid"
+                       "ifcsvoid"
+                       "ifdefequal"
+                       "ifcsequal"
+                       "ifdefstring"
+                       "ifcsstring"
+                       "ifdefstrequal"
+                       "ifcsstrequal"
+                       "ifdefcounter"
+                       "ifcscounter"
+                       "ifltxcounter"
+                       "ifdeflength"
+                       "ifcslength"
+                       "ifdefdimen"
+                       "ifcsdimen"
+                       "ifstrequal"
+                       "ifstrempty"
+                       "ifblank"
+                       "ifnumcomp"
+                       "ifnumequal"
+                       "ifnumgreater"
+                       "ifnumless"
+                       "ifnumodd"
+                       "ifdimcomp"
+                       "ifdimequal"
+                       "ifdimgreater"
+                       "ifdimless"
+                       "ifboolexpr"
+                       "ifboolexpe"
+                       "ifinlist"
+                       "ifinlistcs"
+                       "ifrmnum")))
+     (dolist (elt exceptions)
+       (add-to-list 'LaTeX-indent-begin-exceptions-list elt t))
+     (LaTeX-indent-commands-regexp-make))
+
+   ;; Fontification
+   (when (and (featurep 'font-latex)
+              (eq TeX-install-font-lock 'font-latex-setup))
+     (font-latex-add-keywords '(("newrobustcmd"     "*|{\\[[{")
+                                ("renewrobustcmd"   "*|{\\[[{")
+                                ("providerobustcmd" "*|{\\[[{"))
+                              'function)))
+ TeX-dialect)
+
+(defvar LaTeX-etoolbox-package-options nil
+  "Package options for the etoolbox package.")
+
+;;; etoolbox.el ends here
diff --git a/style/polyglossia.el b/style/polyglossia.el
index 204923b608..cdfb03e093 100644
--- a/style/polyglossia.el
+++ b/style/polyglossia.el
@@ -242,7 +242,7 @@ argument, otherwise as a mandatory one."
     `(,LaTeX-polyglossia-lang-regexp (3 1 2) LaTeX-auto-polyglossia-lang))
    (TeX-auto-add-regexp
     `(,LaTeX-polyglossia-setkeys-regexp (1 2) LaTeX-auto-polyglossia-setkeys))
-   (TeX-run-style-hooks "etoolbox" "makecmds" "xkeyval" "fontspec")
+   (TeX-run-style-hooks "makecmds" "xkeyval" "fontspec")
    (TeX-add-symbols
     '("setdefaultlanguage" (LaTeX-arg-polyglossia-lang  t  nil nil))
     '("setmainlanguage"    (LaTeX-arg-polyglossia-lang  t  nil nil))




reply via email to

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