summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/tcolorboxlib-raster.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/tcolorboxlib-raster.el
parent3f4a0d5370ae6c34afe180df96add3b8522f4af1 (diff)
Evil mode and latex support
Diffstat (limited to 'elpa/auctex-13.1.3/style/tcolorboxlib-raster.el')
-rw-r--r--elpa/auctex-13.1.3/style/tcolorboxlib-raster.el202
1 files changed, 202 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/tcolorboxlib-raster.el b/elpa/auctex-13.1.3/style/tcolorboxlib-raster.el
new file mode 100644
index 0000000..db61a03
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/tcolorboxlib-raster.el
@@ -0,0 +1,202 @@
+;;; tcolorboxlib-raster.el --- AUCTeX style for `raster' library from tcolorbox -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2016--2021 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <arash@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; 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 `raster' library from tcolorbox.sty.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+(declare-function LaTeX-tcolorbox-keyval-options "tcolorbox" ())
+(defvar LaTeX-tcolorbox-keyval-options-full)
+
+(defvar LaTeX-tcolorbox-lib-raster-keyval-options
+ '(;; 14.3 Option Keys of the Library
+ ("raster columns")
+ ("raster rows")
+ ("raster width")
+ ("raster height")
+ ("raster before skip")
+ ("raster after skip")
+ ("raster equal skip")
+ ("raster left skip")
+ ("raster right skip")
+ ("raster column skip")
+ ("raster row skip")
+ ("raster halign" ("left" "center" "right"))
+ ("raster valign" ("top" "center" "bottom"))
+ ("raster equal height" ("noe" "rows" "all"))
+ ("raster equal height group")
+ ("raster force size" ("true" "false"))
+ ("raster reset")
+ ;; 14.4 Adding Styles for Specific Boxes
+ ("raster every box")
+ ("raster odd column")
+ ("raster even column")
+ ("raster column 1")
+ ("raster column 2")
+ ("raster column 3")
+ ("raster column 4")
+ ("raster odd row")
+ ("raster even row")
+ ("raster row 1")
+ ("raster row 2")
+ ("raster row 3")
+ ("raster row 4")
+ ("raster odd number")
+ ("raster even number")
+ ;; raster row m column n is left to user
+ ("raster number 1")
+ ("raster number 2")
+ ("raster number 3")
+ ("raster number 4")
+ ;; 14.5 Combining Columns or Rows
+ ("raster multicolumn")
+ ("raster multirow"))
+ "Key=value options for raster library from tcolorbox.")
+
+(defun LaTeX-tcolorbox-lib-raster-env-item (environment)
+ "Insert ENVIRONMENT, ask for arguments and the first item."
+ (LaTeX-insert-environment
+ environment
+ (let ((opts (TeX-read-key-val t (append
+ LaTeX-tcolorbox-lib-raster-keyval-options
+ (LaTeX-tcolorbox-keyval-options))
+ (when (string= environment "tcboxeditemize")
+ "Raster options (k=v)")))
+ (box-opts (when (string= environment "tcboxeditemize")
+ (TeX-read-key-val nil (LaTeX-tcolorbox-keyval-options)
+ "Box options (k=v)"))))
+ (concat
+ (when (and opts (not (string= opts "")))
+ (format "[%s]" opts))
+ (when (string= environment "tcboxeditemize")
+ (format "{%s}" box-opts)))))
+ (if (TeX-active-mark)
+ (progn
+ (LaTeX-find-matching-begin)
+ (end-of-line 1))
+ (end-of-line 0))
+ (delete-char 1)
+ (when (looking-at (concat "^[ \t]+$\\|"
+ "^[ \t]*" TeX-comment-start-regexp "+[ \t]*$"))
+ (delete-region (point) (line-end-position)))
+ (delete-horizontal-space)
+ ;; Deactivate the mark here in order to prevent `TeX-parse-macro'
+ ;; from swapping point and mark and the \item ending up right after
+ ;; \begin{...}.
+ (deactivate-mark)
+ (LaTeX-insert-item)
+ ;; The inserted \item may have outdented the first line to the
+ ;; right. Fill it, if appropriate.
+ (when (and auto-fill-function
+ (not (looking-at "$"))
+ (not (assoc environment LaTeX-indent-environment-list))
+ (> (- (line-end-position) (line-beginning-position))
+ (current-fill-column)))
+ (LaTeX-fill-paragraph nil)))
+
+(defun LaTeX-tcolorbox-lib-raster-insert-item ()
+ "Insert \"tcbitem\" and query for optional argument."
+ (TeX-insert-macro "tcbitem"))
+
+(TeX-add-style-hook
+ "tcolorboxlib-raster"
+ (lambda ()
+
+ ;; Register key-vals from library to `LaTeX-tcolorbox-keyval-options-full':
+ (add-to-list 'LaTeX-tcolorbox-keyval-options-full
+ 'LaTeX-tcolorbox-lib-raster-keyval-options)
+
+ (TeX-add-symbols
+ ;; 14.2 Macros of the Library
+ '("tcbitem"
+ [TeX-arg-key-val (LaTeX-tcolorbox-keyval-options) "Item options (k=v)" ]
+ (TeX-arg-literal " ")))
+
+ (LaTeX-add-environments
+ ;; 14.2 Macros of the Library
+ '("tcbraster"
+ (lambda (env)
+ (LaTeX-insert-environment
+ env
+ (let ((raster-opts
+ (TeX-read-key-val t (append
+ LaTeX-tcolorbox-lib-raster-keyval-options
+ (LaTeX-tcolorbox-keyval-options)))))
+ (when (and raster-opts (not (string= raster-opts "")))
+ (concat LaTeX-optop raster-opts LaTeX-optcl))))))
+
+ '("tcbitemize" LaTeX-tcolorbox-lib-raster-env-item)
+
+ '("tcboxedraster"
+ (lambda (env)
+ (LaTeX-insert-environment
+ env
+ (let ((raster-opts
+ (TeX-read-key-val t (append
+ LaTeX-tcolorbox-lib-raster-keyval-options
+ (LaTeX-tcolorbox-keyval-options))
+ "Raster options (k=v)"))
+ (box-opts
+ (TeX-read-key-val nil (LaTeX-tcolorbox-keyval-options)
+ "Box options (k=v)")))
+ (concat
+ (when (and raster-opts (not (string= raster-opts "")))
+ (concat LaTeX-optop raster-opts LaTeX-optcl))
+ TeX-grop box-opts TeX-grcl)))))
+
+ '("tcboxeditemize" LaTeX-tcolorbox-lib-raster-env-item))
+
+ ;; Append tcb(oxed)?itemize to `LaTeX-item-list':
+ (add-to-list 'LaTeX-item-list
+ '("tcbitemize" . LaTeX-tcolorbox-lib-raster-insert-item) t)
+ (add-to-list 'LaTeX-item-list
+ '("tcboxeditemize" . LaTeX-tcolorbox-lib-raster-insert-item) t)
+
+ ;; Append tcbitem to `LaTeX-item-regexp':
+ (unless (string-match "tcbitem" LaTeX-item-regexp)
+ (set (make-local-variable 'LaTeX-item-regexp)
+ (concat
+ LaTeX-item-regexp
+ "\\|"
+ "tcbitem\\b"))
+ (LaTeX-set-paragraph-start))
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("tcbitem" "["))
+ 'textual)))
+ TeX-dialect)
+
+;;; tcolorboxlib-raster.el ends here