Mercurial > emacs
annotate lisp/textmodes/reftex-index.el @ 37678:ebec0594dece
(compile-files): Redirect output of chmod to
/dev/null.
| author | Gerd Moellmann <gerd@gnu.org> |
|---|---|
| date | Fri, 11 May 2001 10:53:56 +0000 |
| parents | 5eec8d1d09f0 |
| children | 706af946b1e7 |
| rev | line source |
|---|---|
| 25280 | 1 ;;; reftex-index.el - Index support with RefTeX |
|
27192
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27035
diff
changeset
|
2 ;; Copyright (c) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. |
| 27035 | 3 |
| 4 ;; Author: Carsten Dominik <dominik@strw.LeidenUniv.nl> | |
|
34402
5eec8d1d09f0
Update to RefTeX 4.15, see ChangeLog for details
Carsten Dominik <dominik@science.uva.nl>
parents:
29775
diff
changeset
|
5 ;; Version: 4.15 |
|
27192
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27035
diff
changeset
|
6 ;; |
| 27035 | 7 |
| 8 ;; This file is part of GNU Emacs. | |
| 9 | |
| 10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
| 11 ;; it under the terms of the GNU General Public License as published by | |
| 12 ;; the Free Software Foundation; either version 2, or (at your option) | |
| 13 ;; any later version. | |
| 14 | |
| 15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
| 16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 ;; GNU General Public License for more details. | |
| 19 | |
| 20 ;; You should have received a copy of the GNU General Public License | |
| 21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
| 22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 23 ;; Boston, MA 02111-1307, USA. | |
| 25280 | 24 |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
25 (eval-when-compile (require 'cl)) |
| 25280 | 26 (provide 'reftex-index) |
| 27 (require 'reftex) | |
| 28 ;;; | |
| 29 | |
| 30 (defvar mark-active) | |
| 31 (defvar zmacs-regions) | |
|
25802
4c4fabd16782
Version number change
Carsten Dominik <dominik@science.uva.nl>
parents:
25280
diff
changeset
|
32 (defvar transient-mark-mode) |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
33 (defun reftex-index-selection-or-word (&optional arg phrase) |
| 25280 | 34 "Put selection or the word near point into the default index macro. |
| 35 This uses the information in `reftex-index-default-macro' to make an index | |
| 36 entry. The phrase indexed is the current selection or the word near point. | |
| 37 When called with one `C-u' prefix, let the user have a chance to edit the | |
| 38 index entry. When called with 2 `C-u' as prefix, also ask for the index | |
| 39 macro and other stuff. | |
| 40 When called inside TeX math mode as determined by the `texmathp.el' library | |
| 41 which is part of AUCTeX, the string is first processed with the | |
| 42 `reftex-index-math-format', which see." | |
| 43 (interactive "P") | |
| 44 (let* ((use-default (not (equal arg '(16)))) ; check for double prefix | |
| 45 ;; check if we have an active selection | |
| 46 (active (if (boundp 'zmacs-regions) | |
| 47 (and zmacs-regions (region-exists-p)) ; XEmacs | |
| 48 (and transient-mark-mode mark-active))) ; Emacs | |
| 49 (beg (if active | |
| 50 (region-beginning) | |
| 51 (save-excursion | |
| 52 (skip-syntax-backward "w\\") (point)))) | |
| 53 (end (if active | |
| 54 (region-end) | |
| 55 (save-excursion | |
| 56 (skip-syntax-forward "w\\") (point)))) | |
| 57 (sel (buffer-substring beg end)) | |
| 58 (mathp (condition-case nil (texmathp) (error nil))) | |
| 59 (current-prefix-arg nil) ; we want to call reftex-index without prefix. | |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
60 key def-char def-tag full-entry) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
61 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
62 (if phrase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
63 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
64 (reftex-index-visit-phrases-buffer) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
65 (reftex-index-new-phrase sel)) |
| 25280 | 66 |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
67 (if (equal sel "") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
68 ;; Nothing selected, no word, so use full reftex-index command |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
69 (reftex-index) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
70 ;; OK, we have something to index here. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
71 ;; Add the dollars when necessary |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
72 (setq key (if mathp |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
73 (format reftex-index-math-format sel) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
74 sel)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
75 ;; Get info from `reftex-index-default-macro' |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
76 (setq def-char (if use-default (car reftex-index-default-macro))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
77 (setq def-tag (if use-default (nth 1 reftex-index-default-macro))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
78 ;; Does the user want to edit the entry? |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
79 (setq full-entry (if arg |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
80 (reftex-index-complete-key |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
81 def-tag nil (cons key 0)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
82 key)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
83 ;; Delete what is in the buffer and make the index entry |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
84 (delete-region beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
85 (reftex-index def-char full-entry def-tag sel))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
86 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
87 (defun reftex-index (&optional char key tag sel no-insert) |
| 25280 | 88 "Query for an index macro and insert it along with its argments. |
| 89 The index macros available are those defined in `reftex-index-macro' or | |
| 90 by a call to `reftex-add-index-macros', typically from an AUCTeX style file. | |
| 91 RefteX provides completion for the index tag and the index key, and | |
| 92 will prompt for other arguments." | |
| 93 | |
| 94 (interactive) | |
| 95 | |
| 96 ;; Ensure access to scanning info | |
| 97 (reftex-ensure-index-support t) | |
| 98 (reftex-access-scan-info current-prefix-arg) | |
| 99 | |
| 100 ;; Find out which macro we are going to use | |
| 101 (let* ((char (or char | |
| 102 (reftex-select-with-char reftex-query-index-macro-prompt | |
| 103 reftex-query-index-macro-help))) | |
| 104 (macro (nth 1 (assoc char reftex-key-to-index-macro-alist))) | |
| 105 (entry (or (assoc macro reftex-index-macro-alist) | |
| 106 (error "No index macro associated with %c" char))) | |
| 107 (ntag (nth 1 entry)) | |
| 108 (tag (or tag (nth 1 entry))) | |
| 109 (nargs (nth 4 entry)) | |
| 110 (nindex (nth 5 entry)) | |
| 111 (opt-args (nth 6 entry)) | |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
112 (repeat (nth 7 entry)) |
| 25280 | 113 opt tag1 value) |
| 114 | |
| 115 ;; Get the supported arguments | |
| 116 (if (stringp tag) | |
| 117 (setq tag1 tag) | |
| 118 (setq tag1 (or (reftex-index-complete-tag tag opt-args) ""))) | |
| 119 (setq key (or key | |
| 120 (reftex-index-complete-key | |
| 121 (if (string= tag1 "") "idx" tag1) | |
| 122 (member nindex opt-args)))) | |
| 123 | |
| 124 ;; Insert the macro and ask for any additional args | |
| 125 (insert macro) | |
| 126 (loop for i from 1 to nargs do | |
| 127 (setq opt (member i opt-args) | |
| 128 value (cond ((= nindex i) key) | |
| 129 ((equal ntag i) tag1) | |
| 130 (t (read-string (concat "Macro arg nr. " | |
| 131 (int-to-string i) | |
| 132 (if opt " (optional)" "") | |
| 133 ": "))))) | |
| 134 (unless (and opt (string= value "")) | |
| 135 (insert (if opt "[" "{") value (if opt "]" "}")))) | |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
136 (and repeat (stringp sel) (insert sel)) |
| 25280 | 137 (and key reftex-plug-into-AUCTeX (fboundp 'LaTeX-add-index-entries) |
| 138 (LaTeX-add-index-entries key)) | |
| 139 (reftex-index-update-taglist tag1) | |
| 140 (reftex-notice-new))) | |
| 141 | |
| 142 (defun reftex-default-index () | |
| 143 (cond ((null reftex-index-default-tag) nil) | |
| 144 ((stringp reftex-index-default-tag) reftex-index-default-tag) | |
| 145 (t (or (get reftex-docstruct-symbol 'default-index-tag) | |
| 146 "idx")))) | |
| 147 | |
| 148 (defun reftex-update-default-index (tag &optional tag-list) | |
| 149 (if (and (not (equal tag "")) | |
| 150 (stringp tag) | |
| 151 (eq reftex-index-default-tag 'last) | |
| 152 (or (null tag-list) | |
| 153 (member tag tag-list))) | |
| 154 (put reftex-docstruct-symbol 'default-index-tag tag))) | |
| 155 | |
| 156 (defun reftex-index-complete-tag (&optional itag opt-args) | |
| 157 ;; Ask the user for a tag, completing on known tags. | |
| 158 ;; ITAG is the argument number which contains the tag. | |
| 159 ;; OPT-ARGS is a list of optional argument indices, as given by | |
| 160 ;; `reftex-parse-args'. | |
| 161 (let* ((opt (and (integerp itag) (member itag opt-args))) | |
| 162 (index-tags (cdr (assq 'index-tags | |
| 163 (symbol-value reftex-docstruct-symbol)))) | |
| 164 (default (reftex-default-index)) | |
| 165 (prompt (concat "Index tag" | |
| 166 (if default (format " (default: %s)" default) "") | |
| 167 (if opt " (optional)" "") ": ")) | |
| 168 (tag (completing-read prompt (mapcar 'list index-tags)))) | |
| 169 (if (and default (equal tag "")) (setq tag default)) | |
| 170 (reftex-update-default-index tag) | |
| 171 tag)) | |
| 172 | |
| 173 (defun reftex-index-select-tag () | |
| 174 ;; Have the user select an index tag. | |
| 175 ;; FIXME: should we cache tag-alist, prompt and help? | |
| 176 (let* ((index-tags (cdr (assoc 'index-tags | |
| 177 (symbol-value reftex-docstruct-symbol)))) | |
| 178 (default (reftex-default-index))) | |
| 179 (cond | |
| 180 ((null index-tags) | |
| 181 (error "No index tags available")) | |
| 182 | |
| 183 ((= (length index-tags) 1) | |
| 184 ;; Just one index, use it | |
| 185 (car index-tags)) | |
| 186 | |
| 187 ((> (length index-tags) 1) | |
| 188 ;; Several indices, ask. | |
| 189 (let* ((tags (copy-sequence index-tags)) | |
| 190 (cnt 0) | |
| 191 tag-alist i val len tag prompt help rpl) | |
| 192 ;; Move idx and glo up in the list to ensure ?i and ?g shortcuts | |
| 193 (if (member "glo" tags) | |
| 194 (setq tags (cons "glo" (delete "glo" tags)))) | |
| 195 (if (member "idx" tags) | |
| 196 (setq tags (cons "idx" (delete "idx" tags)))) | |
| 197 ;; Find unique shortcuts for each index. | |
| 198 (while (setq tag (pop tags)) | |
| 199 (setq len (length tag) | |
| 200 i -1 | |
| 201 val nil) | |
| 202 (catch 'exit | |
| 203 (while (and (< (incf i) len) (null val)) | |
| 204 (unless (assq (aref tag i) tag-alist) | |
| 205 (push (list (aref tag i) | |
| 206 tag | |
| 207 (concat (substring tag 0 i) | |
| 208 "[" (substring tag i (incf i)) "]" | |
| 209 (substring tag i))) | |
| 210 tag-alist) | |
| 211 (throw 'exit t))) | |
| 212 (push (list (+ ?0 (incf cnt)) tag | |
| 213 (concat "[" (int-to-string cnt) "]:" tag)) | |
| 214 tag-alist))) | |
| 215 (setq tag-alist (nreverse tag-alist)) | |
| 216 ;; Compute Prompt and Help strings | |
| 217 (setq prompt | |
| 218 (concat | |
| 219 (format "Select Index%s: " | |
| 220 (if default (format " (Default <%s>)" default) "")) | |
| 221 (mapconcat (lambda(x) (nth 2 x)) tag-alist " "))) | |
| 222 (setq help | |
| 223 (concat "Select an Index\n===============\n" | |
| 224 (if default | |
| 225 (format "[^M] %s (the default)\n" default) | |
| 226 "") | |
| 227 (mapconcat (lambda(x) | |
| 228 (apply 'format "[%c] %s" x)) | |
| 229 tag-alist "\n"))) | |
| 230 ;; Query the user for an index-tag | |
| 231 (setq rpl (reftex-select-with-char prompt help 3 t)) | |
| 232 (message "") | |
| 233 (if (and default (equal rpl ?\C-m)) | |
| 234 default | |
| 235 (if (assq rpl tag-alist) | |
| 236 (progn | |
| 237 (reftex-update-default-index (nth 1 (assq rpl tag-alist))) | |
| 238 (nth 1 (assq rpl tag-alist))) | |
| 239 (error "No index tag associated with %c" rpl))))) | |
| 240 (t (error "This should not happen (reftex-index-select-tag)"))))) | |
| 241 | |
| 242 (defun reftex-index-complete-key (&optional tag optional initial) | |
| 243 ;; Read an index key, with completion. | |
| 244 ;; Restrict completion table on index tag TAG. | |
| 245 ;; OPTIONAL indicates if the arg is optional. | |
| 246 (let* ((table (reftex-sublist-nth | |
| 247 (symbol-value reftex-docstruct-symbol) 6 | |
| 248 (lambda(x) (and (eq (car x) 'index) | |
| 249 (string= (nth 1 x) (or tag "")))) | |
| 250 t)) | |
| 251 (prompt (concat "Index key" (if optional " (optional)" "") ": ")) | |
| 252 (key (completing-read prompt table nil nil initial))) | |
| 253 key)) | |
| 254 | |
| 255 (defun reftex-index-update-taglist (newtag) | |
| 256 ;; add NEWTAG to the list of available index tags. | |
| 257 (let ((cell (assoc 'index-tags (symbol-value reftex-docstruct-symbol)))) | |
| 258 (and newtag (cdr cell) (not (member newtag (cdr cell))) | |
| 259 (push newtag (cdr cell))))) | |
| 260 | |
| 261 (defvar reftex-index-map (make-sparse-keymap) | |
| 262 "Keymap used for *Index* buffers.") | |
| 263 | |
| 264 (defvar reftex-index-menu) | |
| 265 | |
| 266 (defvar reftex-last-index-file nil | |
| 267 "Stores the file name from which `reftex-display-index' was called.") | |
| 268 (defvar reftex-index-tag nil | |
| 269 "Stores the tag of the index in an index buffer.") | |
| 270 | |
| 271 (defvar reftex-index-return-marker (make-marker) | |
| 272 "Marker which makes it possible to return from index to old position.") | |
| 273 | |
| 274 (defvar reftex-index-restriction-indicator nil) | |
| 275 (defvar reftex-index-restriction-data nil) | |
| 276 | |
| 277 (defun reftex-index-mode () | |
| 278 "Major mode for managing Index buffers for LaTeX files. | |
| 279 This buffer was created with RefTeX. | |
| 280 Press `?' for a summary of important key bindings, or check the menu. | |
| 281 | |
| 282 Here are all local bindings. | |
| 283 | |
| 284 \\{reftex-index-map}" | |
| 285 (interactive) | |
| 286 (kill-all-local-variables) | |
| 287 (setq major-mode 'reftex-index-mode | |
| 288 mode-name "RefTeX Index") | |
| 289 (use-local-map reftex-index-map) | |
| 290 (set (make-local-variable 'revert-buffer-function) 'reftex-index-revert) | |
| 291 (set (make-local-variable 'reftex-index-restriction-data) nil) | |
| 292 (set (make-local-variable 'reftex-index-restriction-indicator) nil) | |
| 293 (setq mode-line-format | |
| 294 (list "---- " 'mode-line-buffer-identification | |
| 295 " " 'global-mode-string | |
| 296 " R<" 'reftex-index-restriction-indicator ">" | |
| 297 " -%-")) | |
| 298 (setq truncate-lines t) | |
| 299 (make-local-hook 'post-command-hook) | |
| 300 (make-local-hook 'pre-command-hook) | |
| 301 (make-local-variable 'reftex-last-follow-point) | |
| 302 (easy-menu-add reftex-index-menu reftex-index-map) | |
| 303 (add-hook 'post-command-hook 'reftex-index-post-command-hook nil t) | |
| 304 (add-hook 'pre-command-hook 'reftex-index-pre-command-hook nil t) | |
| 305 (run-hooks 'reftex-index-mode-hook)) | |
| 306 | |
| 307 (defconst reftex-index-help | |
| 308 " AVAILABLE KEYS IN INDEX BUFFER | |
| 309 ============================== | |
| 310 ! A..Z Goto the section of entries starting with this letter. | |
| 311 n / p next-entry / previous-entry | |
| 312 SPC / TAB Show/Goto the corresponding entry in the LaTeX document. | |
| 313 RET Goto the entry and hide the *Index* window (also on mouse-2). | |
| 314 q / k Hide/Kill *Index* buffer. | |
| 315 C-c = Switch to the TOC buffer. | |
| 316 f / c Toggle follow mode / Toggle display of [c]ontext. | |
| 317 g Refresh *Index* buffer. | |
| 318 r / C-u r Reparse the LaTeX document / Reparse entire LaTeX document. | |
| 319 s Switch to a different index (for documents with multiple indices). | |
| 320 e / C-k Edit/Kill the entry. | |
| 321 * | @ Edit specific part of entry: [*]key [|]attribute [@]visual | |
| 322 With prefix: kill that part. | |
| 323 ( ) Toggle entry's beginning/end of page range property. | |
| 324 _ ^ Add/Remove parent key (to make this item a subitem). | |
| 325 } / { Restrict Index to a single document section / Widen. | |
| 326 < / > When restricted, move restriction to previous/next section.") | |
| 327 | |
| 328 (defun reftex-index-show-entry (data &optional no-revisit) | |
| 329 ;; Find an index entry associated with DATA and display it highlighted | |
| 330 ;; in another window. NO-REVISIT means we are not allowed to visit | |
| 331 ;; files for this. | |
| 332 ;; Note: This function just looks for the nearest match of the | |
| 333 ;; context string and may fail if the entry moved and an identical | |
| 334 ;; entry is close to the old position. Frequent rescans make this | |
| 335 ;; safer. | |
| 336 (let* ((file (nth 3 data)) | |
| 337 (literal (nth 2 data)) | |
| 338 (pos (nth 4 data)) | |
| 339 (re (regexp-quote literal)) | |
| 340 (match | |
| 341 (cond | |
| 342 ((or (not no-revisit) | |
| 343 (reftex-get-buffer-visiting file)) | |
| 344 (switch-to-buffer-other-window | |
| 345 (reftex-get-file-buffer-force file nil)) | |
| 346 (goto-char (or pos (point-min))) | |
| 347 (or (looking-at re) | |
| 348 (reftex-nearest-match re (length literal)))) | |
| 349 (t (message reftex-no-follow-message) nil)))) | |
| 350 (when match | |
| 351 (goto-char (match-beginning 0)) | |
| 352 (recenter '(4)) | |
| 353 (reftex-highlight 0 (match-beginning 0) (match-end 0) (current-buffer))) | |
| 354 match)) | |
| 355 | |
| 356 (defun reftex-display-index (&optional tag overriding-restriction | |
| 357 &rest locations) | |
| 358 "Display a buffer with an index compiled from the current document. | |
| 359 When the document has multiple indices, first prompts for the correct one. | |
| 360 When index support is turned off, offer to turn it on. | |
| 361 With one or two `C-u' prefixes, rescan document first. | |
| 362 With prefix 2, restrict index to current document section. | |
| 363 With prefix 3, restrict index to region." | |
| 364 | |
| 365 (interactive) | |
| 366 | |
| 367 ;; Ensure access to scanning info and rescan buffer if prefix are is '(4). | |
| 368 (let ((current-prefix-arg current-prefix-arg)) | |
| 369 (reftex-ensure-index-support t) | |
| 370 (reftex-access-scan-info current-prefix-arg)) | |
| 371 | |
| 372 (set-marker reftex-index-return-marker (point)) | |
| 373 (setq reftex-last-follow-point 1) | |
| 374 | |
| 375 ;; Determine the correct index to process | |
| 376 (let* ((docstruct (symbol-value reftex-docstruct-symbol)) | |
| 377 (docstruct-symbol reftex-docstruct-symbol) | |
| 378 (index-tag (or tag (reftex-index-select-tag))) | |
| 379 (master (reftex-TeX-master-file)) | |
| 380 (calling-file (buffer-file-name)) | |
| 381 (restriction | |
| 382 (or overriding-restriction | |
| 383 (and (interactive-p) | |
| 384 (reftex-get-restriction current-prefix-arg docstruct)))) | |
| 385 (locations | |
| 386 ;; See if we are on an index macro as initial position | |
| 387 (or locations | |
| 388 (let* ((what-macro (reftex-what-macro-safe 1)) | |
| 389 (macro (car what-macro)) | |
| 390 (here-I-am (when (member macro reftex-macros-with-index) | |
| 391 (save-excursion | |
| 392 (goto-char (+ (cdr what-macro) | |
| 393 (length macro))) | |
| 394 (reftex-move-over-touching-args) | |
| 395 (reftex-where-am-I))))) | |
| 396 (if (eq (car (car here-I-am)) 'index) | |
| 397 (list (car here-I-am)))))) | |
| 398 buffer-name) | |
| 399 | |
| 400 (setq buffer-name (reftex-make-index-buffer-name index-tag)) | |
| 401 | |
| 402 ;; Goto the buffer and put it into the correct mode | |
| 403 | |
| 404 (when (or restriction current-prefix-arg) | |
| 405 (reftex-kill-buffer buffer-name)) | |
| 406 | |
| 407 (if (get-buffer-window buffer-name) | |
| 408 (select-window (get-buffer-window buffer-name)) | |
| 409 (let ((default-major-mode 'reftex-index-mode)) | |
| 410 (switch-to-buffer buffer-name))) | |
| 411 | |
| 412 (or (eq major-mode 'reftex-index-mode) (reftex-index-mode)) | |
| 413 | |
| 414 ;; If the buffer is currently restricted, empty it to force update. | |
| 415 (when reftex-index-restriction-data | |
| 416 (reftex-erase-buffer)) | |
| 417 (set (make-local-variable 'reftex-last-index-file) calling-file) | |
| 418 (set (make-local-variable 'reftex-index-tag) index-tag) | |
| 419 (set (make-local-variable 'reftex-docstruct-symbol) docstruct-symbol) | |
| 420 (if restriction | |
| 421 (setq reftex-index-restriction-indicator (car restriction) | |
| 422 reftex-index-restriction-data (cdr restriction)) | |
| 423 (if (interactive-p) | |
| 424 (setq reftex-index-restriction-indicator nil | |
| 425 reftex-index-restriction-data nil))) | |
| 426 (when (= (buffer-size) 0) | |
| 427 ;; buffer is empty - fill it | |
| 428 (message "Building %s buffer..." buffer-name) | |
| 429 | |
| 430 (setq buffer-read-only nil) | |
| 431 (insert (format | |
| 432 "INDEX <%s> on %s | |
| 433 Restriction: <%s> | |
| 434 SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help | |
| 435 ------------------------------------------------------------------------------ | |
| 436 " index-tag (abbreviate-file-name master) | |
| 437 (if (eq (car (car reftex-index-restriction-data)) 'toc) | |
| 438 (nth 2 (car reftex-index-restriction-data)) | |
| 439 reftex-index-restriction-indicator))) | |
| 440 | |
| 441 (if (reftex-use-fonts) | |
| 442 (put-text-property 1 (point) 'face reftex-index-header-face)) | |
| 443 (put-text-property 1 (point) 'intangible t) | |
| 444 | |
| 445 (reftex-insert-index docstruct index-tag) | |
| 446 (goto-char (point-min)) | |
| 447 (run-hooks 'reftex-display-copied-context-hook) | |
| 448 (message "Building %s buffer...done." buffer-name) | |
| 449 (setq buffer-read-only t)) | |
| 450 (and locations (apply 'reftex-find-start-point (point) locations)) | |
| 451 (if reftex-index-restriction-indicator | |
| 452 (message "Index restricted: <%s>" reftex-index-restriction-indicator)))) | |
| 453 | |
| 454 (defun reftex-insert-index (docstruct tag &optional update-one remark) | |
| 455 ;; Insert an index into the current buffer. Entries are from the | |
| 456 ;; DOCSTRUCT. | |
| 457 ;; TAG is the subindex to process. | |
| 458 ;; UPDATE-ONE: When non-nil, delete the entry at point and replace | |
| 459 ;; it with whatever the DOCSTRUCT contains. | |
| 460 ;; REMARK can be a note to add to the entry. | |
| 461 (let* ((all docstruct) | |
| 462 (indent " ") | |
| 463 (context reftex-index-include-context) | |
| 464 (context-indent (concat indent " ")) | |
| 465 (section-chars (mapcar 'identity reftex-index-section-letters)) | |
| 466 (this-section-char 0) | |
| 467 (font (reftex-use-fonts)) | |
| 468 (bor (car reftex-index-restriction-data)) | |
| 469 (eor (nth 1 reftex-index-restriction-data)) | |
| 470 (mouse-face | |
| 471 (if (memq reftex-highlight-selection '(mouse both)) | |
| 472 reftex-mouse-selected-face | |
| 473 nil)) | |
| 474 (index-face (reftex-verified-face reftex-label-face | |
| 475 'font-lock-constant-face | |
| 476 'font-lock-reference-face)) | |
| 477 sublist cell from to first-char) | |
| 478 | |
| 479 ;; Make the sublist and sort it | |
| 480 (when bor | |
| 481 (setq all (or (memq bor all) all))) | |
| 482 | |
| 483 (while (setq cell (pop all)) | |
| 484 (if (eq cell eor) | |
| 485 (setq all nil) | |
| 486 (and (eq (car cell) 'index) | |
| 487 (equal (nth 1 cell) tag) | |
| 488 (push cell sublist)))) | |
| 489 (setq sublist (sort (nreverse sublist) | |
| 490 (lambda (a b) (string< (nth 8 a) (nth 8 b))))) | |
| 491 | |
| 492 (when update-one | |
| 493 ;; Delete the entry at place | |
| 494 (and (bolp) (forward-char 1)) | |
| 495 (delete-region (previous-single-property-change (1+ (point)) :data) | |
| 496 (or (next-single-property-change (point) :data) | |
| 497 (point-max)))) | |
| 498 | |
| 499 ;; Walk through the list and insert all entries | |
| 500 (while (setq cell (pop sublist)) | |
| 501 (unless update-one | |
| 502 (setq first-char (upcase (string-to-char (nth 6 cell)))) | |
| 503 (when (and (not (equal first-char this-section-char)) | |
| 504 (member first-char section-chars)) | |
| 505 ;; There is a new initial letter, so start a new section | |
| 506 (reftex-index-insert-new-letter first-char font) | |
| 507 (setq section-chars (delete first-char section-chars) | |
| 508 this-section-char first-char)) | |
| 509 (when (= this-section-char 0) | |
| 510 (setq this-section-char ?!) | |
| 511 (reftex-index-insert-new-letter this-section-char font))) | |
| 512 | |
| 513 (setq from (point)) | |
| 514 (insert indent (nth 7 cell)) | |
| 515 (when font | |
| 516 (setq to (point)) | |
| 517 (put-text-property | |
| 518 (- (point) (length (nth 7 cell))) to | |
| 519 'face index-face) | |
| 520 (goto-char to)) | |
| 521 | |
| 522 (when (or remark (nth 9 cell)) | |
| 523 (and (< (current-column) 40) | |
| 524 ;; FIXME: maybe this is too slow? | |
| 525 (insert (make-string (max (- 40 (current-column)) 0) ?\ ))) | |
| 526 (and (nth 9 cell) (insert " " (substring (nth 5 cell) (nth 9 cell)))) | |
| 527 (and remark (insert " " remark))) | |
| 528 | |
| 529 (insert "\n") | |
| 530 (setq to (point)) | |
| 531 | |
| 532 (when context | |
| 533 (insert context-indent (nth 2 cell) "\n") | |
| 534 (setq to (point))) | |
| 535 (put-text-property from to :data cell) | |
| 536 (when mouse-face | |
| 537 (put-text-property from (1- to) | |
| 538 'mouse-face mouse-face)) | |
| 539 (goto-char to)))) | |
| 540 | |
| 541 | |
| 542 (defun reftex-index-insert-new-letter (letter &optional font) | |
| 543 ;; Start a new section in the index | |
| 544 (let ((from (point))) | |
| 545 (insert "\n" letter letter letter | |
| 546 "-----------------------------------------------------------------") | |
| 547 (when font | |
| 548 (put-text-property from (point) 'face reftex-index-section-face)) | |
| 549 (insert "\n"))) | |
| 550 | |
| 551 (defun reftex-get-restriction (arg docstruct) | |
| 552 ;; Interprete the prefix ARG and derive index restriction specs. | |
| 553 (let* ((beg (min (point) (or (condition-case nil (mark) (error nil)) | |
| 554 (point-max)))) | |
| 555 (end (max (point) (or (condition-case nil (mark) (error nil)) | |
| 556 (point-min)))) | |
| 557 bor eor label here-I-am) | |
| 558 (cond | |
| 559 ((eq arg 2) | |
| 560 (setq here-I-am (car (reftex-where-am-I)) | |
| 561 bor (if (eq (car here-I-am) 'toc) | |
| 562 here-I-am | |
| 563 (reftex-last-assoc-before-elt | |
| 564 'toc here-I-am docstruct)) | |
| 565 eor (car (memq (assq 'toc (cdr (memq bor docstruct))) docstruct)) | |
| 566 label (nth 6 bor))) | |
| 567 ((eq arg 3) | |
| 568 (save-excursion | |
| 569 (setq label "region") | |
| 570 (goto-char beg) | |
| 571 (setq bor (car (reftex-where-am-I))) | |
| 572 (setq bor (nth 1 (memq bor docstruct))) | |
| 573 (goto-char end) | |
| 574 (setq eor (nth 1 (memq (car (reftex-where-am-I)) docstruct))))) | |
| 575 (t nil)) | |
| 576 (if (and label (or bor eor)) | |
| 577 (list label bor eor) | |
| 578 nil))) | |
| 579 | |
| 580 (defun reftex-index-pre-command-hook () | |
| 581 ;; Used as pre command hook in *Index* buffer | |
| 582 (reftex-unhighlight 0) | |
| 583 (reftex-unhighlight 1)) | |
| 584 | |
| 585 (defun reftex-index-post-command-hook () | |
| 586 ;; Used in the post-command-hook for the *Index* buffer | |
| 587 (when (get-text-property (point) :data) | |
| 588 (and (> (point) 1) | |
| 589 (not (get-text-property (point) 'intangible)) | |
| 590 (memq reftex-highlight-selection '(cursor both)) | |
| 591 (reftex-highlight 1 | |
| 592 (or (previous-single-property-change (1+ (point)) :data) | |
| 593 (point-min)) | |
| 594 (or (next-single-property-change (point) :data) | |
| 595 (point-max))))) | |
| 596 (if (integerp reftex-index-follow-mode) | |
| 597 ;; Remove delayed action | |
| 598 (setq reftex-index-follow-mode t) | |
| 599 (and reftex-index-follow-mode | |
| 600 (not (equal reftex-last-follow-point (point))) | |
| 601 ;; Show context in other window | |
| 602 (setq reftex-last-follow-point (point)) | |
| 603 (condition-case nil | |
| 604 (reftex-index-visit-location nil (not reftex-revisit-to-follow)) | |
| 605 (error t))))) | |
| 606 | |
| 607 (defun reftex-index-show-help () | |
| 608 "Show a summary of special key bindings." | |
| 609 (interactive) | |
| 610 (with-output-to-temp-buffer "*RefTeX Help*" | |
| 611 (princ reftex-index-help)) | |
| 612 (reftex-enlarge-to-fit "*RefTeX Help*" t) | |
| 613 ;; If follow mode is active, arrange to delay it one command | |
| 614 (if reftex-index-follow-mode | |
| 615 (setq reftex-index-follow-mode 1))) | |
| 616 | |
| 617 (defun reftex-index-next (&optional arg) | |
| 618 "Move to next selectable item." | |
| 619 (interactive "p") | |
| 620 (setq reftex-callback-fwd t) | |
| 621 (or (eobp) (forward-char 1)) | |
| 622 (goto-char (or (next-single-property-change (point) :data) | |
| 623 (point))) | |
| 624 (unless (get-text-property (point) :data) | |
| 625 (goto-char (or (next-single-property-change (point) :data) | |
| 626 (point))))) | |
| 627 (defun reftex-index-previous (&optional arg) | |
| 628 "Move to previous selectable item." | |
| 629 (interactive "p") | |
| 630 (setq reftex-callback-fwd nil) | |
| 631 (goto-char (or (previous-single-property-change (point) :data) | |
| 632 (point))) | |
| 633 (unless (get-text-property (point) :data) | |
| 634 (goto-char (or (previous-single-property-change (point) :data) | |
| 635 (point))))) | |
| 636 (defun reftex-index-toggle-follow () | |
| 637 "Toggle follow (other window follows with context)." | |
| 638 (interactive) | |
| 639 (setq reftex-last-follow-point -1) | |
| 640 (setq reftex-index-follow-mode (not reftex-index-follow-mode))) | |
| 641 (defun reftex-index-toggle-context () | |
| 642 "Toggle inclusion of label context in *Index* buffer. | |
| 643 Label context is only displayed when the labels are there as well." | |
| 644 (interactive) | |
| 645 (setq reftex-index-include-context (not reftex-index-include-context)) | |
| 646 (reftex-index-revert)) | |
| 647 (defun reftex-index-view-entry () | |
| 648 "View document location in other window." | |
| 649 (interactive) | |
| 650 (reftex-index-visit-location)) | |
| 651 (defun reftex-index-goto-entry-and-hide () | |
| 652 "Go to document location in other window. Hide the *Index* window." | |
| 653 (interactive) | |
| 654 (reftex-index-visit-location 'hide)) | |
| 655 (defun reftex-index-goto-entry () | |
| 656 "Go to document location in other window. *Index* window stays." | |
| 657 (interactive) | |
| 658 (reftex-index-visit-location t)) | |
| 659 (defun reftex-index-mouse-goto-line-and-hide (ev) | |
| 660 "Go to document location in other window. Hide the *Index* window." | |
| 661 (interactive "e") | |
| 662 (mouse-set-point ev) | |
| 663 (reftex-index-visit-location 'hide)) | |
| 664 (defun reftex-index-quit () | |
| 665 "Hide the *Index* window and do not move point." | |
| 666 (interactive) | |
| 667 (or (one-window-p) (delete-window)) | |
| 668 (switch-to-buffer (marker-buffer reftex-index-return-marker)) | |
| 669 (goto-char (or (marker-position reftex-index-return-marker) (point)))) | |
| 670 (defun reftex-index-quit-and-kill () | |
| 671 "Kill the *Index* buffer." | |
| 672 (interactive) | |
| 673 (kill-buffer (current-buffer)) | |
| 674 (or (one-window-p) (delete-window)) | |
| 675 (switch-to-buffer (marker-buffer reftex-index-return-marker)) | |
| 676 (goto-char (or (marker-position reftex-index-return-marker) (point)))) | |
| 677 (defun reftex-index-goto-toc (&rest ignore) | |
| 678 "Switch to the table of contents of the current document. | |
| 679 The function will go to the section where the entry at point was defined." | |
| 680 (interactive) | |
| 681 (if (get-text-property (point) :data) | |
| 682 (reftex-index-goto-entry) | |
| 683 (switch-to-buffer (marker-buffer reftex-index-return-marker))) | |
| 684 (delete-other-windows) | |
| 685 (reftex-toc)) | |
| 686 (defun reftex-index-rescan (&rest ignore) | |
| 687 "Regenerate the *Index* buffer after reparsing file of section at point." | |
| 688 (interactive) | |
| 689 (let ((index-tag reftex-index-tag)) | |
| 690 (if (and reftex-enable-partial-scans | |
| 691 (null current-prefix-arg)) | |
| 692 (let* ((data (get-text-property (point) :data)) | |
| 693 (file (nth 3 data)) | |
| 694 (line (+ (count-lines (point-min) (point)) (if (bolp) 1 0)))) | |
| 695 (if (not file) | |
| 696 (error "Don't know which file to rescan. Try `C-u r'") | |
| 697 (switch-to-buffer (reftex-get-file-buffer-force file)) | |
| 698 (setq current-prefix-arg '(4)) | |
| 699 (reftex-display-index index-tag nil line))) | |
| 700 (reftex-index-Rescan)) | |
| 701 (reftex-kill-temporary-buffers))) | |
| 702 (defun reftex-index-Rescan (&rest ignore) | |
| 703 "Regenerate the *Index* buffer after reparsing the entire document." | |
| 704 (interactive) | |
| 705 (let ((index-tag reftex-index-tag) | |
| 706 (line (+ (count-lines (point-min) (point)) (if (bolp) 1 0)))) | |
| 707 (switch-to-buffer | |
| 708 (reftex-get-file-buffer-force reftex-last-index-file)) | |
| 709 (setq current-prefix-arg '(16)) | |
| 710 (reftex-display-index index-tag nil line))) | |
| 711 (defun reftex-index-revert (&rest ignore) | |
| 712 "Regenerate the *Index* from the internal lists. No reparsing os done." | |
| 713 (interactive) | |
| 714 (let ((buf (current-buffer)) | |
| 715 (index-tag reftex-index-tag) | |
| 716 (data (get-text-property (point) :data)) | |
| 717 (line (+ (count-lines (point-min) (point)) (if (bolp) 1 0)))) | |
| 718 (switch-to-buffer | |
| 719 (reftex-get-file-buffer-force reftex-last-index-file)) | |
| 720 (reftex-erase-buffer buf) | |
| 721 (setq current-prefix-arg nil | |
| 722 reftex-last-follow-point 1) | |
| 723 (reftex-display-index index-tag nil data line))) | |
| 724 (defun reftex-index-switch-index-tag (&rest ignore) | |
| 725 "Switch to a different index of the same document." | |
| 726 (interactive) | |
| 727 (switch-to-buffer | |
| 728 (reftex-get-file-buffer-force reftex-last-index-file)) | |
| 729 (setq current-prefix-arg nil) | |
| 730 (reftex-display-index)) | |
| 731 | |
| 732 (defun reftex-index-restrict-to-section (&optional force) | |
| 733 "Restrict index to entries defined in same document sect. as entry at point." | |
| 734 ;; Optional FORCE means, even if point is not on an index entry. | |
| 735 (interactive) | |
| 736 (let* ((data (get-text-property (point) :data)) | |
| 737 (docstruct (symbol-value reftex-docstruct-symbol)) | |
| 738 bor eor) | |
| 739 (if (and (not data) force) | |
| 740 (setq data (assq 'toc docstruct))) | |
| 741 (when data | |
| 742 (setq bor (reftex-last-assoc-before-elt 'toc data docstruct) | |
| 743 eor (car (memq (assq 'toc (cdr (memq bor docstruct))) | |
| 744 docstruct)) | |
| 745 reftex-index-restriction-data (list bor eor) | |
| 746 reftex-index-restriction-indicator (nth 6 bor) ))) | |
| 747 (reftex-index-revert)) | |
| 748 | |
| 749 (defun reftex-index-widen (&rest ignore) | |
| 750 "Show the unrestricted index (all entries)." | |
| 751 (interactive) | |
| 752 (setq reftex-index-restriction-indicator nil | |
| 753 reftex-index-restriction-data nil) | |
| 754 (reftex-index-revert) | |
| 755 (message "Index widened")) | |
| 756 (defun reftex-index-restriction-forward (&rest ignore) | |
| 757 "Restrict to previous section. | |
| 758 When index is currently unrestricted, restrict it to a section. | |
| 759 When index is restricted, select the next section as restriction criterion." | |
| 760 (interactive) | |
| 761 (let* ((docstruct (symbol-value reftex-docstruct-symbol)) | |
| 762 (bor (nth 1 reftex-index-restriction-data))) | |
| 763 (if (or (not bor) | |
| 764 (not (eq (car bor) 'toc))) | |
| 765 (reftex-index-restrict-to-section t) | |
| 766 (setq reftex-index-restriction-indicator (nth 6 bor) | |
| 767 reftex-index-restriction-data | |
| 768 (list bor | |
| 769 (car (memq (assq 'toc (cdr (memq bor docstruct))) | |
| 770 docstruct)))) | |
| 771 (reftex-index-revert)))) | |
| 772 (defun reftex-index-restriction-backward (&rest ignore) | |
| 773 "Restrict to next section. | |
| 774 When index is currently unrestricted, restrict it to a section. | |
| 775 When index is restricted, select the previous section as restriction criterion." | |
| 776 (interactive) | |
| 777 (let* ((docstruct (symbol-value reftex-docstruct-symbol)) | |
| 778 (eor (car reftex-index-restriction-data)) | |
| 779 (bor (reftex-last-assoc-before-elt 'toc eor docstruct t))) | |
| 780 (if (or (not bor) | |
| 781 (not (eq (car bor) 'toc))) | |
| 782 (reftex-index-restrict-to-section t) | |
| 783 (setq reftex-index-restriction-indicator (nth 6 bor) | |
| 784 reftex-index-restriction-data | |
| 785 (list bor eor)) | |
| 786 (reftex-index-revert)))) | |
| 787 | |
| 788 (defun reftex-index-visit-location (&optional final no-revisit) | |
| 789 ;; Visit the tex file corresponding to the index entry on the current line. | |
| 790 ;; If FINAL is t, stay there | |
| 791 ;; If FINAL is 'hide, hide the *Index* window. | |
| 792 ;; Otherwise, move cursor back into *Index* window. | |
| 793 ;; NO-REVISIT means don't visit files, just use live biffers. | |
| 794 | |
| 795 (let* ((data (get-text-property (point) :data)) | |
| 796 (index-window (selected-window)) | |
| 797 show-window show-buffer match) | |
| 798 | |
| 799 (unless data (error "Don't know which index entry to visit")) | |
| 800 | |
| 801 (if (eq (car data) 'index) | |
| 802 (setq match (reftex-index-show-entry data no-revisit))) | |
| 803 | |
| 804 (setq show-window (selected-window) | |
| 805 show-buffer (current-buffer)) | |
| 806 | |
| 807 (unless match | |
| 808 (select-window index-window) | |
| 809 (error "Cannot find location")) | |
| 810 | |
| 811 (select-window index-window) | |
| 812 | |
| 813 ;; Use the `final' parameter to decide what to do next | |
| 814 (cond | |
| 815 ((eq final t) | |
| 816 (reftex-unhighlight 0) | |
| 817 (select-window show-window)) | |
| 818 ((eq final 'hide) | |
| 819 (reftex-unhighlight 0) | |
| 820 (or (one-window-p) (delete-window)) | |
| 821 (switch-to-buffer show-buffer)) | |
| 822 (t nil)))) | |
| 823 | |
| 824 (defun reftex-index-analyze-entry (data) | |
| 825 ;; This splits the index context so that key, attribute and visual | |
| 826 ;; values are accessible individually. | |
| 827 (interactive) | |
| 828 (let* ((arg (nth 5 data)) | |
| 829 (context (nth 2 data)) | |
| 830 (sc reftex-index-special-chars) | |
| 831 (boa (if (string-match (regexp-quote (concat "{" arg "}")) context) | |
| 832 (1+ (match-beginning 0)) | |
| 833 (error "Something is wrong here"))) | |
| 834 (eoa (1- (match-end 0))) | |
| 835 (boactual (if (string-match (concat "[^" (nth 3 sc) "]" (nth 2 sc)) | |
| 836 context boa) | |
| 837 (1+ (match-beginning 0)) | |
| 838 eoa)) | |
| 839 (boattr (if (string-match (concat "[^" (nth 3 sc) "]" (nth 1 sc)) | |
| 840 context boa) | |
| 841 (1+ (match-beginning 0)) | |
| 842 boactual)) | |
| 843 (pre (substring context 0 boa)) | |
| 844 (key (substring context boa boattr)) | |
| 845 (attr (substring context boattr boactual)) | |
| 846 (actual (substring context boactual eoa)) | |
| 847 (post (substring context eoa))) | |
| 848 (list pre key attr actual post))) | |
| 849 | |
| 850 (defun reftex-index-edit () | |
| 851 "Edit the index entry at point." | |
| 852 (interactive) | |
| 853 (let* ((data (get-text-property (point) :data)) | |
| 854 old new) | |
| 855 (unless data (error "Don't know which index entry to edit")) | |
| 856 (reftex-index-view-entry) | |
| 857 (setq old (nth 2 data) new (read-string "Edit: " old)) | |
| 858 (reftex-index-change-entry new))) | |
| 859 | |
| 860 (defun reftex-index-toggle-range-beginning () | |
| 861 "Toggle the page range start attribute `|('." | |
| 862 (interactive) | |
| 863 (let* ((data (get-text-property (point) :data)) | |
| 864 (bor (concat (nth 1 reftex-index-special-chars) "(")) | |
| 865 new analyze attr) | |
| 866 (unless data (error "Don't know which index entry to edit")) | |
| 867 (setq analyze (reftex-index-analyze-entry data) | |
| 868 attr (nth 2 analyze)) | |
| 869 (setf (nth 2 analyze) (if (string= attr bor) "" bor)) | |
| 870 (setq new (apply 'concat analyze)) | |
| 871 (reftex-index-change-entry | |
| 872 new (if (string= (nth 2 analyze) bor) | |
| 873 "Entry is now START-OF-PAGE-RANGE" | |
| 874 "START-OF-PAGE-RANGE canceled")))) | |
| 875 | |
| 876 (defun reftex-index-toggle-range-end () | |
| 877 "Toggle the page-range-end attribute `|)'." | |
| 878 (interactive) | |
| 879 (let* ((data (get-text-property (point) :data)) | |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
880 (eor (concat (nth 1 reftex-index-special-chars) ")")) |
| 25280 | 881 new analyze attr) |
| 882 (unless data (error "Don't know which index entry to edit")) | |
| 883 (setq analyze (reftex-index-analyze-entry data) | |
| 884 attr (nth 2 analyze)) | |
| 885 (setf (nth 2 analyze) (if (string= attr eor) "" eor)) | |
| 886 (setq new (apply 'concat analyze)) | |
| 887 (reftex-index-change-entry | |
| 888 new (if (string= (nth 2 analyze) eor) | |
| 889 "Entry is now END-OF-PAGE-RANGE" | |
| 890 "END-OF-PAGE-RANGE canceled")))) | |
| 891 | |
| 892 (defun reftex-index-edit-key () | |
| 893 "Edit the KEY part of the index entry." | |
| 894 (interactive) | |
| 895 (reftex-index-edit-part nil 1 "" "Key: " t)) | |
| 896 | |
| 897 (defun reftex-index-edit-attribute (&optional arg) | |
| 898 "EDIT the ATTRIBUTE part of the entry. With arg: remove entire ATTRIBUTE." | |
| 899 (interactive "P") | |
| 900 (reftex-index-edit-part arg 2 (nth 1 reftex-index-special-chars) | |
| 901 "Attribute: ")) | |
| 902 | |
| 903 (defun reftex-index-edit-visual (&optional arg) | |
| 904 "EDIT the VISUAL part of the entry. With arg: remove entire VISUAL string." | |
| 905 (interactive "P") | |
| 906 (reftex-index-edit-part arg 3 (nth 2 reftex-index-special-chars) "Visual: ")) | |
| 907 | |
| 908 (defun reftex-index-edit-part (arg n initial prompt &optional dont-allow-empty) | |
| 909 ;; This function does the work for all partial editing commands | |
| 910 (let* ((data (get-text-property (point) :data)) | |
| 911 new analyze opart npart) | |
| 912 (unless data (error "Don't know which index entry to edit")) | |
| 913 ;; Analyze the whole context string | |
| 914 (setq analyze (reftex-index-analyze-entry data) | |
| 915 opart (nth n analyze)) | |
| 916 (and (> (length opart) 0) (setq opart (substring opart 1))) | |
| 917 ;; Have the user editing the part | |
| 918 (setq npart (if arg "" (read-string (concat prompt initial) opart))) | |
| 919 ;; Tests: | |
| 920 (cond ((string= npart opart) | |
| 921 (error "Not changed")) | |
| 922 ((string= npart "") | |
| 923 (if dont-allow-empty | |
| 924 (error "Illegal value") | |
| 925 (setf (nth n analyze) npart))) | |
| 926 (t (setf (nth n analyze) (concat initial npart)))) | |
| 927 (setq new (apply 'concat analyze)) | |
| 928 ;; Change the entry and insert the changed version into the index. | |
| 929 (reftex-index-change-entry | |
| 930 new (if (string= npart "") | |
| 931 (format "Deleted: %s" opart) | |
| 932 (format "New value is: %s" npart))))) | |
| 933 | |
| 934 (defun reftex-index-level-down () | |
| 935 "Make index entry a subitem of another entry." | |
| 936 (interactive) | |
| 937 (let* ((data (get-text-property (point) :data)) | |
| 938 (docstruct (symbol-value reftex-docstruct-symbol)) | |
| 939 old new prefix key) | |
| 940 (unless data (error "Don't know which index entry to change")) | |
| 941 (setq old (nth 2 data) | |
| 942 key (nth 6 data) | |
| 943 prefix (completing-read | |
| 944 "Prefix: " | |
| 945 (reftex-sublist-nth | |
| 946 docstruct 6 | |
| 947 (lambda (x) | |
| 948 (and (eq (car x) 'index) | |
| 949 (string= (nth 1 x) reftex-index-tag))) t))) | |
| 950 (unless (string-match | |
| 951 (concat (regexp-quote (car reftex-index-special-chars)) "\\'") | |
| 952 prefix) | |
| 953 (setq prefix (concat prefix (car reftex-index-special-chars)))) | |
| 954 (if (string-match (regexp-quote key) old) | |
| 955 (setq new (replace-match (concat prefix key) t t old)) | |
| 956 (error "Cannot construct new index key")) | |
| 957 (reftex-index-change-entry new (format "Added prefix: %s" prefix)))) | |
| 958 | |
| 959 (defun reftex-index-level-up () | |
| 960 "Remove the highest level of a hierarchical index entry." | |
| 961 (interactive) | |
| 962 (let* ((data (get-text-property (point) :data)) | |
| 963 old new prefix) | |
| 964 (unless data (error "Don't know which entry to change")) | |
| 965 (setq old (nth 2 data)) | |
| 966 (if (string-match (concat "{\\([^" (nth 0 reftex-index-special-chars) "]*" | |
| 967 "[^" (nth 3 reftex-index-special-chars) "]" | |
| 968 (regexp-quote (nth 0 reftex-index-special-chars)) | |
| 969 "\\)") | |
| 970 old) | |
| 971 (setq prefix (substring old (match-beginning 1) (match-end 1)) | |
| 972 new (concat (substring old 0 (match-beginning 1)) | |
| 973 (substring old (match-end 1)))) | |
| 974 (error "Entry is not a subitem")) | |
| 975 (reftex-index-change-entry new (format "Removed prefix: %s" prefix)))) | |
| 976 | |
| 977 (defun reftex-index-kill () | |
| 978 "FIXME: Not yet implemented" | |
| 979 (interactive) | |
| 980 (error "This function is currently not implemented")) | |
| 981 | |
| 982 (defun reftex-index-undo () | |
| 983 "FIXME: Not yet implemented" | |
| 984 (interactive) | |
| 985 (error "This function is currently not implemented")) | |
| 986 | |
| 987 (defun reftex-index-change-entry (new &optional message) | |
| 988 ;; Change the full context string of the index entry at point to | |
| 989 ;; NEW. This actually edits the buffer where the entry is defined. | |
| 990 | |
| 991 (let* ((data (get-text-property (point) :data)) | |
| 992 old beg end info) | |
| 993 (unless data (error "Cannot change entry")) | |
| 994 (reftex-index-view-entry) | |
| 995 (setq beg (match-beginning 0) end (match-end 0)) | |
| 996 (setq old (nth 2 data)) | |
| 997 (and (equal old new) (error "Entry unchanged")) | |
| 998 (save-excursion | |
| 999 (set-buffer (get-file-buffer (nth 3 data))) | |
| 1000 (goto-char beg) | |
| 1001 (unless (looking-at (regexp-quote old)) | |
| 1002 (error "This should not happen (reftex-index-change-entry)")) | |
| 1003 (delete-region beg end) | |
| 1004 (insert new) | |
| 1005 (goto-char (1- beg)) | |
| 1006 (when (and (re-search-forward (reftex-everything-regexp) nil t) | |
| 1007 (match-end 10) | |
| 1008 (< (abs (- (match-beginning 10) beg)) (length new)) | |
| 1009 (setq info (reftex-index-info-safe buffer-file-name))) | |
| 1010 (setcdr data (cdr info)))) | |
| 1011 (let ((buffer-read-only nil)) | |
| 1012 (save-excursion | |
| 1013 (reftex-insert-index (list data) reftex-index-tag t | |
| 1014 "EDITED"))) | |
| 1015 (setq reftex-last-follow-point 1) | |
| 1016 (and message (message message)))) | |
| 1017 | |
| 1018 ;; Index map | |
| 1019 (define-key reftex-index-map (if (featurep 'xemacs) [(button2)] [(mouse-2)]) | |
| 1020 'reftex-index-mouse-goto-line-and-hide) | |
| 1021 | |
| 1022 (substitute-key-definition | |
| 1023 'next-line 'reftex-index-next reftex-index-map global-map) | |
| 1024 (substitute-key-definition | |
| 1025 'previous-line 'reftex-index-previous reftex-index-map global-map) | |
| 1026 | |
| 1027 (loop for x in | |
| 1028 '(("n" . reftex-index-next) | |
| 1029 ("p" . reftex-index-previous) | |
| 1030 ("?" . reftex-index-show-help) | |
| 1031 (" " . reftex-index-view-entry) | |
| 1032 ("\C-m" . reftex-index-goto-entry-and-hide) | |
| 1033 ("\C-i" . reftex-index-goto-entry) | |
| 1034 ("\C-k" . reftex-index-kill) | |
| 1035 ("r" . reftex-index-rescan) | |
| 1036 ("R" . reftex-index-Rescan) | |
| 1037 ("g" . revert-buffer) | |
| 1038 ("q" . reftex-index-quit) | |
| 1039 ("k" . reftex-index-quit-and-kill) | |
| 1040 ("f" . reftex-index-toggle-follow) | |
| 1041 ("s" . reftex-index-switch-index-tag) | |
| 1042 ("e" . reftex-index-edit) | |
| 1043 ("^" . reftex-index-level-up) | |
| 1044 ("_" . reftex-index-level-down) | |
| 1045 ("}" . reftex-index-restrict-to-section) | |
| 1046 ("{" . reftex-index-widen) | |
| 1047 (">" . reftex-index-restriction-forward) | |
| 1048 ("<" . reftex-index-restriction-backward) | |
| 1049 ("(" . reftex-index-toggle-range-beginning) | |
| 1050 (")" . reftex-index-toggle-range-end) | |
| 1051 ("|" . reftex-index-edit-attribute) | |
| 1052 ("@" . reftex-index-edit-visual) | |
| 1053 ("*" . reftex-index-edit-key) | |
| 1054 ("\C-c=". reftex-index-goto-toc) | |
| 1055 ("c" . reftex-index-toggle-context)) | |
| 1056 do (define-key reftex-index-map (car x) (cdr x))) | |
| 1057 | |
| 1058 (loop for key across "0123456789" do | |
| 1059 (define-key reftex-index-map (vector (list key)) 'digit-argument)) | |
| 1060 (define-key reftex-index-map "-" 'negative-argument) | |
| 1061 | |
| 1062 ;; The capital letters and the exclamation mark | |
| 1063 (loop for key across (concat "!" reftex-index-section-letters) do | |
| 1064 (define-key reftex-index-map (vector (list key)) | |
| 1065 (list 'lambda '() '(interactive) | |
| 1066 (list 'reftex-index-goto-letter key)))) | |
| 1067 | |
| 1068 (defun reftex-index-goto-letter (char) | |
| 1069 "Go to the CHAR section in the index." | |
| 1070 (let ((pos (point)) | |
| 1071 (case-fold-search nil)) | |
| 1072 (goto-line 3) | |
| 1073 (if (re-search-forward (concat "^" (char-to-string char)) nil t) | |
| 1074 (progn | |
| 1075 (beginning-of-line) | |
| 1076 (recenter 0) | |
| 1077 (reftex-index-next)) | |
| 1078 (goto-char pos) | |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1079 (if (eq char ?!) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1080 (error "This <%s> index does not contain entries sorted before the letters" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1081 reftex-index-tag) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1082 (error "This <%s> index does not contain entries starting with `%c'" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1083 reftex-index-tag char))))) |
| 25280 | 1084 |
| 1085 (easy-menu-define | |
| 1086 reftex-index-menu reftex-index-map | |
| 1087 "Menu for Index buffer" | |
| 1088 `("Index" | |
| 1089 ["Goto section A-Z" | |
| 1090 (message "To go to a section, just press any of: !%s" | |
| 1091 reftex-index-section-letters) t] | |
| 1092 ["Show Entry" reftex-index-view-entry t] | |
| 1093 ["Go To Entry" reftex-index-goto-entry t] | |
| 1094 ["Exit & Go To Entry" reftex-index-goto-entry-and-hide t] | |
| 1095 ["Table of Contents" reftex-index-goto-toc t] | |
| 1096 ["Quit" reftex-index-quit t] | |
| 1097 "--" | |
| 1098 ("Update" | |
| 1099 ["Rebuilt *Index* Buffer" revert-buffer t] | |
| 1100 "--" | |
| 1101 ["Rescan One File" reftex-index-rescan reftex-enable-partial-scans] | |
| 1102 ["Rescan Entire Document" reftex-index-Rescan t]) | |
| 1103 ("Restrict" | |
| 1104 ["Restrict to section" reftex-index-restrict-to-section t] | |
| 1105 ["Widen" reftex-index-widen reftex-index-restriction-indicator] | |
| 1106 ["Next Section" reftex-index-restriction-forward | |
| 1107 reftex-index-restriction-indicator] | |
| 1108 ["Previous Section" reftex-index-restriction-backward | |
| 1109 reftex-index-restriction-indicator]) | |
| 1110 ("Edit" | |
| 1111 ["Edit Entry" reftex-index-edit t] | |
| 1112 ["Edit Key" reftex-index-edit-key t] | |
| 1113 ["Edit Attribute" reftex-index-edit-attribute t] | |
| 1114 ["Edit Visual" reftex-index-edit-visual t] | |
| 1115 "--" | |
| 1116 ["Add Parentkey" reftex-index-level-down t] | |
| 1117 ["Remove Parentkey " reftex-index-level-up t] | |
| 1118 "--" | |
| 1119 ["Make Start-of-Range" reftex-index-toggle-range-beginning t] | |
| 1120 ["Make End-of-Range" reftex-index-toggle-range-end t] | |
| 1121 "--" | |
| 1122 ["Kill Entry" reftex-index-kill nil] | |
| 1123 "--" | |
| 1124 ["Undo" reftex-index-undo nil]) | |
| 1125 ("Options" | |
| 1126 ["Context" reftex-index-toggle-context :style toggle | |
| 1127 :selected reftex-index-include-context] | |
| 1128 "--" | |
| 1129 ["Follow Mode" reftex-index-toggle-follow :style toggle | |
| 1130 :selected reftex-index-follow-mode]) | |
| 1131 "--" | |
| 1132 ["Help" reftex-index-show-help t])) | |
| 1133 | |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1134 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1135 ;;---------------------------------------------------------------------- |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1136 ;; The Index Phrases File |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1137 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1138 ;; Some constants and variables |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1139 (defconst reftex-index-phrases-comment-regexp "^[ \t]*%.*" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1140 "Regular expression to match comment lines in phrases buffer") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1141 (defconst reftex-index-phrases-macrodef-regexp |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1142 "^\\(>>>INDEX_MACRO_DEFINITION:\\)[ \t]+\\(\\S-\\)\\( *\t[ \t]*\\)\\([^\t]*[^ \t]\\)\\( *\t[ \t]*\\)\\(\\S-+\\)" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1143 "Regular expression to match macro definition lines the phrases buffer.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1144 ;(defconst reftex-index-phrases-macrodef-regexp |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1145 ; "^\\(>>>INDEX_MACRO_DEFINITION:\\)[ \t]+\\(\\S-\\)\\([ \t]*\\)\\([^\t]*[^ \t]\\)\\([ \t]*\\)\\(nil\\|t\\)[ \t]*$" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1146 ; "Regular expression to match macro definition lines the phrases buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1147 ;This version would allow just spaces as separators.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1148 (defconst reftex-index-phrases-phrase-regexp1 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1149 "^\\(\\S-?\\)\\(\t\\)\\([^\t\n]*\\S-\\)\\([ \t]*\\)$" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1150 "Regular expression matching phrases which have no separate index key.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1151 (defconst reftex-index-phrases-phrase-regexp2 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1152 "^\\(\\S-?\\)\\(\t\\)\\([^\t]*\\S-\\)\\(\t[ \t]*\\)\\([^\n\t]*\\S-\\)[ \t]*$" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1153 "Regular expression matching phrases which have a separate index key.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1154 (defconst reftex-index-phrases-phrase-regexp12 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1155 "^\\(\\S-?\\)\\(\t\\)\\([^\n\t]*\\S-\\)\\(\\(\t[ \t]*\\)\\([^\n\t]*\\S-\\)\\)?[ \t]*$" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1156 "Regular expression matching all types of phrase lines.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1157 (defvar reftex-index-phrases-macro-data nil |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1158 "Alist containing the information taken from the macro definition lines. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1159 This gets refreshed in every phrases command.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1160 (defvar reftex-index-phrases-files nil |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1161 "List of document files relevant for the phrases file.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1162 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1163 (defvar reftex-index-phrases-font-lock-keywords nil |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1164 "Font lock keywords for reftex-index-phrases-mode.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1165 (defvar reftex-index-phrases-font-lock-defaults nil |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1166 "Font lock defaults for reftex-index-phrases-mode.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1167 (defvar reftex-index-phrases-map (make-sparse-keymap) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1168 "Keymap used for *toc* buffer.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1169 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1170 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1171 (defun reftex-index-phrase-selection-or-word (arg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1172 "Add current selection or word at point to the phrases buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1173 When you are in transient-mark-mode and the region is active, the |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1174 selection will be used - otherwise the word at point. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1175 You get a chance to edit the entry in the phrases buffer - finish with |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1176 `C-c C-c'." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1177 (interactive "P") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1178 (set-marker reftex-index-return-marker (point)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1179 (reftex-index-selection-or-word arg 'phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1180 (if (eq major-mode 'reftex-index-phrases-mode) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1181 (message |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1182 (substitute-command-keys |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1183 "Return to LaTeX with \\[reftex-index-phrases-save-and-return]")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1184 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1185 (defun reftex-index-visit-phrases-buffer () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1186 "Switch to the phrases buffer, initialize if empty." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1187 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1188 (reftex-access-scan-info) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1189 (let* ((master (reftex-TeX-master-file)) |
|
27192
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27035
diff
changeset
|
1190 (name (concat (file-name-sans-extension master) |
|
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27035
diff
changeset
|
1191 reftex-index-phrase-file-extension))) |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1192 (find-file name) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1193 (unless (eq major-mode 'reftex-index-phrases-mode) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1194 (reftex-index-phrases-mode)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1195 (if (= (buffer-size) 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1196 (reftex-index-initialize-phrases-buffer master)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1197 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1198 (defun reftex-index-initialize-phrases-buffer (&optional master) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1199 "Initialize the phrases buffer by creating the header. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1200 If the buffer is non-empty, delete the old header first." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1201 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1202 (let* ((case-fold-search t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1203 (default-key (car reftex-index-default-macro)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1204 (default-macro (nth 1 (assoc default-key |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1205 reftex-key-to-index-macro-alist))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1206 (macro-alist |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1207 (sort (copy-sequence reftex-index-macro-alist) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1208 (lambda (a b) (equal (car a) default-macro)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1209 macro entry key repeat) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1210 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1211 (if master (set (make-local-variable 'TeX-master) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1212 (file-name-nondirectory master))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1213 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1214 (when (> (buffer-size) 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1215 (goto-char 1) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1216 (set-mark (point)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1217 (while (re-search-forward reftex-index-phrases-macrodef-regexp nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1218 (end-of-line)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1219 (beginning-of-line 2) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1220 (if (looking-at reftex-index-phrases-comment-regexp) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1221 (beginning-of-line 2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1222 (while (looking-at "^[ \t]*$") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1223 (beginning-of-line 2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1224 (cond ((fboundp 'zmacs-activate-region) (zmacs-activate-region)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1225 ((boundp 'make-active) (setq mark-active t))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1226 (if (yes-or-no-p "Delete and rebuilt header ") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1227 (delete-region (point-min) (point)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1228 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1229 ;; Insert the mode line |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1230 (insert |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1231 (format "%% -*- mode: reftex-index-phrases; TeX-master: \"%s\" -*-\n" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1232 (file-name-nondirectory (reftex-index-phrase-tex-master)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1233 ;; Insert the macro definitions |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1234 (insert "% Key Macro Format Repeat\n") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1235 (insert "%---------------------------------------------------------------------\n") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1236 (while (setq entry (pop macro-alist)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1237 (setq macro (car entry) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1238 repeat (nth 7 entry) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1239 key (car (delq nil (mapcar (lambda (x) (if (equal (nth 1 x) macro) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1240 (car x) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1241 nil)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1242 reftex-key-to-index-macro-alist)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1243 (insert (format ">>>INDEX_MACRO_DEFINITION:\t%s\t%-20s\t%s\n" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1244 (char-to-string key) (concat macro "{%s}") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1245 (if repeat "t" "nil")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1246 (insert "%---------------------------------------------------------------------\n\n\n"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1247 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1248 (defvar TeX-master) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1249 (defun reftex-index-phrase-tex-master (&optional dir) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1250 "Return the name of the master file associated with a phrase buffer." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1251 (if (and (boundp 'TeX-master) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1252 (local-variable-p 'TeX-master (current-buffer)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1253 (stringp TeX-master)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1254 ;; We have a local variable which tells us which file to use |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1255 (expand-file-name TeX-master dir) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1256 ;; have to guess |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1257 (concat (file-name-sans-extension (buffer-file-name)) ".tex"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1258 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1259 (defun reftex-index-phrases-save-and-return () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1260 "Return to where the `reftex-index-phrase-selection-or-word' was called." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1261 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1262 (save-buffer) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1263 (switch-to-buffer (marker-buffer reftex-index-return-marker)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1264 (goto-char (or (marker-position reftex-index-return-marker) (point)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1265 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1266 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1267 (defvar reftex-index-phrases-menu) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1268 (defvar reftex-index-phrases-restrict-file nil) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1269 ;;;###autoload |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1270 (defun reftex-index-phrases-mode () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1271 "Major mode for managing the Index phrases of a LaTeX document. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1272 This buffer was created with RefTeX. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1273 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1274 To insert new phrases, use |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1275 - `C-c \\' in the LaTeX document to copy selection or word |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1276 - `\\[reftex-index-new-phrase]' in the phrases buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1277 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1278 To index phrases use one of: |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1279 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1280 \\[reftex-index-this-phrase] index current phrase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1281 \\[reftex-index-next-phrase] index next phrase (or N with prefix arg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1282 \\[reftex-index-all-phrases] index all phrases |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1283 \\[reftex-index-remaining-phrases] index current and following phrases |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1284 \\[reftex-index-region-phrases] index the phrases in the region |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1285 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1286 You can sort the phrases in this buffer with \\[reftex-index-sort-phrases]. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1287 To display information about the phrase at point, use \\[reftex-index-phrases-info]. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1288 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1289 For more information see the RefTeX User Manual. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1290 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1291 Here are all local bindings. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1292 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1293 \\{reftex-index-phrases-map}" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1294 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1295 (kill-all-local-variables) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1296 (setq major-mode 'reftex-index-phrases-mode |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1297 mode-name "Phrases") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1298 (use-local-map reftex-index-phrases-map) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1299 (set (make-local-variable 'font-lock-defaults) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1300 reftex-index-phrases-font-lock-defaults) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1301 (easy-menu-add reftex-index-phrases-menu reftex-index-phrases-map) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1302 (set (make-local-variable 'reftex-index-phrases-marker) (make-marker)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1303 (run-hooks 'reftex-index-phrases-mode-hook)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1304 (add-hook 'reftex-index-phrases-mode-hook 'turn-on-font-lock) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1305 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1306 ;; Font Locking stuff |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1307 (let ((ss (if (featurep 'xemacs) 'secondary-selection ''secondary-selection))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1308 (setq reftex-index-phrases-font-lock-keywords |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1309 (list |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1310 (cons reftex-index-phrases-comment-regexp 'font-lock-comment-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1311 (list reftex-index-phrases-macrodef-regexp |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1312 '(1 font-lock-type-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1313 '(2 font-lock-keyword-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1314 (list 3 ss) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1315 '(4 font-lock-function-name-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1316 (list 5 ss) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1317 '(6 font-lock-string-face)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1318 (list reftex-index-phrases-phrase-regexp1 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1319 '(1 font-lock-keyword-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1320 (list 2 ss) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1321 '(3 font-lock-string-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1322 (list 4 ss)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1323 (list reftex-index-phrases-phrase-regexp2 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1324 '(1 font-lock-keyword-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1325 (list 2 ss) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1326 '(3 font-lock-string-face) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1327 (list 4 ss) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1328 '(5 font-lock-function-name-face)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1329 (cons "^\t$" ss))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1330 (setq reftex-index-phrases-font-lock-defaults |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1331 '((reftex-index-phrases-font-lock-keywords) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1332 nil t nil beginning-of-line)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1333 (put 'reftex-index-phrases-mode 'font-lock-defaults |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1334 reftex-index-phrases-font-lock-defaults) ; XEmacs |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1335 ) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1336 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1337 (defvar reftex-index-phrases-marker) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1338 (defun reftex-index-next-phrase (&optional arg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1339 "Index the next ARG phrases in the phrases buffer." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1340 (interactive "p") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1341 (reftex-index-phrases-parse-header t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1342 (while (> arg 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1343 (decf arg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1344 (end-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1345 (if (re-search-forward reftex-index-phrases-phrase-regexp12 nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1346 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1347 (goto-char (match-beginning 0)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1348 (reftex-index-this-phrase)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1349 (error "No more phrase lines after point")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1350 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1351 (defun reftex-index-this-phrase () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1352 "Index the phrase in the current line. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1353 Does a global search and replace in the entire document. At each |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1354 match, the user will be asked to confirm the replacement." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1355 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1356 (if (interactive-p) (reftex-index-phrases-parse-header t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1357 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1358 (beginning-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1359 (cond ((looking-at reftex-index-phrases-comment-regexp) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1360 (if (interactive-p) (error "Comment line"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1361 ((looking-at "^[ \t]*$") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1362 (if (interactive-p) (error "Empty line"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1363 ((looking-at reftex-index-phrases-macrodef-regexp) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1364 (if (interactive-p) (error "Macro definition line"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1365 ((looking-at reftex-index-phrases-phrase-regexp12) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1366 ;; This is a phrase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1367 (let* ((char (if (not (equal (match-string 1) "")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1368 (string-to-char (match-string 1)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1369 (phrase (match-string 3)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1370 (index-key (match-string 6)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1371 (macro-data (cdr (if (null char) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1372 (car reftex-index-phrases-macro-data) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1373 (assoc char reftex-index-phrases-macro-data)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1374 (macro-fmt (car macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1375 (repeat (nth 1 macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1376 (files |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1377 (cond ((and (stringp reftex-index-phrases-restrict-file) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1378 (file-regular-p reftex-index-phrases-restrict-file)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1379 (list reftex-index-phrases-restrict-file)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1380 ((stringp reftex-index-phrases-restrict-file) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1381 (error "Illegal restriction file %s" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1382 reftex-index-phrases-restrict-file)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1383 (t reftex-index-phrases-files))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1384 (as-words reftex-index-phrases-search-whole-words)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1385 (unless macro-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1386 (error "No macro associated with key %c" char)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1387 (unwind-protect |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1388 (let ((overlay-arrow-string "=>") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1389 (overlay-arrow-position |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1390 reftex-index-phrases-marker) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1391 (replace-count 0)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1392 ;; Show the overlay arrow |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1393 (move-marker reftex-index-phrases-marker |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1394 (match-beginning 0) (current-buffer)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1395 ;; Start the query-replace |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1396 (reftex-query-index-phrase-globally |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1397 files phrase macro-fmt |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1398 index-key repeat as-words) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1399 (message "%s replaced" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1400 (reftex-number replace-count "occurrence")))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1401 (t (error "Cannot parse this line"))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1402 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1403 (defun reftex-index-all-phrases () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1404 "Index all phrases in the phrases buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1405 Calls `reftex-index-this-phrase' on each line in the buffer." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1406 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1407 (reftex-index-region-phrases (point-min) (point-max))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1408 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1409 (defun reftex-index-remaining-phrases () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1410 "Index all phrases in the phrases buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1411 Calls `reftex-index-this-phrase' on each line ay and below point in |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1412 the buffer." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1413 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1414 (beginning-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1415 (reftex-index-region-phrases (point) (point-max))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1416 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1417 (defun reftex-index-region-phrases (beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1418 "Index all phrases in the phrases buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1419 Calls `reftex-index-this-phrase' on each line in the region." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1420 (interactive "r") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1421 (reftex-index-phrases-parse-header t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1422 (goto-char beg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1423 (while (not (or (eobp) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1424 (>= (point) end))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1425 (save-excursion (reftex-index-this-phrase)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1426 (beginning-of-line 2))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1427 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1428 (defun reftex-index-phrases-parse-header (&optional get-files) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1429 "Parse the header of a phrases file to extract the macro definitions. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1430 The definitions get stored in `reftex-index-phrases-macro-data'. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1431 Also switches to the LaTeX document to find out which files belong to |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1432 the document and stores the list in `reftex-index-phrases-files'." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1433 (let* ((master (reftex-index-phrase-tex-master)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1434 buf) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1435 (if get-files |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1436 ;; Get the file list |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1437 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1438 (setq buf (reftex-get-file-buffer-force master)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1439 (unless buf (error "Master file %s not found" master)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1440 (set-buffer buf) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1441 (reftex-access-scan-info) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1442 (setq reftex-index-phrases-files |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1443 (reftex-all-document-files)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1444 ;; Parse the files header for macro definitions |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1445 (setq reftex-index-phrases-macro-data nil) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1446 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1447 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1448 (while (re-search-forward reftex-index-phrases-macrodef-regexp nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1449 (push (list |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1450 (string-to-char (match-string 2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1451 (match-string 4) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1452 (equal (match-string 6) "t")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1453 reftex-index-phrases-macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1454 ;; Reverse the list, so that the first macro is first |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1455 (if (null reftex-index-phrases-macro-data) |
|
27192
f70a80cecdd3
New version number.
Carsten Dominik <dominik@science.uva.nl>
parents:
27035
diff
changeset
|
1456 (error "No valid MACRO DEFINITION line in %s file (make sure to use TAB separators)" reftex-index-phrase-file-extension)) |
|
26910
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1457 (setq reftex-index-phrases-macro-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1458 (nreverse reftex-index-phrases-macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1459 (goto-char (point-min))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1460 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1461 (defun reftex-index-phrases-apply-to-region (beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1462 "Index all index phrases in the current region. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1463 This works exactly like global indexing from the index phrases buffer, |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1464 but operation is restricted to the current region. This is useful if |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1465 you need to add/change text in an already indexed document and want to |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1466 index the new part without having to go over the unchanged parts again." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1467 (interactive "r") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1468 (let ((win-conf (current-window-configuration)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1469 (reftex-index-phrases-restrict-file (buffer-file-name))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1470 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1471 (save-restriction |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1472 (narrow-to-region beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1473 (unwind-protect |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1474 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1475 ;; Hide the region highlighting |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1476 (cond ((fboundp 'zmacs-deactivate-region) (zmacs-deactivate-region)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1477 ((fboundp 'deactivate-mark) (deactivate-mark))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1478 (delete-other-windows) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1479 (reftex-index-visit-phrases-buffer) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1480 (reftex-index-all-phrases)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1481 (set-window-configuration win-conf)))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1482 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1483 (defun reftex-index-new-phrase (&optional text) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1484 "Open a new line in the phrases buffer, insert TEXT." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1485 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1486 (if (and text (stringp text)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1487 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1488 ;; Check if the phrase is already in the buffer |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1489 (setq text (reftex-index-simplify-phrase text)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1490 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1491 (if (re-search-forward |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1492 (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1493 "\\) *[\t\n]") nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1494 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1495 (goto-char (match-end 2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1496 (error "Phrase is already in phrases buffer"))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1497 ;; Add the new phrase line after the last in the buffer |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1498 (goto-char (point-max)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1499 (if (re-search-backward reftex-index-phrases-phrase-regexp12 nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1500 (end-of-line)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1501 (if (not (bolp)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1502 (insert "\n")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1503 (insert "\t") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1504 (if (and text (stringp text)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1505 (insert text))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1506 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1507 (defun reftex-index-find-next-conflict-phrase (&optional arg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1508 "Find the next a phrase which is has conflicts in the phrase buffer. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1509 The command helps to find possible conflicts in the phrase indexing process. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1510 It searches downward from point for a phrase which is repeated elsewhere |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1511 in the buffer, or which is a subphrase of another phrase. If such a |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1512 phrase is found, the phrase info is displayed. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1513 To check the whole buffer, start at the beginning and continue by calling |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1514 this function repeatedly." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1515 (interactive "P") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1516 (if (catch 'exit |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1517 (while (re-search-forward reftex-index-phrases-phrase-regexp12 nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1518 (goto-char (match-beginning 3)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1519 (let* ((phrase (match-string 3)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1520 (case-fold-search reftex-index-phrases-case-fold-search) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1521 (re (reftex-index-phrases-find-dup-re phrase t))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1522 (if (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1523 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1524 (and (re-search-forward re nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1525 (re-search-forward re nil t))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1526 (throw 'exit t))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1527 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1528 (reftex-index-phrases-info) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1529 (message "Phrase with match conflict discovered")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1530 (goto-char (point-max)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1531 (error "No further problematic phrases found"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1532 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1533 (defun reftex-index-phrases-info () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1534 "Display information about the phrase at point." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1535 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1536 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1537 (beginning-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1538 (unless (looking-at reftex-index-phrases-phrase-regexp12) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1539 (error "Not a phrase line")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1540 (save-match-data (reftex-index-phrases-parse-header t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1541 (let* ((char (if (not (equal (match-string 1) "")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1542 (string-to-char (match-string 1)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1543 (phrase (match-string 3)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1544 (index-key (match-string 6)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1545 (index-keys (split-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1546 (or index-key phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1547 reftex-index-phrases-logical-or-regexp)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1548 (macro-data (cdr (if (null char) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1549 (car reftex-index-phrases-macro-data) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1550 (assoc char reftex-index-phrases-macro-data)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1551 (macro-fmt (car macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1552 (repeat (nth 1 macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1553 (as-words reftex-index-phrases-search-whole-words) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1554 (example (reftex-index-make-replace-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1555 macro-fmt (downcase phrase) (car index-keys) repeat)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1556 (re (reftex-index-make-phrase-regexp phrase as-words t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1557 (re1 (reftex-index-phrases-find-dup-re phrase)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1558 (re2 (reftex-index-phrases-find-dup-re phrase 'sub)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1559 superphrases |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1560 (nmatches 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1561 (ntimes1 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1562 (ntimes2 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1563 (case-fold-search reftex-index-phrases-case-fold-search) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1564 file files buf) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1565 (setq files reftex-index-phrases-files) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1566 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1567 (save-restriction |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1568 (widen) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1569 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1570 (while (re-search-forward re1 nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1571 (incf ntimes1)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1572 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1573 (while (re-search-forward re2 nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1574 (push (cons (count-lines 1 (point)) (match-string 1)) superphrases) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1575 (incf ntimes2)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1576 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1577 (while (setq file (pop files)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1578 (setq buf (reftex-get-file-buffer-force file)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1579 (when buf |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1580 (set-buffer buf) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1581 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1582 (save-restriction |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1583 (widen) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1584 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1585 (let ((case-fold-search reftex-index-phrases-case-fold-search)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1586 (while (re-search-forward re nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1587 (or (reftex-in-comment) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1588 (incf nmatches))))))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1589 (with-output-to-temp-buffer "*Help*" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1590 (princ (format " Phrase: %s\n" phrase)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1591 (princ (format " Macro key: %s\n" char)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1592 (princ (format " Macro format: %s\n" macro-fmt)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1593 (princ (format " Repeat: %s\n" repeat)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1594 (cond |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1595 (index-key |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1596 (let ((iks index-keys) (cnt 0) ik) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1597 (while (setq ik (pop iks)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1598 (princ (format "Index entry %d: %s\n" (incf cnt) ik))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1599 (repeat |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1600 (princ (format " Index entry: %s\n" phrase))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1601 (t |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1602 (princ (format " Index key: <<Given by the match>>\n")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1603 (princ (format " Example: %s\n" example)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1604 (terpri) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1605 (princ (format "Total matches: %s in %s\n" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1606 (reftex-number nmatches "match" "es") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1607 (reftex-number (length reftex-index-phrases-files) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1608 "LaTeX file"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1609 (princ (format " Uniqueness: Phrase occurs %s in phrase buffer\n" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1610 (reftex-number ntimes1 "time"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1611 (if (> ntimes2 1) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1612 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1613 (princ (format " Superphrases: Phrase matches the following %s in the phrase buffer:\n" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1614 (reftex-number ntimes2 "line"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1615 (mapcar (lambda(x) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1616 (princ (format " Line %4d: %s\n" (car x) (cdr x)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1617 (nreverse superphrases)))))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1618 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1619 (defun reftex-index-phrases-set-macro-key () |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1620 "Change the macro key for the current line. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1621 Prompts for a macro key and insert is at the beginning of the line. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1622 If you reply with SPACE, the macro keyn will be removed, so that the |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1623 default macro will be used. If you reply with `RET', just prints |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1624 information about the currently selected macro." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1625 (interactive) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1626 (reftex-index-phrases-parse-header) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1627 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1628 (beginning-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1629 (unless (or (looking-at reftex-index-phrases-phrase-regexp12) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1630 (looking-at "\t")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1631 (error "This is not a phrase line")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1632 (let* ((nc (reftex-index-select-phrases-macro 0)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1633 (macro-data (assoc nc reftex-index-phrases-macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1634 macro-fmt repeat) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1635 (cond (macro-data) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1636 ((equal nc ?\ ) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1637 (setq nc "" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1638 macro-data (car reftex-index-phrases-macro-data))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1639 ((equal nc ?\C-m) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1640 (setq nc (char-after (point))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1641 (if (equal nc ?\t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1642 (setq nc "" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1643 macro-data (car reftex-index-phrases-macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1644 (setq macro-data (assoc nc reftex-index-phrases-macro-data)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1645 (t (error "No macro associated with %c" nc))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1646 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1647 (setq macro-fmt (nth 1 macro-data) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1648 repeat (nth 2 macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1649 (if macro-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1650 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1651 (if (looking-at "[^\t]") (delete-char 1)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1652 (insert nc) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1653 (message "Line will use %s %s repeat" macro-fmt |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1654 (if repeat "with" "without"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1655 (error "Abort"))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1656 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1657 (defun reftex-index-sort-phrases (&optional chars-first) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1658 "Sort the phrases lines in the buffer alphabetically. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1659 Normally, this looks only at the phrases. With a prefix arg CHARS-FIRST, |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1660 it first compares the macro identifying chars and then the phrases." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1661 (interactive "P") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1662 ;; Remember the current line, so that we can return |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1663 (let ((line (buffer-substring (progn (beginning-of-line) (point)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1664 (progn (end-of-line) (point)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1665 beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1666 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1667 ;; Find first and last phrase line in buffer |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1668 (setq beg |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1669 (and (re-search-forward reftex-index-phrases-phrase-regexp12 nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1670 (match-beginning 0))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1671 (goto-char (point-max)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1672 (setq end (re-search-backward reftex-index-phrases-phrase-regexp12 nil t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1673 (if end (setq end (progn (goto-char end) (end-of-line) (point)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1674 ;; Take the lines, sort them and re-insert. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1675 (if (and beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1676 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1677 (message "Sorting lines...") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1678 (let* ((lines (split-string (buffer-substring beg end) "\n")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1679 (lines1 (sort lines 'reftex-compare-phrase-lines))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1680 (message "Sorting lines...done") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1681 (let ((inhibit-quit t)) ;; make sure we do not loose lines |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1682 (delete-region beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1683 (insert (mapconcat 'identity lines1 "\n")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1684 (goto-char (point-max)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1685 (re-search-backward (concat "^" (regexp-quote line) "$") nil t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1686 (error "Cannot find phrases lines to sort")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1687 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1688 (defvar chars-first) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1689 (defun reftex-compare-phrase-lines (a b) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1690 "The comparison function used for sorting." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1691 (let (ca cb pa pb c-p p-p) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1692 (if (string-match reftex-index-phrases-phrase-regexp12 a) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1693 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1694 ;; Extract macro char and phrase-or-key for a |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1695 (setq ca (match-string 1 a) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1696 pa (downcase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1697 (or (and reftex-index-phrases-sort-prefers-entry |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1698 (match-string 6 a)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1699 (match-string 3 a)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1700 (if (string-match reftex-index-phrases-phrase-regexp12 b) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1701 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1702 ;; Extract macro char and phrase-or-key for b |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1703 (setq cb (match-string 1 b) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1704 pb (downcase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1705 (or (and reftex-index-phrases-sort-prefers-entry |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1706 (match-string 6 b)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1707 (match-string 3 b)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1708 (setq c-p (string< ca cb) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1709 p-p (string< pa pb)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1710 ;; Do the right comparison, based on the value of `chars-first' |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1711 ;; `chars-first' is bound locally in the calling function |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1712 (if chars-first |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1713 (if (string= ca cb) p-p c-p) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1714 (if (string= pa pb) c-p p-p))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1715 ;; If line a does not match, the answer we return determines |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1716 ;; if non-matching lines are collected at the beginning. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1717 ;; When we return t here, non-matching lines form |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1718 ;; block separators for searches. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1719 (not reftex-index-phrases-sort-in-blocks)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1720 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1721 (defvar reftex-index-phrases-menu) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1722 (defun reftex-index-make-phrase-regexp (phrase &optional |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1723 as-words allow-newline) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1724 "Return a regexp matching PHRASE, even if distributed over lines. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1725 With optional arg AS-WORDS, require word boundary at beginning and end. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1726 With optional arg ALLOW-NEWLINE, allow single newline between words." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1727 (let* ((words (split-string phrase)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1728 (space-re (if allow-newline |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1729 "\\([ \t]*\\(\n[ \t]*\\)?\\|[ \t]\\)" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1730 "\\([ \t]+\\)"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1731 (concat (if (and as-words (string-match "\\`\\w" (car words))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1732 "\\<" "") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1733 (mapconcat (lambda (w) (regexp-quote (downcase w))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1734 words space-re) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1735 (if (and as-words |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1736 (string-match "\\w\\'" (nth (1- (length words)) words))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1737 "\\>" "")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1738 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1739 (defun reftex-index-simplify-phrase (phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1740 "Make phrase single spaces and single line." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1741 (mapconcat 'identity (split-string phrase) " ")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1742 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1743 (defun reftex-index-phrases-find-dup-re (phrase &optional sub) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1744 "Return a regexp which matches variations of PHRASE (with additional space). |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1745 When SUB ins non-nil, the regexp will also match when PHRASE is a subphrase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1746 of another phrase. The regexp works lonly in the phrase buffer." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1747 (concat (if sub "^\\S-?\t\\([^\t\n]*" "^\\S-?\t") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1748 (mapconcat 'regexp-quote (split-string phrase) " +") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1749 (if sub "[^\t\n]*\\)\\([\t\n]\\|$\\)" " *\\([\t\n]\\|$\\)"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1750 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1751 (defun reftex-index-make-replace-string (macro-fmt match index-key |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1752 &optional repeat mathp) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1753 "Return the string which can be used as replacement. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1754 Treats the logical `and' for index phrases." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1755 (let ((index-keys (split-string (or index-key match) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1756 reftex-index-phrases-logical-and-regexp))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1757 (concat |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1758 (mapconcat (lambda (x) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1759 (format macro-fmt |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1760 (format (if mathp reftex-index-math-format "%s") x))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1761 index-keys "") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1762 (if repeat (reftex-index-simplify-phrase match) "")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1763 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1764 (defun reftex-query-index-phrase-globally (files &rest args) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1765 "Call `reftex-query-index-phrase' for all files in FILES." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1766 (let ((win-conf (current-window-configuration)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1767 (file)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1768 (unless files (error "No files")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1769 (unwind-protect |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1770 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1771 (switch-to-buffer-other-window (reftex-get-file-buffer-force |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1772 (car files))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1773 (catch 'no-more-files |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1774 (while (setq file (pop files)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1775 (switch-to-buffer (reftex-get-file-buffer-force file)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1776 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1777 (save-restriction |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1778 (unless (stringp reftex-index-phrases-restrict-file) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1779 (widen)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1780 (goto-char (point-min)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1781 (apply 'reftex-query-index-phrase args)))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1782 (reftex-unhighlight 0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1783 (set-window-configuration win-conf)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1784 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1785 (defconst reftex-index-phrases-help |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1786 " Keys for query-index search |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1787 =========================== |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1788 y Replace this match |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1789 n Skip this match |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1790 ! Replace this and all further matches in this file |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1791 q / Q Skip match, start next file / start next phrase |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1792 o Use a different indexing macro for this match |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1793 1 - 9 Select one of the multiple phrases |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1794 e Edit the replacement text |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1795 C-r Recursive edit. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1796 s / S Save this buffer / Save all document buffers |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1797 C-g Abort" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1798 "The help string for indexing phrases.") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1799 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1800 (defvar replace-count) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1801 (defun reftex-query-index-phrase (phrase macro-fmt &optional |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1802 index-key repeat as-words) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1803 "Search through buffer for PHRASE, and offer to replace it with an indexed |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1804 version. The index version is derived by applying `format' with MACRO-FMT |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1805 to INDEX-KEY or PHRASE. When REPEAT is non-nil, the PHRASE is inserted |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1806 again after the macro. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1807 AS-WORDS means, the search for PHRASE should require word boundaries at |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1808 both ends." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1809 (let* ((re (reftex-index-make-phrase-regexp phrase as-words 'allow-newline)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1810 (case-fold-search reftex-index-phrases-case-fold-search) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1811 (index-keys (split-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1812 (or index-key phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1813 reftex-index-phrases-logical-or-regexp)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1814 (nkeys (length index-keys)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1815 (ckey (nth 0 index-keys)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1816 (all-yes nil) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1817 match rpl char beg end mathp) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1818 (unwind-protect |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1819 (while (re-search-forward re nil t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1820 (catch 'next-match |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1821 (setq match (match-string 0)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1822 (setq mathp |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1823 (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1824 (condition-case nil (texmathp) (error nil)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1825 (setq beg (car (match-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1826 end (nth 1 (match-data))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1827 (if (and reftex-index-phrases-skip-indexed-matches |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1828 (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1829 (reftex-index-phrase-match-is-indexed beg |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1830 end))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1831 (throw 'next-match nil)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1832 (reftex-highlight 0 (match-beginning 0) (match-end 0)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1833 (setq rpl |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1834 (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1835 (reftex-index-make-replace-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1836 macro-fmt (match-string 0) ckey repeat mathp))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1837 (while |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1838 (not |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1839 (catch 'loop |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1840 (message "REPLACE: %s? (yn!qoe%s?)" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1841 rpl |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1842 (if (> nkeys 1) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1843 (concat "1-" (int-to-string nkeys)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1844 "")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1845 (setq char (if all-yes ?y (read-char-exclusive))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1846 (cond ((member char '(?y ?Y ?\ )) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1847 ;; Yes! |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1848 (replace-match rpl t t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1849 (incf replace-count) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1850 ;; See if we should insert newlines to shorten lines |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1851 (and reftex-index-phrases-wrap-long-lines |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1852 (reftex-index-phrases-fixup-line beg end)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1853 (throw 'loop t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1854 ((member char '(?n ?N ?\C-h ?\C-?));; FIXME: DEL |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1855 ;; No |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1856 (throw 'loop t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1857 ((equal char ?!) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1858 ;; Yes for all in this buffer |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1859 (setq all-yes t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1860 ((equal char ?q) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1861 ;; Stop this one in this file |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1862 (goto-char (point-max)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1863 (throw 'loop t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1864 ((equal char ?Q) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1865 ;; Stop this one |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1866 (throw 'no-more-files t)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1867 ((equal char ?s) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1868 (save-buffer)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1869 ((equal char ?S) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1870 (reftex-save-all-document-buffers)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1871 ((equal char ?\C-g) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1872 (keyboard-quit)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1873 ((member char '(?o ?O)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1874 ;; Select a differnt macro |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1875 (let* ((nc (reftex-index-select-phrases-macro 2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1876 (macro-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1877 (cdr (assoc nc reftex-index-phrases-macro-data))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1878 (macro-fmt (car macro-data)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1879 (repeat (nth 1 macro-data))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1880 (if macro-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1881 (setq rpl (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1882 (reftex-index-make-replace-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1883 macro-fmt match |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1884 ckey repeat mathp))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1885 (ding)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1886 ((equal char ?\?) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1887 ;; Help |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1888 (with-output-to-temp-buffer "*Help*" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1889 (princ reftex-index-phrases-help))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1890 ((equal char ?\C-r) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1891 ;; Recursive edit |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1892 (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1893 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1894 (message |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1895 (substitute-command-keys |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1896 "Recursive edit. Resume with \\[exit-recursive-edit]")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1897 (recursive-edit)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1898 ((equal char ?e) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1899 (setq rpl (read-string "Edit: " rpl))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1900 ((equal char ?0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1901 (setq ckey (or index-key phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1902 rpl (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1903 (reftex-index-make-replace-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1904 macro-fmt match ckey repeat mathp)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1905 ((and (> char ?0) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1906 (<= char (+ ?0 nkeys))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1907 (setq ckey (nth (1- (- char ?0)) index-keys) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1908 rpl (save-match-data |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1909 (reftex-index-make-replace-string |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1910 macro-fmt match ckey repeat mathp)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1911 (t (ding))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1912 nil))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1913 (message "") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1914 (setq all-yes nil) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1915 (reftex-unhighlight 0)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1916 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1917 (defun reftex-index-phrase-match-is-indexed (beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1918 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1919 (goto-char end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1920 (let* ((this-macro (car (reftex-what-macro 1))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1921 (before-char (char-before beg)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1922 (after-char (char-after end)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1923 (before-macro |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1924 (and (> beg 2) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1925 (goto-char (1- beg)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1926 (memq (char-after (point)) '(?\] ?\})) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1927 (car (reftex-what-macro 1)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1928 (after-macro |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1929 (and (goto-char end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1930 (looking-at "\\(\\\\[a-zA-Z]+\\*?\\)[[{]") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1931 (match-string 1)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1932 (or (and this-macro |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1933 (member before-char '(?\{ ?\[)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1934 (member after-char '(?\} ?\])) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1935 (member this-macro reftex-macros-with-index)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1936 (and before-macro |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1937 (member before-macro reftex-macros-with-index)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1938 (and after-macro |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1939 (member after-macro reftex-macros-with-index)))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1940 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1941 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1942 (defun reftex-index-phrases-fixup-line (beg end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1943 "Insert newlines before BEG and/or after END to shorten line." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1944 (let (bol eol space1 space2) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1945 (save-excursion |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1946 ;; Find line boundaries and possible line breaks near BEG and END |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1947 (beginning-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1948 (setq bol (point)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1949 (end-of-line) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1950 (setq eol (point)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1951 (goto-char beg) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1952 (skip-chars-backward "^ \n") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1953 (if (and (equal (preceding-char) ?\ ) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1954 (string-match "\\S-" (buffer-substring bol (point)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1955 (setq space1 (1- (point)))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1956 (goto-char end) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1957 (skip-chars-forward "^ \n") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1958 (if (and (equal (following-char) ?\ ) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1959 (string-match "\\S-" (buffer-substring (point) eol))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1960 (setq space2 (point))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1961 ;; Now check what we have and insert the newlines |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1962 (if (<= (- eol bol) fill-column) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1963 ;; Line is already short |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1964 nil |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1965 (cond |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1966 ((and (not space1) (not space2))) ; No spaces available |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1967 ((not space2) ; Do space1 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1968 (reftex-index-phrases-replace-space space1)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1969 ((not space1) ; Do space2 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1970 (reftex-index-phrases-replace-space space2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1971 (t ; We have both spaces |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1972 (let ((l1 (- space1 bol)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1973 (l2 (- space2 space1)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1974 (l3 (- eol space2))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1975 (if (> l2 fill-column) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1976 ;; The central part alone is more than one line |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1977 (progn |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1978 (reftex-index-phrases-replace-space space1) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1979 (reftex-index-phrases-replace-space space2)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1980 (if (> (+ l1 l2) fill-column) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1981 ;; Need to split beginning |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1982 (reftex-index-phrases-replace-space space1)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1983 (if (> (+ l2 l3) fill-column) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1984 ;; Need to split end |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1985 (reftex-index-phrases-replace-space space2)))))))))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1986 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1987 (defun reftex-index-phrases-replace-space (pos) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1988 "If there is a space at POS, replace it with a newline char. |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1989 Does not do a save-excursion." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1990 (when (equal (char-after pos) ?\ ) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1991 (goto-char pos) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1992 (delete-char 1) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1993 (insert "\n"))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1994 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1995 (defun reftex-index-select-phrases-macro (&optional delay) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1996 "Offer a list of possible index macros and have the user select one." |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1997 (let* ((prompt (concat "Select macro: [" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1998 (mapconcat (lambda (x) (char-to-string (car x))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
1999 reftex-index-phrases-macro-data "") |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2000 "] ")) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2001 (help (concat "Select an indexing macro\n========================\n" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2002 (mapconcat (lambda (x) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2003 (format " [%c] %s" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2004 (car x) (nth 1 x))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2005 reftex-index-phrases-macro-data "\n")))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2006 (reftex-select-with-char prompt help delay))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2007 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2008 ;; Keybindings and Menu for phrases buffer |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2009 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2010 (loop for x in |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2011 '(("\C-c\C-c" . reftex-index-phrases-save-and-return) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2012 ("\C-c\C-x" . reftex-index-this-phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2013 ("\C-c\C-f" . reftex-index-next-phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2014 ("\C-c\C-r" . reftex-index-region-phrases) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2015 ("\C-c\C-a" . reftex-index-all-phrases) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2016 ("\C-c\C-d" . reftex-index-remaining-phrases) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2017 ("\C-c\C-s" . reftex-index-sort-phrases) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2018 ("\C-c\C-n" . reftex-index-new-phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2019 ("\C-c\C-m" . reftex-index-phrases-set-macro-key) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2020 ("\C-c\C-i" . reftex-index-phrases-info) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2021 ("\C-c\C-t" . reftex-index-find-next-conflict-phrase) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2022 ("\C-i" . self-insert-command)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2023 do (define-key reftex-index-phrases-map (car x) (cdr x))) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2024 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2025 (easy-menu-define |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2026 reftex-index-phrases-menu reftex-index-phrases-map |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2027 "Menu for Phrases buffer" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2028 '("Phrases" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2029 ["New Phrase" reftex-index-new-phrase t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2030 ["Set Phrase Macro" reftex-index-phrases-set-macro-key t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2031 ["Recreate File Header" reftex-index-initialize-phrases-buffer t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2032 "--" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2033 ("Sort Phrases" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2034 ["Sort" reftex-index-sort-phrases t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2035 "--" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2036 "Sort Options" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2037 ["by Search Phrase" (setq reftex-index-phrases-sort-prefers-entry nil) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2038 :style radio :selected (not reftex-index-phrases-sort-prefers-entry)] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2039 ["by Index Entry" (setq reftex-index-phrases-sort-prefers-entry t) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2040 :style radio :selected reftex-index-phrases-sort-prefers-entry] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2041 ["in Blocks" (setq reftex-index-phrases-sort-in-blocks |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2042 (not reftex-index-phrases-sort-in-blocks)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2043 :style toggle :selected reftex-index-phrases-sort-in-blocks]) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2044 ["Describe Phrase" reftex-index-phrases-info t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2045 ["Next Phrase Conflict" reftex-index-find-next-conflict-phrase t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2046 "--" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2047 ("Find and Index in Document" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2048 ["Current Phrase" reftex-index-this-phrase t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2049 ["Next Phrase" reftex-index-next-phrase t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2050 ["Current and Following" reftex-index-remaining-phrases t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2051 ["Region Phrases" reftex-index-region-phrases t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2052 ["All Phrases" reftex-index-all-phrases t] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2053 "--" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2054 "Options" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2055 ["Match Whole Words" (setq reftex-index-phrases-search-whole-words |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2056 (not reftex-index-phrases-search-whole-words)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2057 :style toggle :selected reftex-index-phrases-search-whole-words] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2058 ["Case Sensitive Search" (setq reftex-index-phrases-case-fold-search |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2059 (not reftex-index-phrases-case-fold-search)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2060 :style toggle :selected (not |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2061 reftex-index-phrases-case-fold-search)] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2062 ["Wrap Long Lines" (setq reftex-index-phrases-wrap-long-lines |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2063 (not reftex-index-phrases-wrap-long-lines)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2064 :style toggle :selected reftex-index-phrases-wrap-long-lines] |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2065 ["Skip Indexed Matches" (setq reftex-index-phrases-skip-indexed-matches |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2066 (not reftex-index-phrases-skip-indexed-matches)) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2067 :style toggle :selected reftex-index-phrases-skip-indexed-matches]) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2068 "--" |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2069 ["Save and Return" reftex-index-phrases-save-and-return t])) |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2070 |
|
489a5439b988
* reftex.el (reftex-compile-variables): respect new structure of
Carsten Dominik <dominik@science.uva.nl>
parents:
25806
diff
changeset
|
2071 |
| 25280 | 2072 ;;; reftex-index.el ends here |
