summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/listings.el
diff options
context:
space:
mode:
authormattkae <mattkae@protonmail.com>2022-06-07 08:23:47 -0400
committermattkae <mattkae@protonmail.com>2022-06-07 08:23:47 -0400
commitbd18a38c2898548a3664a9ddab9f79c84f2caf4a (patch)
tree95b9933376770381bd8859782ae763be81c2d72b /elpa/auctex-13.1.3/style/listings.el
parentb07628dddf418d4f47b858e6c35fd3520fbaeed2 (diff)
parentef160dea332af4b4fe5e2717b962936c67e5fe9e (diff)
Merge conflict
Diffstat (limited to 'elpa/auctex-13.1.3/style/listings.el')
-rw-r--r--elpa/auctex-13.1.3/style/listings.el475
1 files changed, 0 insertions, 475 deletions
diff --git a/elpa/auctex-13.1.3/style/listings.el b/elpa/auctex-13.1.3/style/listings.el
deleted file mode 100644
index cfd4968..0000000
--- a/elpa/auctex-13.1.3/style/listings.el
+++ /dev/null
@@ -1,475 +0,0 @@
-;;; listings.el --- AUCTeX style for `listings.sty' -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2004, 2005, 2009, 2013-2021 Free Software Foundation, Inc.
-
-;; Author: Ralf Angeli <angeli@iwi.uni-sb.de>
-;; Maintainer: auctex-devel@gnu.org
-;; Created: 2004-10-17
-;; 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 `listings.sty'.
-;;
-;; May 2015: The style detects new environments defined with
-;; `\lstnewenvironment'. Users need to invoke `C-c C-n' for this.
-;;
-;; October 2015: The style detects new "styles" defined with
-;; `\lstdefinestyle' and offers them during key-value query.
-;;
-;; January 2017: Put label in opt. argument of environment.
-;;
-;; October 2018: Extract label context for RefTeX.
-;;
-;; FIXME: Please make me more sophisticated!
-
-;;; Code:
-
-;; Needed for compiling `cl-pushnew':
-(eval-when-compile
- (require 'cl-lib))
-
-;; Needed for auto-parsing:
-(require 'tex)
-(require 'latex)
-
-;; Silence the compiler:
-(declare-function font-latex-add-keywords
- "font-latex"
- (keywords class))
-
-(declare-function font-latex-set-syntactic-keywords
- "font-latex")
-
-(declare-function LaTeX-color-definecolor-list "color" ())
-(declare-function LaTeX-xcolor-definecolor-list "xcolor" ())
-
-;; The following are options taken from chapter 4 of the listings
-;; manual (2007/02/22 Version 1.4).
-(defvar LaTeX-listings-key-val-options
- '(;; Space and placement
- ("float" ("t" "b" "p" "h")) ; Support [*] as an optional prefix and that
- ; tbph are not exclusive.
- ("floatplacement" ("t" "b" "p" "h"))
- ("aboveskip")
- ("belowskip")
- ("lineskip")
- ("boxpos" ("b" "c" "t"))
- ;; The printed range
- ("print" ("true" "false"))
- ("firstline")
- ("lastline")
- ("linerange")
- ("consecutivenumbers" ("true" "false"))
- ("showlines" ("true" "false"))
- ("emptylines")
- ("gobble")
- ;; Languages and styles
- ("style")
- ("language")
- ("alsolanguage")
- ("defaultdialect")
- ("printpod" ("true" "false"))
- ("usekeywordsintag" ("true" "false"))
- ("tagstyle")
- ("markfirstintag")
- ("makemacrouse" ("true" "false"))
- ;; Figure out the appearance
- ("basicstyle")
- ("identifierstyle")
- ("commentstyle")
- ("stringstyle")
- ("keywordstyle")
- ("classoffset")
- ("texcsstyle")
- ("directivestyle")
- ("emph")
- ("moreemph")
- ("deleteemph")
- ("emphstyle")
- ("delim")
- ("moredelim")
- ("deletedelim")
- ;; Getting all characters right
- ("extendedchars" ("true" "false"))
- ("inputencoding") ; Could make use of `latex-inputenc-coding-alist'.
- ("upquote" ("true" "false"))
- ("tabsize")
- ("showtabs" ("true" "false"))
- ("tab")
- ("showspaces" ("true" "false"))
- ("showstringspaces" ("true" "false"))
- ("formfeed")
- ;; Line numbers
- ("numbers" ("none" "left" "right"))
- ("stepnumber")
- ("numberfirstline" ("true" "false"))
- ("numberstyle")
- ("numbersep")
- ("numberblanklines" ("true" "false"))
- ("firstnumber" ("auto" "last")) ; Can also take a number.
- ("name")
- ;; Captions
- ("title")
- ("caption") ; Insert braces?
- ;; Label is inserted as part of environment insertion; see below
- ;; for "lstlisting" in style hook
- ;; ("label")
- ("nolol" ("true" "false"))
- ("numberbychapter" ("true" "false"))
- ("captionpos" ("t" "b")) ; Can be a subset of tb.
- ("abovecaptionskip")
- ("belowcaptionskip")
- ;; Margins and line shape
- ("linewidth")
- ("xleftmargin")
- ("xrightmargin")
- ("resetmargins" ("true" "false"))
- ("breaklines" ("true" "false"))
- ("breakatwhitespace" ("true" "false"))
- ("prebreak")
- ("postbreak")
- ("breakindent")
- ("breakautoindent" ("true" "false"))
- ;; Frames
- ("frame" ("none" "leftline" "topline" "bottomline" "lines" "single"
- "shadowbox"
- ;; Alternative to the above values. A subset of trblTRBL can be
- ;; given.
- "t" "r" "b" "l" "T" "R" "B" "L"))
- ("frameround" ("t" "f")) ; The input actually has to be four times {t,f}.
- ("framesep")
- ("rulesep")
- ("framerule")
- ("framexleftmargin")
- ("framexrightmargin")
- ("framextopmargin")
- ("framebottommargin")
- ("backgroundcolor")
- ("rulecolor")
- ("fillcolor")
- ("rulesepcolor")
- ("frameshape")
- ;; Indexing
- ("index")
- ("moreindex")
- ("deleteindex")
- ("indexstyle")
- ;; Column alignment
- ("columns" ("fixed" "flexible" "fullflexible" "spaceflexible")) ;
- ; Also supports an optional
- ; argument with {c,l,r}.
- ("flexiblecolumns" ("true" "false"))
- ("keepspaces" ("true" "false"))
- ("basewidth")
- ("fontadjust" ("true" "false"))
- ;; Escaping to LaTeX
- ("texcl" ("true" "false"))
- ("mathescape" ("true" "false"))
- ("escapechar")
- ("escapeinside")
- ("escapebegin")
- ("escapeend")
- ;; Interface to fancyvrb
- ("fancyvrb" ("true" "false"))
- ("fvcmdparams")
- ("morefvcmdparams")
- ;; Language definitions
- ("keywordsprefix")
- ("keywords")
- ("morekeywords")
- ("deletekeywords")
- ("texcs")
- ("moretexcs")
- ("deletetexcs")
- ("directives")
- ("moredirectives")
- ("deletedirectives")
- ("sensitive" ("true" "false"))
- ("alsoletter")
- ("alsodigit")
- ("alsoother")
- ("otherkeywords")
- ("tag")
- ("string")
- ("morestring")
- ("deletestring")
- ("comment")
- ("morecomment")
- ("deletecomment")
- ("keywordcomment")
- ("morekeywordcomment")
- ("deletekeywordcomment")
- ("keywordcommentsemicolon")
- ("podcomment" ("true" "false"))
- ;; The following are all options from chapter 5, which are
- ;; experimental
- ;; Export of identifiers
- ("procnamekeys")
- ("moreprocnamekeys")
- ("deleteprocnamekeys")
- ("procnamestyle")
- ("indexprocnames" ("true" "false"))
- ;; Hyperlink references
- ("hyperref")
- ("morehyperref")
- ("deletehyperref")
- ("hyperanchor")
- ("hyperlink")
- ;; Literate programming
- ("literate") ;; three arguments: replace,replacement text,length
- ;; LGrind definitions
- ("lgrindef")
- ;; Arbitrary linerange markers
- ("rangebeginprefix")
- ("rangebeginsuffix")
- ("rangeendprefix")
- ("rangeendsuffix")
- ("rangeprefix")
- ("rangesuffix")
- ("includerangemarker" ("true" "false"))
- ;; Multicolumn Listing
- ("multicolumn"))
- "Key=value options for listings macros and environments.")
-
-(defun LaTeX-listings-key-val-options ()
- "Return an updated list of key=vals from listings package."
- (append
- ;; Check for x?color package. Note that listings requires a \color
- ;; command, e.g., 'rulecolor=\color{blue}':
- (when (and (or (member "xcolor" (TeX-style-list))
- (member "color" TeX-active-styles)))
- (let* ((colorcmd (if (member "xcolor" TeX-active-styles)
- #'LaTeX-xcolor-definecolor-list
- #'LaTeX-color-definecolor-list))
- (colors (mapcar (lambda (x)
- (concat TeX-esc "color" TeX-grop x TeX-grcl))
- (mapcar #'car (funcall colorcmd))))
- (keys '("backgroundcolor"
- "fillcolor"
- "rulecolor"
- "rulesepcolor"))
- result)
- (dolist (key keys result)
- (push (list key colors) result))))
- ;; Cater for user defined styles:
- (when (LaTeX-listings-lstdefinestyle-list)
- `(("style" ,(mapcar #'car (LaTeX-listings-lstdefinestyle-list)))))
- ;; Standard key=vals:
- LaTeX-listings-key-val-options))
-
-;; Setup for \lstnewenvironment:
-(defvar LaTeX-auto-listings-lstnewenvironment nil
- "Temporary for parsing the arguments of '\\lstnewenvironment'.")
-
-(defvar LaTeX-listings-lstnewenvironment-regexp
- `(,(concat "\\\\lstnewenvironment"
- "[ \t\n\r]*{\\([A-Za-z0-9]+\\)}"
- "%?"
- "[ \t\n\r]*\\(?:\\[\\([0-9]\\)\\]\\)?"
- "%?"
- "[ \t\n\r]*\\(\\[\\)?")
- (1 2 3) LaTeX-auto-listings-lstnewenvironment)
- "Matches the argument of '\\lstnewenvironment'.")
-
-;; Setup for \lstdefinestyle:
-(TeX-auto-add-type "listings-lstdefinestyle" "LaTeX")
-
-(defvar LaTeX-listings-lstdefinestyle-regexp
- '("\\\\lstdefinestyle{\\([^}]+\\)}"
- 1 LaTeX-auto-listings-lstdefinestyle)
- "Matches the argument of '\\lstdefinestyle' from 'listings' package.")
-
-;; Setup for parsing the labels inside optional arguments:
-
-(defvar LaTeX-listings-key-val-label-regexp
- `(,(concat
- "\\\\begin{lstlisting}" (LaTeX-extract-key-value-label))
- 1 LaTeX-auto-label)
- "Matches the label inside an optional argument after \\begin{lstlisting}.")
-
-(defun LaTeX-listings-auto-prepare ()
- "Clear temporary variable from 'listings' package before parsing."
- (setq LaTeX-auto-listings-lstnewenvironment nil)
- (setq LaTeX-auto-listings-lstdefinestyle nil))
-
-(defun LaTeX-listings-auto-cleanup ()
- "Process the parsed results of 'listings' package."
- (dolist (env-args LaTeX-auto-listings-lstnewenvironment)
- (let ((env (car env-args))
- (args (cadr env-args))
- (opt (nth 2 env-args)))
- (cond (;; opt. 1st argument and mandatory argument(s)
- (and args (not (string-equal args ""))
- opt (not (string-equal opt "")))
- (LaTeX-add-environments
- `(,env
- LaTeX-env-args
- [TeX-arg-key-val (LaTeX-listings-key-val-options)]
- (LaTeX-env-label-as-keyval "caption")
- ,(1- (string-to-number args)))))
- (;; mandatory argument(s) only
- (and args (not (string-equal args ""))
- (string-equal opt ""))
- (LaTeX-add-environments
- (list env (string-to-number args))))
- (t ; No args
- (LaTeX-add-environments (list env))))
- (add-to-list 'LaTeX-indent-environment-list `(,env current-indentation) t)
- (add-to-list 'LaTeX-verbatim-environments-local env t)
- (add-to-list 'LaTeX-label-alist `(,env . LaTeX-listing-label) t)
- ;; Add new env to parser for labels in opt. argument:
- (TeX-auto-add-regexp `(,(concat "\\\\begin{" env "}"
- (LaTeX-extract-key-value-label))
- 1 LaTeX-auto-label))
- ;; Tell RefTeX
- (when (fboundp 'reftex-add-label-environments)
- (reftex-add-label-environments
- `((,env ?l "lst:" "~\\ref{%s}"
- LaTeX-listings-reftex-label-context-function
- (regexp "[Ll]isting")))))
- ;; Fontification
- (when (and (fboundp 'font-latex-add-keywords)
- (eq TeX-install-font-lock 'font-latex-setup))
- ;; Tell font-lock about the update.
- (font-latex-set-syntactic-keywords))
- ;; Add new env's to `ispell-tex-skip-alist': skip the entire env
- (TeX-ispell-skip-setcdr `(,(cons env (concat "\\\\end{" env "}")))))))
-
-(add-hook 'TeX-auto-prepare-hook #'LaTeX-listings-auto-prepare t)
-(add-hook 'TeX-auto-cleanup-hook #'LaTeX-listings-auto-cleanup t)
-(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-
-(defun LaTeX-listings-reftex-label-context-function (env)
- "Extract and return a context string for RefTeX.
-The context string is the value given to the caption key. If no
-caption key is found, an error is issued."
- (let* ((envstart (save-excursion
- (re-search-backward (concat "\\\\begin{" env "}")
- nil t)))
- (capt-key (save-excursion
- (re-search-backward "caption[ \t\n\r%]*=[ \t\n\r%]*"
- envstart t)))
- capt-start capt-end)
- (if capt-key
- (save-excursion
- (goto-char capt-key)
- (re-search-forward
- "caption[ \t\n\r%]*=[ \t\n\r%]*" nil t)
- (cond (;; Short caption inside [] is available, extract it only
- (looking-at-p (regexp-quote (concat TeX-grop LaTeX-optop)))
- (forward-char)
- (setq capt-start (1+ (point)))
- (setq capt-end (1- (progn (forward-sexp) (point)))))
- ;; Extract the entire caption which is enclosed in braces
- ((looking-at-p TeX-grop)
- (setq capt-start (1+ (point)))
- (setq capt-end (1- (progn (forward-sexp) (point)))))
- ;; Extract everything to next comma ,
- (t
- (setq capt-start (point))
- (setq capt-end (progn (skip-chars-forward "^,") (point)))))
- ;; Return the extracted string
- (buffer-substring-no-properties capt-start capt-end))
- (error "No caption found"))))
-
-(TeX-add-style-hook
- "listings"
- (lambda ()
-
- ;; Add to parser:
- (TeX-auto-add-regexp LaTeX-listings-lstnewenvironment-regexp)
- (TeX-auto-add-regexp LaTeX-listings-lstdefinestyle-regexp)
- (TeX-auto-add-regexp LaTeX-listings-key-val-label-regexp)
-
- ;; New symbols
- (TeX-add-symbols
- '("lstalias" ["Alias dialect"] "Alias" ["Dialect"] "Language")
- '("lstdefinestyle"
- (TeX-arg-eval
- (lambda ()
- (let ((name (TeX-read-string "Style name: ")))
- (LaTeX-add-listings-lstdefinestyles name)
- (format "%s" name))))
- (TeX-arg-key-val (LaTeX-listings-key-val-options)))
- '("lstinline" [TeX-arg-key-val (LaTeX-listings-key-val-options)]
- TeX-arg-verb-delim-or-brace)
- '("lstinputlisting" [TeX-arg-key-val (LaTeX-listings-key-val-options)]
- TeX-arg-file)
- "lstlistoflistings"
- '("lstnewenvironment" "Name" ["Number or arguments"] ["Default argument"]
- "Starting code" "Ending code")
- '("lstset" (TeX-arg-key-val (LaTeX-listings-key-val-options)))
- '("lstloadlanguages" t)
- ;; 4.17 Short Inline Listing Commands
- '("lstMakeShortInline" [ "Options" ] "Character")
- '("lstDeleteShortInline" "Character")
-
- "lstgrinddeffile" "lstaspectfiles" "lstlanguagefiles"
- "lstlistingname" "lstlistingnamestyle" "thelstlisting"
- "lstlistlistingname")
-
- ;; New environments
- (LaTeX-add-environments
- '("lstlisting" LaTeX-env-args
- [TeX-arg-key-val (LaTeX-listings-key-val-options)]
- (LaTeX-env-label-as-keyval "caption")))
-
- ;; Append "lstlisting" to `LaTeX-label-alist':
- (add-to-list 'LaTeX-label-alist '("lstlisting" . LaTeX-listing-label) t)
-
- ;; Filling
- (add-to-list (make-local-variable 'LaTeX-indent-environment-list)
- '("lstlisting" current-indentation) t)
- (add-to-list 'LaTeX-verbatim-environments-local "lstlisting")
- (add-to-list 'LaTeX-verbatim-macros-with-delims-local "lstinline")
- (add-to-list 'LaTeX-verbatim-macros-with-braces-local "lstinline")
-
- ;; RefTeX support lstlistings environment via
- ;; `reftex-label-alist-builtin'. We add the same thing here only
- ;; with our function as 5th element:
- (when (fboundp 'reftex-add-label-environments)
- (reftex-add-label-environments
- '(("lstlisting" ?l "lst:" "~\\ref{%s}"
- LaTeX-listings-reftex-label-context-function
- (regexp "[Ll]isting")))))
-
- ;; Fontification
- (when (and (fboundp 'font-latex-add-keywords)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(("lstnewenvironment" "{[[{{")) 'function)
- (font-latex-add-keywords '(("lstinputlisting" "[{")) 'reference)
- (font-latex-add-keywords '(("lstinline" "[")
- ("lstlistoflistings" ""))
- 'textual)
- (font-latex-add-keywords '(("lstalias" "{{")
- ("lstdefinestyle" "{{")
- ("lstset" "{"))
- 'variable)))
- TeX-dialect)
-
-(defvar LaTeX-listings-package-options '("draft" "final" "savemem"
- "noaspects"
- ;; procnames is mentioned in
- ;; Section 5.2
- "procnames")
- "Package options for the listings package.")
-
-;;; listings.el ends here