Mercurial > emacs
annotate lisp/textmodes/reftex-dcr.el @ 70222:c95a147129b4
(reftex-vref-is-default, reftex-fref-is-default, reftex-guess-label-type):
Tighten up a bit the safety predicate.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 26 Apr 2006 05:30:29 +0000 |
parents | bfd5c5e60410 |
children | 7f5b7fa0f836 34c8b755296d |
rev | line source |
---|---|
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37998
diff
changeset
|
1 ;;; reftex-dcr.el --- viewing cross references and citations with RefTeX |
68648
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65638
diff
changeset
|
2 ;; Copyright (C) 1997, 1998, 1999, 2000, 2003, 2004, 2005, |
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65638
diff
changeset
|
3 ;; 2006 Free Software Foundation, Inc. |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
4 |
46612
7522419c4db0
Updated to reftex 4.17
Carsten Dominik <dominik@science.uva.nl>
parents:
38422
diff
changeset
|
5 ;; Author: Carsten Dominik <dominik@science.uva.nl> |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
6 ;; Version: 4.31 |
27192
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27170
diff
changeset
|
7 ;; |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
8 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
9 ;; This file is part of GNU Emacs. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
10 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
11 ;; GNU Emacs is free software; you can redistribute it and/or modify |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
14 ;; any later version. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
15 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
16 ;; GNU Emacs is distributed in the hope that it will be useful, |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
19 ;; GNU General Public License for more details. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
20 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
65638
e274642bf5d5
Update FSF street address; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65583
diff
changeset
|
23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
e274642bf5d5
Update FSF street address; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65583
diff
changeset
|
24 ;; Boston, MA 02110-1301, USA. |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
25 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37998
diff
changeset
|
26 ;;; Commentary: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37998
diff
changeset
|
27 |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37998
diff
changeset
|
28 ;;; Code: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37998
diff
changeset
|
29 |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
30 (eval-when-compile (require 'cl)) |
27192
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27170
diff
changeset
|
31 (provide 'reftex-dcr) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
32 (provide 'reftex-vcr) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
33 (require 'reftex) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
34 ;;; |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
35 |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
36 (defun reftex-view-crossref (&optional arg auto-how fail-quietly) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
37 "View cross reference of macro at point. Point must be on the KEY |
36877
701567828afa
(reftex-view-crossref): Doc fix.
Andreas Schwab <schwab@suse.de>
parents:
34707
diff
changeset
|
38 argument. When at at `\\ref' macro, show corresponding `\\label' |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
39 definition, also in external documents (`xr'). When on a label, show |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
40 a locations where KEY is referenced. Subsequent calls find additional |
36877
701567828afa
(reftex-view-crossref): Doc fix.
Andreas Schwab <schwab@suse.de>
parents:
34707
diff
changeset
|
41 locations. When on a `\\cite', show the associated `\\bibitem' macro or |
701567828afa
(reftex-view-crossref): Doc fix.
Andreas Schwab <schwab@suse.de>
parents:
34707
diff
changeset
|
42 the BibTeX database entry. When on a `\\bibitem', show a `\\cite' macro |
701567828afa
(reftex-view-crossref): Doc fix.
Andreas Schwab <schwab@suse.de>
parents:
34707
diff
changeset
|
43 which uses this KEY. When on an `\\index', show other locations marked |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
44 by the same index entry. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
45 To define additional cross referencing items, use the option |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
46 `reftex-view-crossref-extra'. See also `reftex-view-crossref-from-bibtex'. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
47 With one or two C-u prefixes, enforce rescanning of the document. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
48 With argument 2, select the window showing the cross reference. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
49 AUTO-HOW is only for the automatic crossref display and is handed through |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
50 to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'." |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
51 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
52 (interactive "P") |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
53 ;; See where we are. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
54 (let* ((macro (car (reftex-what-macro-safe 1))) |
34707
315a42c87d8d
(reftex-view-crossref): added SPACE and TAB as key separators.
Carsten Dominik <dominik@science.uva.nl>
parents:
34402
diff
changeset
|
55 (key (reftex-this-word "^{}%\n\r, \t")) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
56 dw) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
57 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
58 (if (or (null macro) (reftex-in-comment)) |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
59 (or fail-quietly |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
60 (error "Not on a crossref macro argument")) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
61 |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
62 (setq reftex-call-back-to-this-buffer (current-buffer)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
63 |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
64 (cond |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
65 ((string-match "\\`\\\\cite\\|cite\\*?\\'\\|bibentry" macro) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
66 ;; A citation macro: search for bibitems or BibTeX entries |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
67 (setq dw (reftex-view-cr-cite arg key auto-how))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
68 ((string-match "\\`\\\\ref\\|ref\\(range\\)?\\*?\\'" macro) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
69 ;; A reference macro: search for labels |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
70 (setq dw (reftex-view-cr-ref arg key auto-how))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
71 (auto-how nil) ;; No further action for automatic display (speed) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
72 ((or (equal macro "\\label") |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
73 (member macro reftex-macros-with-labels)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
74 ;; A label macro: search for reference macros |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
75 (reftex-access-scan-info arg) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
76 (setq dw (reftex-view-regexp-match |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
77 (format reftex-find-reference-format (regexp-quote key)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
78 4 nil nil))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
79 ((equal macro "\\bibitem") |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
80 ;; A bibitem macro: search for citations |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
81 (reftex-access-scan-info arg) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
82 (setq dw (reftex-view-regexp-match |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
83 (format reftex-find-citation-regexp-format (regexp-quote key)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
84 4 nil nil))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
85 ((member macro reftex-macros-with-index) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
86 (reftex-access-scan-info arg) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
87 (setq dw (reftex-view-regexp-match |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
88 (format reftex-find-index-entry-regexp-format |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
89 (regexp-quote key)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
90 3 nil nil))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
91 (t |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
92 (reftex-access-scan-info arg) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
93 (catch 'exit |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
94 (let ((list reftex-view-crossref-extra) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
95 entry mre action group) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
96 (while (setq entry (pop list)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
97 (setq mre (car entry) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
98 action (nth 1 entry) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
99 group (nth 2 entry)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
100 (when (string-match mre macro) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
101 (setq dw (reftex-view-regexp-match |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
102 (format action key) group nil nil)) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
103 (throw 'exit t)))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
104 (error "Not on a crossref macro argument")))) |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
105 (if (and (eq arg 2) (windowp dw)) (select-window dw))))) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
106 |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
107 (defun reftex-view-cr-cite (arg key how) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
108 ;; View crossreference of a ref cite. HOW can have the values |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
109 ;; nil: Show in another window. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
110 ;; echo: Show one-line info in echo area. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
111 ;; tmp-window: Show in small window and arrange for window to disappear. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
112 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
113 ;; Ensure access to scanning info |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
114 (reftex-access-scan-info (or arg current-prefix-arg)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
115 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
116 (if (eq how 'tmp-window) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
117 ;; Remember the window configuration |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
118 (put 'reftex-auto-view-crossref 'last-window-conf |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
119 (current-window-configuration))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
120 |
46973
11e08f9901ea
Update to RefTeX 4.18
Carsten Dominik <dominik@science.uva.nl>
parents:
46683
diff
changeset
|
121 (let (files size item (pos (point)) (win (selected-window)) pop-win |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
122 (bibtype (reftex-bib-or-thebib))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
123 ;; Find the citation mode and the file list |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
124 (cond |
46973
11e08f9901ea
Update to RefTeX 4.18
Carsten Dominik <dominik@science.uva.nl>
parents:
46683
diff
changeset
|
125 ; ((assq 'bib (symbol-value reftex-docstruct-symbol)) |
11e08f9901ea
Update to RefTeX 4.18
Carsten Dominik <dominik@science.uva.nl>
parents:
46683
diff
changeset
|
126 ((eq bibtype 'bib) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
127 (setq item nil |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
128 files (reftex-get-bibfile-list))) |
46973
11e08f9901ea
Update to RefTeX 4.18
Carsten Dominik <dominik@science.uva.nl>
parents:
46683
diff
changeset
|
129 ; ((assq 'thebib (symbol-value reftex-docstruct-symbol)) |
11e08f9901ea
Update to RefTeX 4.18
Carsten Dominik <dominik@science.uva.nl>
parents:
46683
diff
changeset
|
130 ((eq bibtype 'thebib) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
131 (setq item t |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
132 files (reftex-uniquify |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
133 (mapcar 'cdr |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
134 (reftex-all-assq |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
135 'thebib (symbol-value reftex-docstruct-symbol)))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
136 (reftex-default-bibliography |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
137 (setq item nil |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
138 files (reftex-default-bibliography))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
139 (how) ;; don't throw for special display |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
140 (t (error "Cannot display crossref"))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
141 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
142 (if (eq how 'echo) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
143 ;; Display in Echo area |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
144 (reftex-echo-cite key files item) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
145 ;; Display in a window |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
146 (if (not (eq how 'tmp-window)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
147 ;; Normal display |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
148 (reftex-pop-to-bibtex-entry key files nil t item) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
149 ;; A temporary window |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
150 (condition-case nil |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
151 (reftex-pop-to-bibtex-entry key files nil t item) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
152 (error (goto-char pos) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
153 (message "cite: no such citation key %s" key) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
154 (error ""))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
155 ;; Resize the window |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
156 (setq size (max 1 (count-lines (point) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
157 (reftex-end-of-bib-entry item)))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
158 (let ((window-min-height 2)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
159 (shrink-window (1- (- (window-height) size))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
160 (recenter 0)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
161 ;; Arrange restoration |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
162 (add-hook 'pre-command-hook 'reftex-restore-window-conf)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
163 |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
164 ;; Normal display in other window |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
165 (add-hook 'pre-command-hook 'reftex-highlight-shall-die) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
166 (setq pop-win (selected-window)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
167 (select-window win) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
168 (goto-char pos) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
169 (when (equal arg 2) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
170 (select-window pop-win))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
171 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
172 (defun reftex-view-cr-ref (arg label how) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
173 ;; View crossreference of a ref macro. HOW can have the values |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
174 ;; nil: Show in another window. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
175 ;; echo: Show one-line info in echo area. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
176 ;; tmp-window: Show in small window and arrange for window to disappear. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
177 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
178 ;; Ensure access to scanning info |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
179 (reftex-access-scan-info (or arg current-prefix-arg)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
180 |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
181 (if (eq how 'tmp-window) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
182 ;; Remember the window configuration |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
183 (put 'reftex-auto-view-crossref 'last-window-conf |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
184 (current-window-configuration))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
185 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
186 (let* ((xr-data (assoc 'xr (symbol-value reftex-docstruct-symbol))) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
187 (xr-re (nth 2 xr-data)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
188 (entry (assoc label (symbol-value reftex-docstruct-symbol))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
189 (win (selected-window)) pop-win (pos (point))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
190 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
191 (if (and (not entry) (stringp label) xr-re (string-match xr-re label)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
192 ;; Label is defined in external document |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
193 (save-excursion |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
194 (save-match-data |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
195 (set-buffer |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
196 (or (reftex-get-file-buffer-force |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
197 (cdr (assoc (match-string 1 label) (nth 1 |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
198 xr-data)))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
199 (error "Problem with external label %s" label)))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
200 (setq label (substring label (match-end 1))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
201 (reftex-access-scan-info) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
202 (setq entry |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
203 (assoc label (symbol-value reftex-docstruct-symbol))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
204 (if (eq how 'echo) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
205 ;; Display in echo area |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
206 (reftex-echo-ref label entry (symbol-value reftex-docstruct-symbol)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
207 (let ((window-conf (current-window-configuration))) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
208 (condition-case nil |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
209 (reftex-show-label-location entry t nil t t) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
210 (error (set-window-configuration window-conf) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
211 (message "ref: Label %s not found" label) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
212 (error "ref: Label %s not found" label)))) ;; 2nd is line OK |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
213 (add-hook 'pre-command-hook 'reftex-highlight-shall-die) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
214 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
215 (when (eq how 'tmp-window) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
216 ;; Resize window and arrange restauration |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
217 (shrink-window (1- (- (window-height) 9))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
218 (recenter '(4)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
219 (add-hook 'pre-command-hook 'reftex-restore-window-conf)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
220 (setq pop-win (selected-window)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
221 (select-window win) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
222 (goto-char pos) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
223 (when (equal arg 2) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
224 (select-window pop-win))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
225 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
226 (defun reftex-mouse-view-crossref (ev) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
227 "View cross reference of \\ref or \\cite macro where you click. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
228 If the macro at point is a \\ref, show the corresponding label definition. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
229 If it is a \\cite, show the BibTeX database entry. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
230 If there is no such macro at point, search forward to find one. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
231 With argument, actually select the window showing the cross reference." |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
232 (interactive "e") |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
233 (mouse-set-point ev) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
234 (reftex-view-crossref current-prefix-arg)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
235 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
236 (defun reftex-view-crossref-when-idle () |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
237 ;; Display info about crossref at point in echo area or a window. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
238 ;; This function was desigend to work with an idle timer. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
239 ;; We try to get out of here as quickly as possible if the call is useless. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
240 (and reftex-mode |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
241 ;; Make sure message area is free if we need it. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
242 (or (eq reftex-auto-view-crossref 'window) (not (current-message))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
243 ;; Make sure we are not already displaying this one |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
244 (not (memq last-command '(reftex-view-crossref |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
245 reftex-mouse-view-crossref))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
246 ;; Quick precheck if this might be a relevant spot |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
247 ;; `reftex-view-crossref' will do a more thorough check. |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
248 (save-excursion |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
249 (search-backward "\\" nil t) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
250 (looking-at "\\\\[a-zA-Z]*\\(cite\\|ref\\|bibentry\\)")) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
251 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
252 (condition-case nil |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
253 (let ((current-prefix-arg nil)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
254 (cond |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
255 ((eq reftex-auto-view-crossref t) |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
256 (reftex-view-crossref -1 'echo 'quiet)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
257 ((eq reftex-auto-view-crossref 'window) |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
258 (reftex-view-crossref -1 'tmp-window 'quiet)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
259 (t nil))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
260 (error nil)))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
261 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
262 (defun reftex-restore-window-conf () |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
263 (set-window-configuration (get 'reftex-auto-view-crossref 'last-window-conf)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
264 (put 'reftex-auto-view-crossref 'last-window-conf nil) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
265 (remove-hook 'pre-command-hook 'reftex-restore-window-conf)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
266 |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
267 (defun reftex-echo-ref (label entry docstruct) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
268 ;; Display crossref info in echo area. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
269 (cond |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
270 ((null docstruct) |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
271 (message "%s" |
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
272 (substitute-command-keys (format reftex-no-info-message "ref")))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
273 ((null entry) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
274 (message "ref: unknown label: %s" label)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
275 (t |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
276 (when (stringp (nth 2 entry)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
277 (message "ref(%s): %s" (nth 1 entry) (nth 2 entry))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
278 (let ((buf (get-buffer " *Echo Area*"))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
279 (when buf |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
280 (save-excursion |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
281 (set-buffer buf) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
282 (run-hooks 'reftex-display-copied-context-hook))))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
283 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
284 (defun reftex-echo-cite (key files item) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
285 ;; Display citation info in echo area. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
286 (let* ((cache (assq 'bibview-cache (symbol-value reftex-docstruct-symbol))) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
287 (cache-entry (assoc key (cdr cache))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
288 entry string buf (all-files files)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
289 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
290 (if (and reftex-cache-cite-echo cache-entry) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
291 ;; We can just use the cache |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
292 (setq string (cdr cache-entry)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
293 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
294 ;; Need to look in the database |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
295 (unless reftex-revisit-to-echo |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
296 (setq files (reftex-visited-files files))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
297 |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
298 (setq entry |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
299 (condition-case nil |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
300 (save-excursion |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
301 (reftex-pop-to-bibtex-entry key files nil nil item t)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
302 (error |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
303 (if (and files (= (length all-files) (length files))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
304 (message "cite: no such database entry: %s" key) |
65583
703495630901
Message format spec fixes (2)
Deepak Goel <deego@gnufans.org>
parents:
65548
diff
changeset
|
305 (message "%s" (substitute-command-keys |
69094
bfd5c5e60410
Version number change only
Carsten Dominik <dominik@science.uva.nl>
parents:
68648
diff
changeset
|
306 (format reftex-no-info-message "cite")))) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
307 nil))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
308 (when entry |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
309 (if item |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
310 (setq string (reftex-nicify-text entry)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
311 (setq string (reftex-make-cite-echo-string |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
312 (reftex-parse-bibtex-entry entry) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
313 reftex-docstruct-symbol))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
314 (unless (or (null string) (equal string "")) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
315 (message "cite: %s" string)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
316 (when (setq buf (get-buffer " *Echo Area*")) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
317 (save-excursion |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
318 (set-buffer buf) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
319 (run-hooks 'reftex-display-copied-context-hook))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
320 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
321 (defvar reftex-use-itimer-in-xemacs nil |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
322 "*Non-nil means use the idle timers in XEmacs for crossref display. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
323 Currently, idle timer restart is broken and we use the post-command-hook.") |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
324 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
325 (defun reftex-toggle-auto-view-crossref () |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
326 "Toggle the automatic display of crossref information in the echo area. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
327 When active, leaving point idle in the argument of a \\ref or \\cite macro |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
328 will display info in the echo area." |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
329 (interactive) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
330 (if reftex-auto-view-crossref-timer |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
331 (progn |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
332 (if (featurep 'xemacs) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
333 (if reftex-use-itimer-in-xemacs |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
334 (delete-itimer reftex-auto-view-crossref-timer) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
335 (remove-hook 'post-command-hook 'reftex-start-itimer-once)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
336 (cancel-timer reftex-auto-view-crossref-timer)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
337 (setq reftex-auto-view-crossref-timer nil) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
338 (message "Automatic display of crossref information was turned off")) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
339 (setq reftex-auto-view-crossref-timer |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
340 (if (featurep 'xemacs) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
341 (if reftex-use-itimer-in-xemacs |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
342 (start-itimer "RefTeX Idle Timer" |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
343 'reftex-view-crossref-when-idle |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
344 reftex-idle-time reftex-idle-time t) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
345 (add-hook 'post-command-hook 'reftex-start-itimer-once) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
346 t) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
347 (run-with-idle-timer |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
348 reftex-idle-time t 'reftex-view-crossref-when-idle))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
349 (unless reftex-auto-view-crossref |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
350 (setq reftex-auto-view-crossref t)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
351 (message "Automatic display of crossref information was turned on"))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
352 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
353 (defun reftex-start-itimer-once () |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
354 (and reftex-mode |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
355 (not (itimer-live-p reftex-auto-view-crossref-timer)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
356 (setq reftex-auto-view-crossref-timer |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
357 (start-itimer "RefTeX Idle Timer" |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
358 'reftex-view-crossref-when-idle |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
359 reftex-idle-time nil t)))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
360 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
361 (defun reftex-view-crossref-from-bibtex (&optional arg) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
362 "View location in a LaTeX document which cites the BibTeX entry at point. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
363 Since BibTeX files can be used by many LaTeX documents, this function |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
364 prompts upon first use for a buffer in RefTeX mode. To reset this |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
365 link to a document, call the function with with a prefix arg. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
366 Calling this function several times find successive citation locations." |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
367 (interactive "P") |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
368 (when arg |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
369 ;; Break connection to reference buffer |
29775
31536c6cf2e3
* textmodes/reftex.el (reftex-find-citation-regexp-format):
Carsten Dominik <dominik@science.uva.nl>
parents:
27604
diff
changeset
|
370 (put 'reftex-bibtex-view-cite-locations :ref-buffer nil)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
371 (let ((ref-buffer (get 'reftex-bibtex-view-cite-locations :ref-buffer))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
372 ;; Establish connection to reference buffer |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
373 (unless ref-buffer |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
374 (setq ref-buffer |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
375 (save-excursion |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
376 (completing-read |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
377 "Reference buffer: " |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
378 (delq nil |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
379 (mapcar |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
380 (lambda (b) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
381 (set-buffer b) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
382 (if reftex-mode (list (buffer-name b)) nil)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
383 (buffer-list))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
384 nil t))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
385 (put 'reftex-bibtex-view-cite-locations :ref-buffer ref-buffer)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
386 ;; Search for citations |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
387 (bibtex-beginning-of-entry) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
388 (if (looking-at |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
389 "@[a-zA-Z]+[ \t\n\r]*[{(][ \t\n\r]*\\([^, \t\r\n}]+\\)") |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
390 (progn |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
391 (goto-char (match-beginning 1)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
392 (reftex-view-regexp-match |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
393 (format reftex-find-citation-regexp-format |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
394 (regexp-quote (match-string 1))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
395 4 arg ref-buffer)) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
396 (error "Cannot find citation key in BibTeX entry")))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
397 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
398 (defun reftex-view-regexp-match (re &optional highlight-group new ref-buffer) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
399 ;; Search for RE in current document or in the document of REF-BUFFER. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
400 ;; Continue the search, if the same re was searched last. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
401 ;; Highlight the group HIGHLIGHT-GROUP of the match. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
402 ;; When NEW is non-nil, start a new search regardless. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
403 ;; Match point is displayed in another window. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
404 ;; Upon success, returns the window which displays the match. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
405 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
406 ;;; Decide if new search or continued search |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
407 (let* ((oldprop (get 'reftex-view-regexp-match :props)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
408 (newprop (list (current-buffer) re)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
409 (cont (and (not new) (equal oldprop newprop))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
410 (cnt (if cont (get 'reftex-view-regexp-match :cnt) 0)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
411 (current-window (selected-window)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
412 (window-conf (current-window-configuration)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
413 match pop-window) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
414 (switch-to-buffer-other-window (or ref-buffer (current-buffer))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
415 ;; Search |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
416 (condition-case nil |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
417 (if cont |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
418 (setq match (reftex-global-search-continue)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
419 (reftex-access-scan-info) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
420 (setq match (reftex-global-search re (reftex-all-document-files)))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
421 (error nil)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
422 ;; Evaluate the match. |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
423 (if match |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
424 (progn |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
425 (put 'reftex-view-regexp-match :props newprop) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
426 (put 'reftex-view-regexp-match :cnt (incf cnt)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
427 (reftex-highlight 0 (match-beginning highlight-group) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
428 (match-end highlight-group)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
429 (add-hook 'pre-command-hook 'reftex-highlight-shall-die) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
430 (setq pop-window (selected-window))) |
29775
31536c6cf2e3
* textmodes/reftex.el (reftex-find-citation-regexp-format):
Carsten Dominik <dominik@science.uva.nl>
parents:
27604
diff
changeset
|
431 (put 'reftex-view-regexp-match :props nil) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
432 (or cont (set-window-configuration window-conf))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
433 (select-window current-window) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
434 (if match |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
435 (progn |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
436 (message "Match Nr. %s" cnt) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
437 pop-window) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
438 (if cont |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
439 (error "No further matches (total number of matches: %d)" cnt) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
440 (error "No matches"))))) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
441 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
442 (defvar reftex-global-search-marker (make-marker)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
443 (defun reftex-global-search (regexp file-list) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
444 ;; Start a search for REGEXP in all files of FILE-LIST |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
445 (put 'reftex-global-search :file-list file-list) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
446 (put 'reftex-global-search :regexp regexp) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
447 (move-marker reftex-global-search-marker nil) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
448 (reftex-global-search-continue)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
449 |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
450 (defun reftex-global-search-continue () |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
451 ;; Continue a global search started with `reftex-global-search' |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
452 (unless (get 'reftex-global-search :file-list) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
453 (error "No global search to continue")) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
454 (let* ((file-list (get 'reftex-global-search :file-list)) |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
455 (regexp (get 'reftex-global-search :regexp)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
456 (buf (or (marker-buffer reftex-global-search-marker) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
457 (reftex-get-file-buffer-force (car file-list)))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
458 (pos (or (marker-position reftex-global-search-marker) 1)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
459 file) |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
460 ;; Take up starting position |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
461 (unless buf (error "No such buffer %s" buf)) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
462 (switch-to-buffer buf) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
463 (widen) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
464 (goto-char pos) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
465 ;; Search and switch file if necessary |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
466 (if (catch 'exit |
52170
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
467 (while t |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
468 (when (re-search-forward regexp nil t) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
469 (move-marker reftex-global-search-marker (point)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
470 (throw 'exit t)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
471 ;; No match - goto next file |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
472 (pop file-list) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
473 (or file-list (throw 'exit nil)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
474 (setq file (car file-list) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
475 buf (reftex-get-file-buffer-force file)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
476 (unless buf (error "Cannot access file %s" file)) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
477 (put 'reftex-global-search :file-list file-list) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
478 (switch-to-buffer buf) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
479 (widen) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
480 (goto-char 1))) |
27340819ef07
Updated to version 4.21
Carsten Dominik <dominik@science.uva.nl>
parents:
49599
diff
changeset
|
481 t |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
482 (move-marker reftex-global-search-marker nil) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
483 (error "All files processed")))) |
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
484 |
52401 | 485 ;;; arch-tag: d2f52b56-744e-44ad-830d-1fc193b90eda |
27170
3cba3e588544
renamed reftex-vcr.el to reftex-dcr.el
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
486 ;;; reftex-dcr.el ends here |