[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex d8c6f94 06/67: Improve style/fancyvrb.el
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex d8c6f94 06/67: Improve style/fancyvrb.el |
Date: |
Fri, 8 Feb 2019 11:40:28 -0500 (EST) |
branch: externals/auctex
commit d8c6f94eaa98cbcbf62fd915726544135c5faa04
Author: Arash Esbati <address@hidden>
Commit: Arash Esbati <address@hidden>
Improve style/fancyvrb.el
* style/fancyvrb.el (LaTeX-fancyvrb-arg-define-macro): Refactor
code. Cater for starred version of user defined macros. Add
missing `,' in backquote constructs.
(LaTeX-fancyvrb-arg-define-environment): Refactor code.
("fancyvrb"): Add \Verb* macro incl. fontification.
---
style/fancyvrb.el | 172 +++++++++++++++++++++++++++++-------------------------
1 file changed, 94 insertions(+), 78 deletions(-)
diff --git a/style/fancyvrb.el b/style/fancyvrb.el
index 3b33350..cc673f9 100644
--- a/style/fancyvrb.el
+++ b/style/fancyvrb.el
@@ -1,6 +1,6 @@
;;; fancyvrb.el --- AUCTeX style for `fancyvrb.sty' version 2.8.
-;; Copyright (C) 2013, 2014, 2016, 2017 Free Software Foundation, Inc.
+;; Copyright (C) 2013, 2014, 2016--2018 Free Software Foundation, Inc.
;; Maintainer: address@hidden
;; Author: Mosè Giordano <address@hidden>
@@ -193,21 +193,27 @@ CLEANUP is non-nil, do not insert any arguments in the
buffer and
update only various AUCTeX variables for verbatim macros. If
RECUSTOM is non-nil, delete macros from the variable
`TeX-symbol-list' before adding the new ones."
- (let ((new-mac (unless cleanup
- (if recustom
+ ;; This part is only relevant when called by user:
+ (unless cleanup
+ (let ((new-mac (if recustom
(completing-read
(TeX-argument-prompt optional nil "Verbatim macro: \\"
t)
(mapcar #'car (apply #'append
LaTeX-fancyvrb-macro-list)))
(TeX-read-string
- (TeX-argument-prompt optional nil "New verbatim macro:
\\" t)))))
- (base-mac (unless cleanup
- (completing-read (TeX-argument-prompt optional nil "Based
on macro")
- LaTeX-fancyvrb-base-macros)))
- (rec-flag (if recustom "Rec" "C")))
- ;; We are (re-)defining a macro: Insert user queried input and use
- ;; `LaTeX-add-fancyvrb-macros' on the input
- (unless cleanup
- (TeX-argument-insert new-mac optional TeX-esc)
+ (TeX-argument-prompt optional nil "New verbatim macro:
\\" t))))
+ (base-mac (completing-read (TeX-argument-prompt optional nil "Based
on macro")
+ LaTeX-fancyvrb-base-macros))
+ (rec-flag (if recustom "Rec" "C")))
+ ;; We are (re-)defining a macro: Insert user queried input and
+ ;; use `LaTeX-add-fancyvrb-macros' on the input. Do not enclose
+ ;; the first argument in braces as this will improve
+ ;; fontification. Otherwise, the part between 2 closing braces
+ ;; get fontified, i.e.:
+ ;; \CustomVerbatimCommand{\foo}{Verb}{}
+ ;; ^ ^
+ (let ((TeX-arg-opening-brace "")
+ (TeX-arg-closing-brace ""))
+ (TeX-argument-insert new-mac optional TeX-esc))
(TeX-argument-insert base-mac optional)
(TeX-argument-insert
(TeX-read-key-val optional LaTeX-fancyvrb-key-val-options-local)
optional)
@@ -268,13 +274,21 @@ RECUSTOM is non-nil, delete macros from the variable
;; Anything else is considered as verbatim typesetting macro:
(t
(TeX-add-symbols
- `(mac-name
+ `(,mac-name
+ [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ]
+ TeX-arg-verb)
+ ;; Defined macros have a starred version where the
+ ;; `showspaces' key is set to true
+ `(,(concat mac-name "*")
[ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ]
TeX-arg-verb))
- (add-to-list 'LaTeX-verbatim-macros-with-delims-local mac-name t)
+ (add-to-list 'LaTeX-verbatim-macros-with-delims-local
+ mac-name t)
+ (add-to-list 'LaTeX-verbatim-macros-with-delims-local
+ (concat mac-name "*") t)
(when (and (fboundp 'font-latex-add-keywords)
(fboundp 'font-latex-update-font-lock))
- (font-latex-add-keywords `((,mac-name "["))
+ (font-latex-add-keywords `((,mac-name "*["))
'textual))))))
;; Update font-lock:
(when (and (fboundp 'font-latex-add-keywords)
@@ -287,70 +301,70 @@ RECUSTOM is non-nil, delete macros from the variable
If OPTIONAL is non-nil, insert the arguments in brackets. If
CLEANUP is non-nil, do not insert any arguments in the buffer and
update only various AUCTeX variables for verbatim environments."
- (let ((new-env (unless cleanup
- (TeX-read-string
- (TeX-argument-prompt optional nil "New verbatim
environment"))))
- (base-env (unless cleanup
- (completing-read (TeX-argument-prompt optional nil "Based
on environment")
- LaTeX-fancyvrb-base-environments))))
- ;; We are defining a new env: First insert the arguments and the
- ;; run `LaTeX-add-fancyvrb-environments' on '(new-env base-env).
- ;; If base-env is SaveVerbatim, run
- ;; `LaTeX-add-fancyvrb-saveverbatims' on new-env as well.
- (unless cleanup
- (TeX-argument-insert (car new-env) optional)
+ (unless cleanup
+ (let ((new-env (TeX-read-string
+ (TeX-argument-prompt optional nil "New verbatim
environment")))
+ (base-env (completing-read
+ (TeX-argument-prompt optional nil "Based on environment")
+ LaTeX-fancyvrb-base-environments)))
+ ;; We are defining a new env: First insert the arguments and then
+ ;; run `LaTeX-add-fancyvrb-environments' on '(new-env base-env).
+ ;; If base-env is SaveVerbatim, run
+ ;; `LaTeX-add-fancyvrb-saveverbatims' on new-env as well.
+ (TeX-argument-insert new-env optional)
(TeX-argument-insert base-env optional)
(TeX-argument-insert
(TeX-read-key-val optional LaTeX-fancyvrb-key-val-options-local)
optional)
(LaTeX-add-fancyvrb-environments `(,new-env ,base-env))
(when (string= base-env "SaveVerbatim")
- (LaTeX-add-fancyvrb-saveverbatims new-env)))
- ;;
- ;; Now run the procdure:
- (dolist (elt (LaTeX-fancyvrb-environment-list))
- (let ((env (car elt))
- (type (cadr elt)))
- (cond ((string= type "VerbatimOut")
- (LaTeX-add-environments
- `(,env (lambda (env)
- (let ((options (TeX-read-key-val t
LaTeX-fancyvrb-key-val-options-local))
- (file (TeX-read-string "Output file: ")))
- (LaTeX-insert-environment
- env
- (concat
- (unless (zerop (length options))
- (concat LaTeX-optop options LaTeX-optcl))
- (concat TeX-grop file TeX-grcl))))))))
- ((string= type "SaveVerbatim")
- (TeX-auto-add-regexp `(,(concat "\\\\begin{"
- env
- "}"
-
LaTeX-fancyvrb-key-val-skip-regexp
- "{\\([^}]+\\)}")
- 1 LaTeX-auto-fancyvrb-saveverbatim)))
- (t
- ;; Regular verbatim environments have a starred
- ;; version; so add them here; the non-starred additions
- ;; to `LaTeX-verbatim-environments-local' and
- ;; `LaTeX-indent-environment-list' are done outside
- ;; (cond ...):
- (LaTeX-add-environments
- `(,env LaTeX-env-args
- [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local
]))
- (LaTeX-add-environments
- `(,(concat env "*") LaTeX-env-args
- [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ]))
- (add-to-list 'LaTeX-verbatim-environments-local (concat env "*"))
- (add-to-list 'LaTeX-indent-environment-list
- `(,(concat env "*") current-indentation) t)))
- ;; These apply for all environments defined:
- (add-to-list 'LaTeX-verbatim-environments-local env)
- (add-to-list 'LaTeX-indent-environment-list `(,env current-indentation)
t)))
- ;; Update font-lock:
- (when (and (fboundp 'font-latex-add-keywords)
- (fboundp 'font-latex-update-font-lock)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-update-font-lock t))))
+ (LaTeX-add-fancyvrb-saveverbatims new-env))))
+ ;;
+ ;; Now run the procdure:
+ (dolist (elt (LaTeX-fancyvrb-environment-list))
+ (let ((env (car elt))
+ (type (cadr elt)))
+ (cond ((string= type "VerbatimOut")
+ (LaTeX-add-environments
+ `(,env (lambda (env)
+ (let ((options (TeX-read-key-val
+ t LaTeX-fancyvrb-key-val-options-local))
+ (file (TeX-read-string "Output file: ")))
+ (LaTeX-insert-environment
+ env
+ (concat
+ (unless (zerop (length options))
+ (concat LaTeX-optop options LaTeX-optcl))
+ (concat TeX-grop file TeX-grcl))))))))
+ ((string= type "SaveVerbatim")
+ (TeX-auto-add-regexp `(,(concat "\\\\begin{"
+ env
+ "}"
+ LaTeX-fancyvrb-key-val-skip-regexp
+ "{\\([^}]+\\)}")
+ 1 LaTeX-auto-fancyvrb-saveverbatim)))
+ (t
+ ;; Regular verbatim environments have a starred
+ ;; version; so add them here; the non-starred additions
+ ;; to `LaTeX-verbatim-environments-local' and
+ ;; `LaTeX-indent-environment-list' are done outside
+ ;; (cond ...):
+ (LaTeX-add-environments
+ `(,env LaTeX-env-args
+ [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ]))
+ (LaTeX-add-environments
+ `(,(concat env "*") LaTeX-env-args
+ [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ]))
+ (add-to-list 'LaTeX-verbatim-environments-local (concat env "*"))
+ (add-to-list 'LaTeX-indent-environment-list
+ `(,(concat env "*") current-indentation) t)))
+ ;; These apply for all environments defined:
+ (add-to-list 'LaTeX-verbatim-environments-local env)
+ (add-to-list 'LaTeX-indent-environment-list `(,env current-indentation)
t)))
+ ;; Update font-lock:
+ (when (and (fboundp 'font-latex-add-keywords)
+ (fboundp 'font-latex-update-font-lock)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-update-font-lock t)))
(defun LaTeX-fancyvrb-arg-file-relative (optional)
"Query and insert a file name relative to current master file.
@@ -380,6 +394,8 @@ If OPTIONAL is non-nil, insert the file name in brackets."
"VerbatimFootnotes"
;; Improved verbatim commands
'("Verb" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]
TeX-arg-verb)
+ ;; \Verb also has a starred version:
+ '("Verb*" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]
TeX-arg-verb)
'("DefineShortVerb" (TeX-arg-eval
TeX-read-string
(TeX-argument-prompt optional nil "Character")
@@ -503,13 +519,14 @@ If OPTIONAL is non-nil, insert the file name in brackets."
(add-to-list 'LaTeX-indent-environment-list '("SaveVerbatim"
current-indentation) t)
(add-to-list 'LaTeX-indent-environment-list '("VerbatimOut"
current-indentation) t)
(add-to-list 'LaTeX-verbatim-macros-with-delims-local "Verb")
+ (add-to-list 'LaTeX-verbatim-macros-with-delims-local "Verb*")
;; Fontification
(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 '(("CustomVerbatimCommand" "{{{")
- ("RecustomVerbatimCommand" "{{{")
+ (font-latex-add-keywords '(("CustomVerbatimCommand" "|{\\{{")
+ ("RecustomVerbatimCommand" "|{\\{{")
("DefineVerbatimEnvironment" "{{{")
("RecustomVerbatimEnvironment" "{{{")
("DefineShortVerb" "{")
@@ -520,8 +537,7 @@ If OPTIONAL is non-nil, insert the file name in brackets."
("BVerbatimInput" "[{")
("LVerbatimInput" "[{"))
'reference)
- (font-latex-add-keywords '(("Verb" "[") ; The second argument should
- ; actually be verbatim.
+ (font-latex-add-keywords '(("Verb" "*[") ; The second argument is
verbatim.
("SaveVerb" "[{")
("UseVerb" "{")
("UseVerbatim" "{")
- [elpa] externals/auctex updated (eca4ffe -> f34ce5a), Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 2152678 04/67: Change regexp for clarity, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 1ea64ff 01/67: Extract caption for RefTeX's label context, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 0970844 02/67: Deal with partial ^^-quoting in preview-latex, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 3694373 05/67: Deal with space in path of MikTeX gs executable (Bug#32251), Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 10047fb 07/67: * style/fancyvrb.el (LaTeX-fancyvrb-key-val-options): Add vspace key., Tassilo Horn, 2019/02/08
- [elpa] externals/auctex c8a8d47 08/67: Don't block emacs during viewing document, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex f213b1b 10/67: Set `TeX-command-buffer' always (bug#33377), Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 06226ea 09/67: Adjust preview-latex in case sub file isn't in master directory, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex d8c6f94 06/67: Improve style/fancyvrb.el,
Tassilo Horn <=
- [elpa] externals/auctex 7ede3be 03/67: Make style hooks associated with class options valid again, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex dad0c60 11/67: Surround both \langle and \rangle with math delimiter, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 8d0e9cd 13/67: style/enumitem.el ("enumitem"): Use `TeX-argument-prompt' for query., Tassilo Horn, 2019/02/08
- [elpa] externals/auctex da4cb3d 14/67: Improve behavior of `TeX-arg-beamer-overlay-spec', Tassilo Horn, 2019/02/08
- [elpa] externals/auctex fd53670 19/67: Clean up remnants of previous removal of compatibility codes, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 866eae1 20/67: Remove references to XEmacs from the manual, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 32bc548 12/67: ; Fix typos and doc string, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 70a31c5 23/67: Remove compatibility codes for older emacsen, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 12f7a21 18/67: Add suggestions for non-privileged installation, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 8b5e53d 24/67: Remove unnecessary parentheses, Tassilo Horn, 2019/02/08