]> code.delx.au - gnu-emacs/blobdiff - lisp/textmodes/reftex-ref.el
Merge from emacs-23
[gnu-emacs] / lisp / textmodes / reftex-ref.el
index c61a733092f0400fe8549d169a2f8933becc099d..0f03d0953f86624de18f9234041aa1aa433b18f8 100644 (file)
@@ -6,6 +6,7 @@
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
 ;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
+;; Package: reftex
 
 ;; This file is part of GNU Emacs.
 
@@ -179,8 +180,8 @@ This function is controlled by the settings of reftex-insert-label-flags."
                 (string-match "^[ \t]*$" default))
             (setq default prefix
                   force-prompt t)       ; need to prompt
-          (setq default 
-                (concat prefix 
+          (setq default
+                (concat prefix
                         (funcall reftex-string-to-label-function default)))
 
           ;; Make it unique.
@@ -226,7 +227,7 @@ This function is controlled by the settings of reftex-insert-label-flags."
              ((setq entry (assoc label
                                  (symbol-value reftex-docstruct-symbol)))
               (ding)
-              (if (y-or-n-p 
+              (if (y-or-n-p
                    (format "Label '%s' exists. Use anyway? " label))
                   (setq valid t)))
 
@@ -236,9 +237,9 @@ This function is controlled by the settings of reftex-insert-label-flags."
         (setq label default))
 
       ;; Insert the label into the label list
-      (let* ((here-I-am-info 
+      (let* ((here-I-am-info
               (save-excursion
-                (if (and (or naked no-insert) 
+                (if (and (or naked no-insert)
                          (integerp (cdr macro-cell)))
                     (goto-char (cdr macro-cell)))
                 (reftex-where-am-I)))
@@ -293,7 +294,7 @@ also applies `reftex-translate-to-ascii-function' to the string."
   ;; Translate the upper 128 chars in the Latin-1 charset to ASCII equivalents
   (let ((tab "@@@@@@@@@@@@@@@@@@'@@@@@@@@@@@@@ icLxY|S\"ca<--R-o|23'uq..1o>423?AAAAAAACEEEEIIIIDNOOOOOXOUUUUYP3aaaaaaaceeeeiiiidnooooo:ouuuuypy")
         (emacsp (not (featurep 'xemacs))))
-    (mapconcat 
+    (mapconcat
      (lambda (c)
        (cond ((and (> c 127) (< c 256))                 ; 8 bit Latin-1
               (char-to-string (aref tab (- c 128))))
@@ -429,7 +430,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
               type (car type))
       (setq type (reftex-query-label-type))))
 
-  (let* ((refstyle 
+  (let* ((reftex-refstyle
           (cond ((reftex-typekey-check type reftex-vref-is-default) "\\vref")
                 ((reftex-typekey-check type reftex-fref-is-default) "\\fref")
                 (t "\\ref")))
@@ -451,7 +452,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
     (setq type (nth 1 (car labels))
           form (or (cdr (assoc type reftex-typekey-to-format-alist))
                    form))
-    
+
     (cond
      (no-insert
       ;; Just return the first label
@@ -465,7 +466,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
               sep (nth 2 (car labels))
               sep1 (cdr (assoc sep reftex-multiref-punctuation))
               labels (cdr labels))
-        (when cut 
+        (when cut
           (backward-delete-char cut)
           (setq cut nil))
 
@@ -476,9 +477,9 @@ When called with 2 C-u prefix args, disable magic word recognition."
         ;; do we have a special format?
         (setq reftex-format-ref-function
               (cond
-               ((string= refstyle "\\vref") 'reftex-format-vref)
-               ((string= refstyle "\\fref") 'reftex-format-fref)
-               ((string= refstyle "\\Fref") 'reftex-format-Fref)
+               ((string= reftex-refstyle "\\vref") 'reftex-format-vref)
+               ((string= reftex-refstyle "\\fref") 'reftex-format-fref)
+               ((string= reftex-refstyle "\\Fref") 'reftex-format-Fref)
                (t reftex-format-ref-function)))
         ;; ok, insert the reference
         (if sep1 (insert sep1))
@@ -500,7 +501,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
         matched cell)
     (save-excursion
       (while (and (setq cell (pop words))
-                  (not (setq matched 
+                  (not (setq matched
                              (re-search-backward (car cell) bound t))))))
     (if matched
         (cons (cdr cell) (- (match-end 0) (match-end 1)))
@@ -548,7 +549,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
               (setq mode-line-format
                     (list "----  " 'mode-line-buffer-identification
                           "  " 'global-mode-string "   (" mode-name ")"
-                          "  S<" 'refstyle ">"
+                          "  S<" 'reftex-refstyle ">"
                           " -%-"))
               (cond
                ((= 0 (buffer-size))
@@ -563,9 +564,9 @@ When called with 2 C-u prefix args, disable magic word recognition."
                                 context
                                 counter
                                 commented
-                                (or here-I-am offset) 
+                                (or here-I-am offset)
                                 prefix
-                                nil  ; no a toc buffer 
+                                nil  ; no a toc buffer
                                 ))))
                (here-I-am
                 (setq offset (reftex-get-offset buf here-I-am typekey)))
@@ -689,13 +690,13 @@ When called with 2 C-u prefix args, disable magic word recognition."
 
 (defun reftex-query-label-type ()
   ;; Ask for label type
-  (let ((key (reftex-select-with-char 
+  (let ((key (reftex-select-with-char
               reftex-type-query-prompt reftex-type-query-help 3)))
     (unless (member (char-to-string key) reftex-typekey-list)
       (error "No such label type: %s" (char-to-string key)))
     (char-to-string key)))
 
-(defun reftex-show-label-location (data forward no-revisit 
+(defun reftex-show-label-location (data forward no-revisit
                                         &optional stay error)
   ;; View the definition site of a label in another window.
   ;; DATA is an entry from the docstruct list.
@@ -717,7 +718,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
         (throw 'exit nil))
 
       ;; Goto the file in another window
-      (setq buffer 
+      (setq buffer
             (if no-revisit
                 (reftex-get-buffer-visiting file)
               (reftex-get-file-buffer-force
@@ -783,7 +784,7 @@ When called with 2 C-u prefix args, disable magic word recognition."
             (when (or (not (eq major-mode 'latex-mode))
                       (not font-lock-mode))
               (latex-mode)
-              (run-hook-with-args 
+              (run-hook-with-args
                'reftex-pre-refontification-functions
                reftex-call-back-to-this-buffer 'reftex-hidden)
               (turn-on-font-lock))
@@ -829,8 +830,16 @@ Optional prefix argument OTHER-WINDOW goes to the label in another window."
   (reftex-access-scan-info)
   (let* ((wcfg (current-window-configuration))
          (docstruct (symbol-value reftex-docstruct-symbol))
-         (label (completing-read "Label: " docstruct
-                                 (lambda (x) (stringp (car x))) t))
+        ;; If point is inside a \ref{} or \pageref{}, use that as
+        ;; default value.
+        (default (when (looking-back "\\\\\\(?:page\\)?ref{[-a-zA-Z0-9_*.:]*")
+                   (reftex-this-word "-a-zA-Z0-9_*.:")))
+         (label (completing-read (if default
+                                    (format "Label (default %s): " default)
+                                  "Label: ")
+                                docstruct
+                                 (lambda (x) (stringp (car x))) t nil nil
+                                default))
          (selection (assoc label docstruct))
          (where (progn
                   (reftex-show-label-location selection t nil 'stay)
@@ -838,10 +847,8 @@ Optional prefix argument OTHER-WINDOW goes to the label in another window."
     (unless other-window
       (set-window-configuration wcfg)
       (switch-to-buffer (marker-buffer where))
-      (goto-char where))      
+      (goto-char where))
     (reftex-unhighlight 0)))
 
 
-
-;; arch-tag: 52f14032-fb76-4d31-954f-750c72415675
 ;;; reftex-ref.el ends here