monnier pushed a commit to branch externals/auctex
in repository elpa.
commit 92a24e2d02e75ca9304a2ea219bcb8b6b03940cd
Author: Mosè Giordano <[email protected]>
Date: Sat Apr 6 20:18:07 2013 +0200
improve completion in LaTeX-arg-usepackage
* latex.el (LaTeX-provided-class-options-member): Fix typo.
(LaTeX-arg-usepackage): Provide completion for more than one
package in mandatory argument.
---
ChangeLog | 6 ++++
latex.el | 79 +++++++++++++++++++++++++++++++++++-------------------------
2 files changed, 52 insertions(+), 33 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 75ea747..bb742f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-04-06 Mos� Giordano <[email protected]>
+
+ * latex.el (LaTeX-provided-class-options-member): Fix typo.
+ (LaTeX-arg-usepackage): Provide completion for more than one
+ package in mandatory argument.
+
2013-04-05 Mos� Giordano <[email protected]>
* latex.el (LaTeX-global-class-files): New variable.
diff --git a/latex.el b/latex.el
index 2ebddef..be1083b 100644
--- a/latex.el
+++ b/latex.el
@@ -1336,7 +1336,7 @@ See also `LaTeX-provided-package-options'.")
(defun LaTeX-provided-class-options-member (class option)
"Return non-nil if OPTION has been given to CLASS at load time.
The value is actually the tail of the list of options given to CLASS."
- (member option (cdr (assoc package LaTeX-provided-class-options))))
+ (member option (cdr (assoc class LaTeX-provided-class-options))))
(defvar LaTeX-provided-package-options nil
"Alist of options provided to LaTeX packages.
@@ -1836,38 +1836,51 @@ OPTIONAL and IGNORE are ignored."
(defun LaTeX-arg-usepackage (optional)
"Insert arguments to usepackage.
OPTIONAL is ignored."
- (let ((TeX-file-extensions '("sty"))
- (TeX-arg-input-file-search (or TeX-arg-input-file-search 'ask)))
- (TeX-arg-input-file nil "Package")
- (save-excursion
- (search-backward-regexp "{\\(.*\\)}")
- (let* ((package (TeX-match-buffer 1))
- (var (intern (format "LaTeX-%s-package-options" package)))
- (crm-separator ",")
- (TeX-arg-opening-brace LaTeX-optop)
- (TeX-arg-closing-brace LaTeX-optcl)
- options)
- (if (or (and (boundp var)
- (listp (symbol-value var)))
- (fboundp var))
- (if (functionp var)
- (setq options (funcall var))
- (when (symbol-value var)
- (setq options
- (mapconcat 'identity
- (TeX-completing-read-multiple
- "Options: " (mapcar 'list (symbol-value var)))
- ","))))
- (setq options (read-string "Options: ")))
- (unless (zerop (length options))
- (let ((opts (LaTeX-listify-package-options options)))
- (TeX-add-to-alist 'LaTeX-provided-package-options
- (list (cons package opts))))
- (TeX-argument-insert options t)
- ;; When `babel' package is loaded with options, load also language
- ;; style files.
- (when (string-equal package "babel")
- (mapc 'TeX-run-style-hooks (LaTeX-babel-active-languages))))))))
+ (let* ((TeX-file-extensions '("sty"))
+ (crm-separator ",")
+ packages var options)
+ (unless TeX-global-input-files
+ (if (if (eq TeX-arg-input-file-search 'ask)
+ (not (y-or-n-p "Find packages yourself? "))
+ TeX-arg-input-file-search)
+ (progn
+ (message "Searching for LaTeX packages...")
+ (setq TeX-global-input-files
+ (mapcar 'list (TeX-search-files-by-type
+ 'texinputs 'global t t))))))
+ (setq packages (TeX-completing-read-multiple
+ "Packages: " TeX-global-input-files))
+ (mapc 'TeX-run-style-hooks packages)
+ (setq var (if (= 1 (length packages))
+ (intern (format "LaTeX-%s-package-options" (car packages)))
+ ;; Something like `\usepackage[options]{pkg1,pkg2,pkg3,...}' is
+ ;; allowed (provided that pkg1, pkg2, pkg3, ... accept same
+ ;; options). When there is more than one package, set `var' to
+ ;; a dummy value so next `if' enters else form.
+ t))
+ (if (or (and (boundp var)
+ (listp (symbol-value var)))
+ (fboundp var))
+ (if (functionp var)
+ (setq options (funcall var))
+ (when (symbol-value var)
+ (setq options
+ (mapconcat 'identity
+ (TeX-completing-read-multiple
+ "Options: " (mapcar 'list (symbol-value var)))
+ ","))))
+ (setq options (read-string "Options: ")))
+ (unless (zerop (length options))
+ (let ((opts (LaTeX-listify-package-options options)))
+ (mapc (lambda (elt)
+ (TeX-add-to-alist 'LaTeX-provided-package-options
+ (list (cons elt opts))))
+ packages))
+ (insert LaTeX-optop options LaTeX-optcl)
+ ;; When `babel' is loaded with options, load also language style files.
+ (when (member "babel" packages)
+ (mapc 'TeX-run-style-hooks (LaTeX-babel-active-languages))))
+ (insert TeX-grop (mapconcat 'identity packages ",") TeX-grcl)))
(defcustom LaTeX-search-files-type-alist
'((texinputs "${TEXINPUTS.latex}" ("tex/generic/" "tex/latex/")