From becff06c71d277647eda4378203d03ab36e141eb Mon Sep 17 00:00:00 2001 From: mattkae Date: Tue, 17 May 2022 07:07:37 -0400 Subject: Evil mode and latex support --- elpa/auctex-13.1.3/style/etoolbox.el | 376 +++++++++++++++++++++++++++++++++++ 1 file changed, 376 insertions(+) create mode 100644 elpa/auctex-13.1.3/style/etoolbox.el (limited to 'elpa/auctex-13.1.3/style/etoolbox.el') 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 +;; 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 -- cgit v1.2.1