[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex a9ec6ba 01/57: Update style/minted.el to package
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex a9ec6ba 01/57: Update style/minted.el to package version 2.4.1. |
Date: |
Wed, 11 Jan 2017 18:01:37 +0000 (UTC) |
branch: externals/auctex
commit a9ec6ba8cc86b22d97da6ca4946aa6690cc059ad
Author: Arash Esbati <address@hidden>
Commit: Arash Esbati <address@hidden>
Update style/minted.el to package version 2.4.1.
* style/minted.el (LaTeX-minted-key-val-options): Add new key=vals
from package version 2.4.1.
(LaTeX-minted-key-val-options-local): New variable.
(LaTeX-minted-language-list): Set the variable
`LaTeX-minted-language-list' after the first call of function.
(LaTeX-minted-style-list): New variable.
(LaTeX-minted-style-list): New function analogous to
`LaTeX-minted-language-list' returning styles provided by
pymentize program.
(LaTeX-arg-minted-style): New function to insert styles provided
by pymentize program into buffer.
(LaTeX-minted-update-key-vals): New function to update key=vals in
`LaTeX-minted-key-val-options-local'.
(LaTeX-minted-auto-cleanup): Call `LaTeX-minted-update-key-vals'.
("minted"): Use `LaTeX-minted-key-val-options-local' for all
key=val queries. Update macros incl. fontification. Run style
hook for `newfloat' when package option is given.
---
style/minted.el | 197 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 175 insertions(+), 22 deletions(-)
diff --git a/style/minted.el b/style/minted.el
index b4bc572..914ee66 100644
--- a/style/minted.el
+++ b/style/minted.el
@@ -1,4 +1,4 @@
-;;; minted.el --- AUCTeX style for `minted.sty'
+;;; minted.el --- AUCTeX style for `minted.sty' (v2.4.1)
;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
@@ -26,7 +26,7 @@
;;; Commentary:
-;; This file adds support for `minted.sty'.
+;; This file adds support for `minted.sty' (v2.4.1) from 2016/10/31.
;;; Code:
@@ -35,12 +35,31 @@
(defvar LaTeX-minted-key-val-options
'(("autogobble" ("true" "false"))
("baselinestretch" ("auto"))
+ ("breakafter")
+ ("breakaftergroup" ("true" "false"))
+ ("breakaftersymbolpre")
+ ("breakaftersymbolpost")
+ ("breakbytoken" ("true" "false"))
+ ("breakbytokenanywhere" ("true" "false"))
+ ("breakindent")
+ ("breaklines" ("true" "false"))
+ ("breaksymbol")
+ ("breaksymbolleft")
+ ("breaksymbolright")
+ ("breaksymbolindent")
+ ("breaksymbolindentleft")
+ ("breaksymbolindentright")
+ ("breaksymbolsep")
+ ("breaksymbolsepleft")
+ ("breaksymbolsepright")
("bgcolor")
("codetagify")
+ ("curlyquotes" ("true" "false"))
("encoding")
("outencoding")
+ ("escapeinside")
("firstline")
- ("firstnumber" ("auto"))
+ ("firstnumber" ("auto" "last" "integer"))
("fontfamily" ("tt" "courier" "helvetica"))
("fontseries" ("auto"))
("fontsize" ("auto" "\\tiny" "\\large" "\\scriptsize" "\\Large"
@@ -53,12 +72,15 @@
("framesep")
("funcnamehighlighting" ("true" "false"))
("gobble")
+ ("highlightcolor")
+ ("highlightlines")
("keywordcase" ("lower" "upper" "capitalize"))
("label")
("labelposition" ("none" "topline" "bottomline" "all"))
("lastline")
("linenos" ("true" "false"))
- ("numbers" ("left" "right"))
+ ("numberfirstline" ("true" "false"))
+ ("numbers" ("left" "right" "both" "none"))
("mathescape" ("true" "false"))
("numberblanklines" ("true" "false"))
("numbersep")
@@ -69,10 +91,27 @@
("samepage" ("true" "false"))
("showspaces" ("true" "false"))
("showtabs" ("true" "false"))
+ ("space")
+ ("spacecolor")
("startinline" ("true" "false"))
- ("style")
+ ;; FIXME: It would be nice to use the function
+ ;; `LaTeX-minted-style-list' here, but with a file local var like:
+ ;; %%% TeX-command-extra-options: "-shell-escape"
+ ;; in a .tex file, Emacs asks to apply a variable which is not
+ ;; safe and does not restore the frame; the splitted frame
+ ;; remains. I couldn't figure out why, so for now, I add the
+ ;; styles from Pygments version 2.1.3 here.
+ ("style" ("colorful" "default" "emacs" "friendly" "fruity" "igor"
+ "lovelace" "manni" "monokai" "murphy" "native"
+ "paraiso-dark" "paraiso-light" "pastie" "perldoc"
+ "rrt" "tango" "trac" "vim" "vs" "xcode"))
("stepnumber")
+ ("stepnumberfromfirst")
+ ("stepnumberoffsetvalues" ("true" "false"))
+ ("stripall" ("true" "false"))
("stripnl")
+ ("tab")
+ ("tabcolor")
("tabsize")
("texcl" ("true" "false"))
("texcomments" ("true" "false"))
@@ -80,11 +119,18 @@
("xrightmargin"))
"Key=value options for minted macros and environments.")
+(defvar LaTeX-minted-key-val-options-local nil
+ "Buffer-local key=value options for minted macros and environments.")
+(make-variable-buffer-local 'LaTeX-minted-key-val-options-local)
+
(defvar LaTeX-minted-pygmentize-program (executable-find "pygmentize"))
-(defvar LaTeX-minted-language-list nil)
+(defvar LaTeX-minted-language-list nil
+ "List containing languages provided by pymentize program.")
(defun LaTeX-minted-language-list (&rest _ignored)
+ "Return a list of languages provided by pymentize program.
+Update the variable `LaTeX-minted-language-list' if still nil."
(or LaTeX-minted-language-list
(when LaTeX-minted-pygmentize-program
(with-temp-buffer
@@ -95,14 +141,67 @@
(while (re-search-forward "^\\*[[:space:]]\\([^:]+\\):" nil t)
(dolist (lang (split-string (match-string 1) "[[:space:],]" t))
(push lang languages)))
- languages)))))
+ (setq LaTeX-minted-language-list languages))
+ LaTeX-minted-language-list))))
(defun LaTeX-arg-minted-language (optional &optional prompt)
+ "Insert a selected pygmentize language as argument for macros from
minted.sty.
+If OPTIONAL is non-nil, insert it as optional argument in
+brackets. PROMPT replaces the standard one."
(TeX-argument-insert
(completing-read (TeX-argument-prompt optional prompt "Language")
(LaTeX-minted-language-list))
optional))
+(defvar LaTeX-minted-style-list nil
+ "List containing styles provided by pymentize program.")
+
+(defun LaTeX-minted-style-list (&rest _ignored)
+ "Return a list of styles provided by pymentize program.
+Update the variable `LaTeX-minted-style-list' if still nil."
+ (or LaTeX-minted-style-list
+ (when LaTeX-minted-pygmentize-program
+ (with-temp-buffer
+ (shell-command (concat LaTeX-minted-pygmentize-program " -L styles")
+ (current-buffer))
+ (goto-char (point-min))
+ (let (styles)
+ (while (re-search-forward "^\\*[[:space:]]\\([^:]+\\):" nil t)
+ (dolist (style (split-string (match-string 1) "[[:space:],]" t))
+ (push style styles)))
+ (setq LaTeX-minted-style-list styles))
+ LaTeX-minted-style-list))))
+
+(defun LaTeX-arg-minted-style (optional &optional prompt)
+ "Insert a selected pygmentize style as argument for macros from minted.sty.
+If OPTIONAL is non-nil, insert it as optional argument in
+brackets. PROMPT replaces the standard one."
+ (TeX-argument-insert
+ (completing-read (TeX-argument-prompt optional prompt "Style")
+ (LaTeX-minted-style-list))
+ optional))
+
+(defun LaTeX-minted-update-key-vals ()
+ "Update color related key-vals in `LaTeX-minted-key-val-options-local'.
+This function checks if one of the packages \"xcolor.sty\" or
+\"xcolor.sty\" is loaded and appends defined colors as values to
+color related key. \"xcolor.sty\" is preferred if both packages
+are loaded."
+ (when (or (member "xcolor" (TeX-style-list))
+ (member "color" (TeX-style-list)))
+ (let* ((colorcmd (if (member "xcolor" (TeX-style-list))
+ #'LaTeX-xcolor-definecolor-list
+ #'LaTeX-color-definecolor-list))
+ (colorkeys '("bgcolor" "highlightcolor"
+ "rulecolor" "spacecolor" "tabcolor"))
+ (opts (copy-alist LaTeX-minted-key-val-options-local)))
+ (dolist (key colorkeys)
+ (assq-delete-all (car (assoc key opts)) opts)
+ (push (list key (mapcar #'car (funcall colorcmd)))
+ opts))
+ (setq LaTeX-minted-key-val-options-local
+ (copy-alist opts)))))
+
(defvar LaTeX-minted-auto-newminted nil)
(defvar LaTeX-minted-newminted-regexp
'("\\\\newminted\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}{[^}]*}"
@@ -127,7 +226,9 @@
(setq LaTeX-minted-auto-newminted nil
LaTeX-minted-auto-newmint nil
LaTeX-minted-auto-newmintinline nil
- LaTeX-minted-auto-newmintedfile nil))
+ LaTeX-minted-auto-newmintedfile nil
+ LaTeX-minted-language-list nil
+ LaTeX-minted-style-list nil))
(defun LaTeX-minted-auto-cleanup ()
;; \newminted{lang}{opts} => new langcode and langcode* envs.
@@ -140,7 +241,7 @@
(add-to-list 'LaTeX-auto-environment (list env))
(add-to-list 'LaTeX-auto-environment
(list env* 'LaTeX-env-args
- '(TeX-arg-key-val LaTeX-minted-key-val-options)))
+ '(TeX-arg-key-val LaTeX-minted-key-val-options-local)))
(add-to-list 'LaTeX-indent-environment-list `(,env current-indentation)
t)
(add-to-list 'LaTeX-indent-environment-list `(,env* current-indentation)
t)
(add-to-list 'LaTeX-verbatim-environments-local env)
@@ -171,7 +272,9 @@
(when (and (fboundp 'font-latex-update-font-lock)
(eq TeX-install-font-lock 'font-latex-setup))
;; Refresh font-locking so that the verbatim envs take effect.
- (font-latex-update-font-lock t)))
+ (font-latex-update-font-lock t))
+ ;; Also update the key=vals
+ (LaTeX-minted-update-key-vals))
(add-hook 'TeX-auto-prepare-hook #'LaTeX-minted-auto-prepare t)
(add-hook 'TeX-auto-cleanup-hook #'LaTeX-minted-auto-cleanup t)
@@ -180,25 +283,63 @@
(TeX-add-style-hook
"minted"
(lambda ()
+
+ ;; Activate local-version of key=vals
+ (setq LaTeX-minted-key-val-options-local
+ (copy-alist LaTeX-minted-key-val-options))
+
;; New symbols
(TeX-add-symbols
'("mint" LaTeX-arg-minted-language TeX-arg-verb)
'("mintinline" LaTeX-arg-minted-language TeX-arg-verb)
- '("listoflistings")
'("newminted" ["Environment Name"] LaTeX-arg-minted-language
- (TeX-arg-key-val LaTeX-minted-key-val-options))
+ (TeX-arg-key-val LaTeX-minted-key-val-options-local))
'("newmint" ["Macro Name"] LaTeX-arg-minted-language
- (TeX-arg-key-val LaTeX-minted-key-val-options))
+ (TeX-arg-key-val LaTeX-minted-key-val-options-local))
'("newmintinline" ["Macro Name"] LaTeX-arg-minted-language
- (TeX-arg-key-val LaTeX-minted-key-val-options))
+ (TeX-arg-key-val LaTeX-minted-key-val-options-local))
'("newmintedfile" ["Macro Name"] LaTeX-arg-minted-language
- (TeX-arg-key-val LaTeX-minted-key-val-options)))
+ (TeX-arg-key-val LaTeX-minted-key-val-options-local))
+ ;; 3.3 Formatting source code
+ '("inputminted"
+ [ TeX-arg-key-val LaTeX-minted-key-val-options-local ]
+ (LaTeX-arg-minted-language)
+ TeX-arg-file)
+ ;; 3.4 Using different styles
+ '("usemintedstyle"
+ [ LaTeX-arg-minted-language ] LaTeX-arg-minted-style)
+ ;; 5.2 Macro option usage
+ '("setminted"
+ [ LaTeX-arg-minted-language ]
+ (TeX-arg-key-val LaTeX-minted-key-val-options-local))
+ '("setmintedinline"
+ [ LaTeX-arg-minted-language ]
+ (TeX-arg-key-val LaTeX-minted-key-val-options-local)))
;; New environments
(LaTeX-add-environments
- '("minted" LaTeX-env-args [TeX-arg-key-val LaTeX-minted-key-val-options]
- LaTeX-arg-minted-language)
- '("listing" ["Float Position"]))
+ '("minted" LaTeX-env-args [TeX-arg-key-val
LaTeX-minted-key-val-options-local]
+ LaTeX-arg-minted-language))
+
+ ;; 4 Floating listings: If option "newfloat" is given, run the
+ ;; style hook and use the interface provided by the style,
+ ;; otherwise add "listing" manually
+ (if (or (LaTeX-provided-package-options-member "minted" "newfloat")
+ (LaTeX-provided-package-options-member "minted" "newfloat=true"))
+ (progn
+ (TeX-run-style-hooks "newfloat")
+ (LaTeX-add-newfloat-DeclareFloatingEnvironments
+ '("listing" "verbatim")))
+ (LaTeX-add-environments '("listing" ["Float Position"]))
+ (TeX-add-symbols '("listoflistings")
+ '("listingscaption")
+ '("listoflistingscaption"))
+ (add-to-list (make-local-variable 'LaTeX-indent-environment-list)
+ '("listing" current-indentation) t)
+ (add-to-list 'LaTeX-label-alist '("listing" . "lst:") t)
+ (when (fboundp 'reftex-add-label-environments)
+ (reftex-add-label-environments
+ '(("listing" ?l "lst:" "~\\ref{%s}" caption nil nil)))))
;; Add to the auto parser
(TeX-auto-add-regexp LaTeX-minted-newminted-regexp)
@@ -218,18 +359,30 @@
(when (and (fboundp 'font-latex-add-keywords)
(fboundp 'font-latex-update-font-lock)
(eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(;; FIXME: Those have the form \mint{lang}|code|
+ (font-latex-add-keywords '(("usemintedstyle" "[{")
+ ("setminted" "[{")
+ ("setmintedinline" "[{")
+ ("newminted" "[{{")
+ ("newmint" "[{{")
+ ("newmintedinline" "[{{")
+ ("newmintedfile" "[{{")
+ ;; FIXME: Those have the form \mint{lang}|code|
;; so ideally the verbatim arg should be
;; recognized.
"mint" "mintinline")
'function)
+ (font-latex-add-keywords '(("inputminted" "[{{"))
+ 'textual)
;; Tell font-lock about the update.
(font-latex-update-font-lock t)))
LaTeX-dialect)
-(defvar LaTeX-minted-package-options '("section" "chapter" "cache"
- "outputdir" "cachedir"
- "langlinenos")
+(defvar LaTeX-minted-package-options '("chapter" "cache"
+ "cachedir" "finalizecache"
+ "frozencache" "draft"
+ "final" "kpsewhich"
+ "langlinenos" "newfloat"
+ "outputdir" "section")
"Package options for the minted package.")
;;; minted.el ends here
- [elpa] externals/auctex 61e56f2 40/57: Fix bug where font-latex-sub/superscript-face was not applied to ^_, (continued)
- [elpa] externals/auctex 61e56f2 40/57: Fix bug where font-latex-sub/superscript-face was not applied to ^_, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex bc47cb0 39/57: Fontify script characters with a new face, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 6fe7a2e 43/57: Prepare for upcoming release, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 33a6ff8 48/57: ; Change email address., Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 5af3c8e 15/57: Add \switchcolumn to paragraph commands, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex a943b6c 10/57: Add new tcolorbox library style/tcolorboxlib-raster.el, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 3a5ed08 38/57: Support biblatex cite format in all Emacsen, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 436371c 31/57: Add completion-at-point support, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex a181b14 55/57: ; make change-history-commit, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 4ebbf90 56/57: Make gitlog-to-changelog ignore release-commit, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex a9ec6ba 01/57: Update style/minted.el to package version 2.4.1.,
Tassilo Horn <=
- [elpa] externals/auctex 4c59f77 42/57: Adapt Makefile to new ChangeLog file name, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex c541d75 20/57: Fix the names also in expert macros, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 93b1163 50/57: * ChangeLog-preview: Change encoding to UTF-8., Tassilo Horn, 2017/01/11
- [elpa] externals/auctex fb6333b 45/57: ; * doc/install.texi (Installation): Guard reference in "@ifclear rawfile"., Tassilo Horn, 2017/01/11
- [elpa] externals/auctex ea7f427 28/57: Improve multi-level script fontification, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex bdc5d0d 11/57: Add new style/mdframed.el, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 6c155cc 33/57: Refactor normal completion and completion at point a bit, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 7209776 46/57: Skip macros and environments from tcolorbox and raster library, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 7ef680c 52/57: Refresh RELEASE file, Tassilo Horn, 2017/01/11
- [elpa] externals/auctex 1354c70 44/57: Advertise AUCTeX installation from ELPA, Tassilo Horn, 2017/01/11