summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/etoolbox.el
diff options
context:
space:
mode:
authormattkae <mattkae@protonmail.com>2022-05-17 07:07:37 -0400
committermattkae <mattkae@protonmail.com>2022-05-17 07:07:37 -0400
commitbecff06c71d277647eda4378203d03ab36e141eb (patch)
treea1f73bba3676f34e0faf76764f5de963321f5576 /elpa/auctex-13.1.3/style/etoolbox.el
parent3f4a0d5370ae6c34afe180df96add3b8522f4af1 (diff)
Evil mode and latex support
Diffstat (limited to 'elpa/auctex-13.1.3/style/etoolbox.el')
-rw-r--r--elpa/auctex-13.1.3/style/etoolbox.el376
1 files changed, 376 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/etoolbox.el b/elpa/auctex-13.1.3/style/etoolbox.el
new file mode 100644
index 0000000..42af6a4
--- /dev/null
+++ b/elpa/auctex-13.1.3/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