diff options
| -rw-r--r-- | lisp/textmodes/reftex-cite.el | 52 |
1 files changed, 24 insertions, 28 deletions
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el index 8f3f2ccd061..a35d41109e6 100644 --- a/lisp/textmodes/reftex-cite.el +++ b/lisp/textmodes/reftex-cite.el | |||
| @@ -177,6 +177,28 @@ If RETURN is non-nil, just return the entry and restore point." | |||
| 177 | (progn (forward-list 1) (point))) | 177 | (progn (forward-list 1) (point))) |
| 178 | (error (min (point-max) (+ 300 (point))))))) | 178 | (error (min (point-max) (+ 300 (point))))))) |
| 179 | 179 | ||
| 180 | (defun reftex--query-search-regexps (default) | ||
| 181 | "Query for regexps for searching entries using DEFAULT as default. | ||
| 182 | Return a list of regular expressions." | ||
| 183 | (split-string | ||
| 184 | (completing-read | ||
| 185 | (concat | ||
| 186 | "Regex { && Regex...}: " | ||
| 187 | "[" default "]: ") | ||
| 188 | ;; Ensure default is always in the completion list. | ||
| 189 | (let ((def (when default (list default))) | ||
| 190 | (coll (if reftex-mode | ||
| 191 | (if (fboundp 'LaTeX-bibitem-list) | ||
| 192 | (LaTeX-bibitem-list) | ||
| 193 | (cdr (assoc 'bibview-cache | ||
| 194 | (symbol-value reftex-docstruct-symbol)))) | ||
| 195 | nil))) | ||
| 196 | (if (and def (member def coll)) | ||
| 197 | coll | ||
| 198 | (cons def coll))) | ||
| 199 | nil nil nil 'reftex-cite-regexp-hist) | ||
| 200 | "[ \t]*&&[ \t]*")) | ||
| 201 | |||
| 180 | ;;; Parse bibtex buffers | 202 | ;;; Parse bibtex buffers |
| 181 | (defun reftex-extract-bib-entries (buffers) | 203 | (defun reftex-extract-bib-entries (buffers) |
| 182 | "Extract bib entries which match regexps from BUFFERS. | 204 | "Extract bib entries which match regexps from BUFFERS. |
| @@ -189,20 +211,7 @@ Return list with entries." | |||
| 189 | 211 | ||
| 190 | ;; Read a regexp, completing on known citation keys. | 212 | ;; Read a regexp, completing on known citation keys. |
| 191 | (setq default (regexp-quote (reftex-get-bibkey-default))) | 213 | (setq default (regexp-quote (reftex-get-bibkey-default))) |
| 192 | (setq re-list | 214 | (setq re-list (reftex--query-search-regexps default)) |
| 193 | (split-string | ||
| 194 | (completing-read | ||
| 195 | (concat | ||
| 196 | "Regex { && Regex...}: " | ||
| 197 | "[" default "]: ") | ||
| 198 | (if reftex-mode | ||
| 199 | (if (fboundp 'LaTeX-bibitem-list) | ||
| 200 | (or (LaTeX-bibitem-list) '("")) | ||
| 201 | (cdr (assoc 'bibview-cache | ||
| 202 | (symbol-value reftex-docstruct-symbol)))) | ||
| 203 | nil) | ||
| 204 | nil nil nil 'reftex-cite-regexp-hist) | ||
| 205 | "[ \t]*&&[ \t]*")) | ||
| 206 | 215 | ||
| 207 | (if (or (null re-list ) (equal re-list '(""))) | 216 | (if (or (null re-list ) (equal re-list '(""))) |
| 208 | (setq re-list (list default))) | 217 | (setq re-list (list default))) |
| @@ -394,20 +403,7 @@ The environment should be located in FILES." | |||
| 394 | 403 | ||
| 395 | ;; Read a regexp, completing on known citation keys. | 404 | ;; Read a regexp, completing on known citation keys. |
| 396 | (setq default (regexp-quote (reftex-get-bibkey-default))) | 405 | (setq default (regexp-quote (reftex-get-bibkey-default))) |
| 397 | (setq re-list | 406 | (setq re-list (reftex--query-search-regexps default)) |
| 398 | (split-string | ||
| 399 | (completing-read | ||
| 400 | (concat | ||
| 401 | "Regex { && Regex...}: " | ||
| 402 | "[" default "]: ") | ||
| 403 | (if reftex-mode | ||
| 404 | (if (fboundp 'LaTeX-bibitem-list) | ||
| 405 | (LaTeX-bibitem-list) | ||
| 406 | (cdr (assoc 'bibview-cache | ||
| 407 | (symbol-value reftex-docstruct-symbol)))) | ||
| 408 | nil) | ||
| 409 | nil nil nil 'reftex-cite-regexp-hist) | ||
| 410 | "[ \t]*&&[ \t]*")) | ||
| 411 | 407 | ||
| 412 | (if (or (null re-list ) (equal re-list '(""))) | 408 | (if (or (null re-list ) (equal re-list '(""))) |
| 413 | (setq re-list (list default))) | 409 | (setq re-list (list default))) |