[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 38a883d37c 17/30: Save regexp groups in style/mi
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex 38a883d37c 17/30: Save regexp groups in style/minted.el |
Date: |
Thu, 7 Dec 2023 03:51:08 -0500 (EST) |
branch: externals/auctex
commit 38a883d37c43f4841342ed3ef8d95040d7cfc010
Author: Arash Esbati <arash@gnu.org>
Commit: Arash Esbati <arash@gnu.org>
Save regexp groups in style/minted.el
* style/minted.el (LaTeX-minted-pygmentize-program): Add
docstring.
(LaTeX-minted-language-list, LaTeX-minted-style-list): Add
variables to `TeX-normal-mode-reset-list' so the variables aren't
reset upon regular re-parsing.
(LaTeX-minted-newmint-regexp): Extend regexp to cover all
\newmint* variations. Delete other regexp additions to the
parser.
(LaTeX-minted-auto-prepare, LaTeX-minted-auto-cleanup): Adjust
functions to the above regexp change.
(LaTeX-minted-add-syntactic-keywords-extra): Improve docstring.
("minted"): Don't add deleted regexp's to the parser.
Accept also braces as delimiters for \mint macro.
---
style/minted.el | 172 ++++++++++++++++++++++++++++----------------------------
1 file changed, 86 insertions(+), 86 deletions(-)
diff --git a/style/minted.el b/style/minted.el
index 2f39b782f6..10bc0b357c 100644
--- a/style/minted.el
+++ b/style/minted.el
@@ -176,10 +176,16 @@ prepends them to variable `LaTeX-minted-key-val-options'."
(push (list key colors) result))))
LaTeX-minted-key-val-options))
-(defvar LaTeX-minted-pygmentize-program (executable-find "pygmentize"))
+(defvar LaTeX-minted-pygmentize-program (executable-find "pygmentize")
+ "Absolute file name to pygmentize program.")
(defvar LaTeX-minted-language-list nil
- "List containing languages provided by pymentize program.")
+ "List containing languages provided by pymentize program.
+Initialized once at the first prompt for a Pygments language.
+May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.")
+
+;; Add the variable to `TeX-normal-mode-reset-list':
+(add-to-list 'TeX-normal-mode-reset-list 'LaTeX-minted-language-list)
(defun LaTeX-minted-language-list (&rest _ignored)
"Return a list of languages provided by pymentize program.
@@ -198,7 +204,12 @@ Update the variable `LaTeX-minted-language-list' if still
nil."
LaTeX-minted-language-list))))
(defvar LaTeX-minted-style-list nil
- "List containing styles provided by pymentize program.")
+ "List containing styles provided by pymentize program.
+Initialized once at the first prompt for a Pygments style.
+May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.")
+
+;; Add the variable to `TeX-normal-mode-reset-list':
+(add-to-list 'TeX-normal-mode-reset-list 'LaTeX-minted-style-list)
(defun LaTeX-minted-style-list (&rest _ignored)
"Return a list of styles provided by pymentize program.
@@ -216,91 +227,83 @@ Update the variable `LaTeX-minted-style-list' if still
nil."
(setq LaTeX-minted-style-list styles))
LaTeX-minted-style-list))))
-(defvar LaTeX-minted-auto-newminted nil)
-(defvar LaTeX-minted-newminted-regexp
- '("\\\\newminted\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}{[^}]*}"
- (1 2) LaTeX-minted-auto-newminted))
+(TeX-auto-add-type "minted-newmint" "LaTeX")
-(defvar LaTeX-minted-auto-newmint nil)
(defvar LaTeX-minted-newmint-regexp
- '("\\\\newmint\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}{[^}]*}"
- (1 2) LaTeX-minted-auto-newmint))
-
-(defvar LaTeX-minted-auto-newmintinline nil)
-(defvar LaTeX-minted-newmintinline-regexp
- '("\\\\newmintinline\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}{[^}]*}"
- (1 2) LaTeX-minted-auto-newmintinline))
-
-(defvar LaTeX-minted-auto-newmintedfile nil)
-(defvar LaTeX-minted-newmintedfile-regexp
- '("\\\\newmintedfile\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}{[^}]*}"
- (1 2) LaTeX-minted-auto-newmintedfile))
+
'("\\\\newmint\\(edfile\\|inline\\|ed\\)?\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}"
+ (2 3 1) LaTeX-auto-minted-newmint)
+ "Match the arguments of \\newmint* macros from minted package.")
(defun LaTeX-minted-auto-prepare ()
- (setq LaTeX-minted-auto-newminted nil
- LaTeX-minted-auto-newmint nil
- LaTeX-minted-auto-newmintinline nil
- LaTeX-minted-auto-newmintedfile nil
- LaTeX-minted-language-list nil
- LaTeX-minted-style-list nil))
+ "Reset `LaTeX-auto-minted-newmint' before parsing."
+ (setq LaTeX-auto-minted-newmint nil))
(defun LaTeX-minted-auto-cleanup ()
- ;; \newminted{lang}{opts} => new langcode and langcode* envs.
- ;; \newminted[envname]{lang}{opts} => new envname/envname* envs.
- (dolist (name-lang LaTeX-minted-auto-newminted)
- (let* ((env (if (> (length (car name-lang)) 0)
- (car name-lang)
- (concat (cadr name-lang) "code")))
- (env* (concat env "*")))
- (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))))
- (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)
- (add-to-list 'LaTeX-verbatim-environments-local env*)))
- ;; \newmint{foo}{opts} => \foo[key=vals]|code|
- ;; \newmint[macname]{foo}{opts} => \macname[key=vals]|code|
- (dolist (name-lang LaTeX-minted-auto-newmint)
- (let ((lang (if (> (length (car name-lang)) 0)
- (car name-lang)
- (cadr name-lang))))
- (add-to-list 'TeX-auto-symbol
- `(,lang [TeX-arg-key-val (LaTeX-minted-key-val-options)]
- TeX-arg-verb))
- (add-to-list 'LaTeX-verbatim-macros-with-delims-local lang)
- (when (and (fboundp 'font-latex-add-keywords)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords `((,lang "[")) 'textual))))
- ;; \newmintinline{foo}{opts} => \fooinline[key=vals]|code| or
- ;; \fooinline[key=vals]{code}
- ;; \newmintinline[macname]{foo}{opts} => \macname[key=vals]|code| or
- ;; \macname[key=vals]{code}
- (dolist (name-lang LaTeX-minted-auto-newmintinline)
- (let ((lang (if (> (length (car name-lang)) 0)
- (car name-lang)
- (concat (cadr name-lang) "inline"))))
- (add-to-list 'TeX-auto-symbol
- `(,lang [TeX-arg-key-val (LaTeX-minted-key-val-options)]
- TeX-arg-verb-delim-or-brace))
- (add-to-list 'LaTeX-verbatim-macros-with-delims-local lang)
- (add-to-list 'LaTeX-verbatim-macros-with-braces-local lang)
- (when (and (fboundp 'font-latex-add-keywords)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords `((,lang "[")) 'textual))))
- ;; \newmintedfile{foo}{opts} => \foofile[key=vals]{file-name}
- ;; \newmintedfile[macname]{foo}{opts} => \macname[key=vals]{file-name}
- (dolist (name-lang LaTeX-minted-auto-newmintedfile)
- (let ((lang (if (> (length (car name-lang)) 0)
- (car name-lang)
- (concat (cadr name-lang) "file"))))
- (add-to-list 'TeX-auto-symbol
- `(,lang [TeX-arg-key-val (LaTeX-minted-key-val-options)]
- TeX-arg-file))))
- (when (and (fboundp 'font-latex-set-syntactic-keywords)
+ "Process the parsed results from minted package."
+ (dolist (mint (LaTeX-minted-newmint-list))
+ (cond ((string= (nth 2 mint) "ed")
+ ;; \newminted{lang}{opts} => new langcode and langcode* envs.
+ ;; \newminted[envname]{lang}{opts} => new envname/envname* envs.
+ (let* ((env (if (string-empty-p (car mint))
+ (concat (cadr mint) "code")
+ (car mint)))
+ (env* (concat env "*")))
+ (LaTeX-add-environments (list env))
+ (LaTeX-add-environments (list env* #'LaTeX-env-args
+ '(TeX-arg-key-val
+ (LaTeX-minted-key-val-options))))
+ (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)
+ (add-to-list 'LaTeX-verbatim-environments-local env*)))
+ ;; \newmintinline{foo}{opts} => \fooinline[key=vals]|code| or
+ ;; \fooinline[key=vals]{code}
+ ;; \newmintinline[macname]{foo}{opts} => \macname[key=vals]|code| or
+ ;; \macname[key=vals]{code}
+ ((string= (nth 2 mint) "inline")
+ (let ((lang (if (string-empty-p (car mint))
+ (concat (cadr mint) "inline")
+ (car mint))))
+ (TeX-add-symbols `(,lang
+ [TeX-arg-key-val
(LaTeX-minted-key-val-options)]
+ TeX-arg-verb-delim-or-brace))
+ (add-to-list 'LaTeX-verbatim-macros-with-delims-local lang)
+ (add-to-list 'LaTeX-verbatim-macros-with-braces-local lang)
+ (when (and (fboundp 'font-latex-add-keywords)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords `((,lang "[")) 'textual))))
+ ;; \newmintedfile{foo}{opts} => \foofile[key=vals]{file-name}
+ ;; \newmintedfile[macname]{foo}{opts} =>
\macname[key=vals]{file-name}
+ ((string= (nth 2 mint) "edfile")
+ (let ((lang (if (string-empty-p (car mint))
+ (concat (cadr mint) "file")
+ (car mint))))
+ (TeX-add-symbols `(,lang
+ [TeX-arg-key-val
(LaTeX-minted-key-val-options)]
+ TeX-arg-file))))
+ ;; \newmint{foo}{opts} => \foo[key=vals]|code| or
+ ;; \foo[key=vals]{code}
+ ;; \newmint[macname]{foo}{opts} => \macname[key=vals]|code| or
+ ;; \macname[key=vals]{code}
+ (t
+ (let ((lang (if (string-empty-p (car mint))
+ (cadr mint)
+ (car mint))))
+ (TeX-add-symbols `(,lang
+ [TeX-arg-key-val
(LaTeX-minted-key-val-options)]
+ TeX-arg-verb-delim-or-brace))
+ (add-to-list 'LaTeX-verbatim-macros-with-delims-local lang)
+ (add-to-list 'LaTeX-verbatim-macros-with-braces-local lang)
+ (when (and (fboundp 'font-latex-add-keywords)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords `((,lang "[")) 'textual))))))
+ ;; Refresh font-locking so that the verbatim envs take effect only
+ ;; when there are defined shortcuts:
+ (when (and (LaTeX-minted-newmint-list)
+ (fboundp 'font-latex-set-syntactic-keywords)
(eq TeX-install-font-lock 'font-latex-setup))
- ;; Refresh font-locking so that the verbatim envs take effect.
(font-latex-set-syntactic-keywords)))
(add-hook 'TeX-auto-prepare-hook #'LaTeX-minted-auto-prepare t)
@@ -308,7 +311,7 @@ Update the variable `LaTeX-minted-style-list' if still nil."
(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
(defun LaTeX-minted-add-syntactic-keywords-extra (type macro)
- "Add MACRO from minted.sty to `font-latex-syntactic-keywords-extra'.
+ "Add TYPE of MACRO to `font-latex-syntactic-keywords-extra'.
TYPE is one of the symbols `brace' or `delim' indicating how
verbatim text is enclosed after the macro. MACRO is a string or
a list of strings."
@@ -356,7 +359,7 @@ a list of strings."
'("mint"
[TeX-arg-key-val (LaTeX-minted-key-val-options)]
(TeX-arg-completing-read (LaTeX-minted-language-list) "Language")
- TeX-arg-verb)
+ TeX-arg-verb-delim-or-brace)
'("mintinline"
[TeX-arg-key-val (LaTeX-minted-key-val-options)]
(TeX-arg-completing-read (LaTeX-minted-language-list) "Language")
@@ -417,10 +420,7 @@ a list of strings."
'(("listing" ?l "lst:" "~\\ref{%s}" caption nil nil)))))
;; Add to the auto parser
- (TeX-auto-add-regexp LaTeX-minted-newminted-regexp)
(TeX-auto-add-regexp LaTeX-minted-newmint-regexp)
- (TeX-auto-add-regexp LaTeX-minted-newmintinline-regexp)
- (TeX-auto-add-regexp LaTeX-minted-newmintedfile-regexp)
;; Filling
(add-to-list (make-local-variable 'LaTeX-indent-environment-list)
- [elpa] externals/auctex 26d64689d3 22/30: * style/titleps.el ("titleps"): Replace `TeX-arg-eval'., (continued)
- [elpa] externals/auctex 26d64689d3 22/30: * style/titleps.el ("titleps"): Replace `TeX-arg-eval'., Tassilo Horn, 2023/12/07
- [elpa] externals/auctex a5599695b0 15/30: Save regexp groups, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex d231ecdfcc 16/30: ; * font-latex.el (font-latex-built-in-keyword-classes): Add "par"., Tassilo Horn, 2023/12/07
- [elpa] externals/auctex a28f1d4ccb 27/30: Add completion support for \DeclareGraphicsExtensions, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex 88467618ad 11/30: ; * style/minted.el (LaTeX-fontenc-package-options): Pacify warning., Tassilo Horn, 2023/12/07
- [elpa] externals/auctex c196c69207 09/30: Update style/minted to package version 2.8, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex 8ae405b919 14/30: Save regexp groups, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex f22ced023d 24/30: * style/fvextra.el ("fvextra"): Track LaTeX package version 1.6., Tassilo Horn, 2023/12/07
- [elpa] externals/auctex 1792a41446 29/30: Move support for xparse macros into core, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex 3f7742f95b 18/30: Process lambda expressions correctly, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex 38a883d37c 17/30: Save regexp groups in style/minted.el,
Tassilo Horn <=
- [elpa] externals/auctex dfd0380d0f 07/30: Update style/newfloat.el to package version 1.2, Tassilo Horn, 2023/12/07
- [elpa] externals/auctex def388b90a 20/30: * style/pythontex.el ("pythontex"): Replace `TeX-arg-eval'., Tassilo Horn, 2023/12/07
- [elpa] externals/auctex d7da2ed8c2 26/30: ; * style/fvextra.el (LaTeX-fvextra-key-val-options): Add new keys., Tassilo Horn, 2023/12/07
- [elpa] externals/auctex efdc86af7c 23/30: * style/titletoc.el ("titletoc"): Replace `TeX-arg-eval'., Tassilo Horn, 2023/12/07