• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/emacs-93/emacs/lisp/textmodes/

Lines Matching +defs:reftex +defs:mode

0 ;;; reftex-ref.el --- code to create labels and references with RefTeX
32 (provide 'reftex-ref)
33 (require 'reftex)
34 (require 'reftex-parse)
37 (defun reftex-label-location (&optional bound)
41 (let* ((loc1 (reftex-what-macro reftex-label-mac-list bound))
42 (loc2 (reftex-what-environment reftex-label-env-list bound))
43 (loc3 (reftex-what-special-env 1 bound))
49 (setq reftex-location-start pmax)
53 (setq reftex-default-context-position (+ p1 (length (car loc1))))
57 (setq reftex-default-context-position (+ p2 8 (length (car loc2))))
61 (setq reftex-default-context-position p3)
70 (defun reftex-label-info-update (cell)
79 (buf (reftex-get-file-buffer-force
80 file (not (eq t reftex-keep-temporary-buffers)))))
90 (format reftex-find-label-regexp-format
93 (format reftex-find-label-regexp-format2
98 (append (reftex-label-info label file) (list note)))
101 (defun reftex-label-info (label &optional file bound derive env-or-mac)
105 (typekey (cdr (assoc prefix reftex-prefix-to-typekey-alist)))
107 (trust reftex-trust-label-prefix)
108 (in-comment (reftex-in-comment)))
116 (reftex-nicify-text (reftex-context-substring))
118 (let* ((env-or-mac (or env-or-mac (reftex-label-location bound)))
119 (typekey (nth 1 (assoc env-or-mac reftex-env-or-mac-alist)))
120 (parse (nth 2 (assoc env-or-mac reftex-env-or-mac-alist)))
121 (text (reftex-short-context env-or-mac parse reftex-location-start
127 (defun reftex-label (&optional environment no-insert)
135 This function is controlled by the settings of reftex-insert-label-flags."
140 (reftex-access-scan-info current-prefix-arg)
144 (not (assoc environment reftex-env-or-mac-alist)))
145 (setq environment (reftex-label-location)))
151 (let* ((entry (assoc environment reftex-env-or-mac-alist))
154 (macro-cell (reftex-what-macro 1))
155 (entry1 (assoc (car macro-cell) reftex-env-or-mac-alist))
162 (setq prefix (or (cdr (assoc typekey reftex-typekey-to-prefix-alist))
165 (setq prefix (reftex-replace-prefix-escapes prefix))
170 ((reftex-typekey-check typekey (nth 0 reftex-insert-label-flags))
172 (setq reftex-active-toc (reftex-last-assoc-before-elt
173 'toc (car (reftex-where-am-I))
174 (symbol-value reftex-docstruct-symbol)))
175 (setq default (reftex-no-props
176 (nth 2 (reftex-label-info " " nil nil t))))
187 (funcall reftex-string-to-label-function default)))
190 (setq default (reftex-uniquify-label default nil "-"))))
192 ((reftex-typekey-check typekey (nth 1 reftex-insert-label-flags))
198 (setq default (reftex-uniquify-label prefix t))))
201 (if (or (reftex-typekey-check typekey
202 (nth 1 reftex-insert-label-flags)) ; prompt
223 ((string-match reftex-label-illegal-re label)
230 (symbol-value reftex-docstruct-symbol)))
247 (reftex-where-am-I)))
254 (tail (memq here-I-am (symbol-value reftex-docstruct-symbol))))
260 (put reftex-docstruct-symbol 'modified t)))
265 (if reftex-format-label-function
266 (funcall reftex-format-label-function label format)
268 (if (and reftex-plug-into-AUCTeX
274 (when reftex-auto-update-selection-buffers
275 (reftex-erase-buffer (reftex-make-selection-buffer-name typekey))
276 (reftex-erase-buffer (reftex-make-selection-buffer-name " ")))
278 (when (and rescan-is-useful reftex-allow-automatic-rescan)
279 (reftex-parse-one))
284 (defun reftex-string-to-label (string)
286 Uses `reftex-derive-label-parameters' and `reftex-label-illegal-re'. It
287 also applies `reftex-translate-to-ascii-function' to the string."
288 (when (and reftex-translate-to-ascii-function
289 (fboundp reftex-translate-to-ascii-function))
290 (setq string (funcall reftex-translate-to-ascii-function string)))
291 (apply 'reftex-convert-string string
292 "[-~ \t\n\r,;]+" reftex-label-illegal-re nil nil
293 reftex-derive-label-parameters))
295 (defun reftex-latin1-to-ascii (string)
309 (defun reftex-replace-prefix-escapes (prefix)
322 (let ((masterdir (file-name-directory (reftex-TeX-master-file)))
330 (file-name-nondirectory (reftex-TeX-master-file))))
333 (substring (file-name-directory (reftex-TeX-master-file))
341 (when (re-search-backward reftex-section-regexp nil t)
342 (setq macro (reftex-match-string 2)
343 level-exp (cdr (assoc macro reftex-section-levels-all))
348 (cdr (or (assoc macro reftex-section-prefixes)
349 (assoc level reftex-section-prefixes)
350 (assq t reftex-section-prefixes)
357 (defun reftex-uniquify-label (label &optional force separator)
363 (reftex-access-scan-info)
367 (not (assoc label (symbol-value reftex-docstruct-symbol))))
371 (symbol-value reftex-docstruct-symbol)))
380 (symbol-value reftex-docstruct-symbol))
388 (defconst reftex-select-label-prompt
391 (defconst reftex-select-label-help
401 SPC / f Show full context in other window / Toggle follow mode.
409 (defun reftex-reference (&optional type no-insert cut)
413 reftex-label. Rescanning of the buffer can also be requested from the
422 (reftex-check-recursive-edit)
425 (reftex-access-scan-info current-prefix-arg)
429 (if (and reftex-guess-label-type
430 (setq type (reftex-guess-label-type)))
433 (setq type (reftex-query-label-type))))
436 (cond ((reftex-typekey-check type reftex-vref-is-default) "\\vref")
437 ((reftex-typekey-check type reftex-fref-is-default) "\\fref")
439 (reftex-format-ref-function reftex-format-ref-function)
444 (set-marker reftex-select-return-marker (point))
446 (reftex-offer-label-menu type)))
447 (reftex-ensure-compiled-variables)
448 (set-marker reftex-select-return-marker nil)
455 form (or (cdr (assoc type reftex-typekey-to-format-alist))
469 sep1 (cdr (assoc sep reftex-multiref-punctuation))
480 (setq reftex-format-ref-function
482 ((string= refstyle "\\vref") 'reftex-format-vref)
483 ((string= refstyle "\\fref") 'reftex-format-fref)
484 ((string= refstyle "\\Fref") 'reftex-format-Fref)
485 (t reftex-format-ref-function)))
489 (if reftex-format-ref-function
490 (funcall reftex-format-ref-function label form)
498 (defun reftex-guess-label-type ()
500 (let ((words reftex-words-to-typekey-alist)
512 (defvar reftex-select-label-map)
513 (defun reftex-offer-label-menu (typekey)
516 (xr-data (assq 'xr (symbol-value reftex-docstruct-symbol)))
519 (here-I-am (car (reftex-where-am-I)))
521 (toc (reftex-typekey-check typekey reftex-label-menu-flags 0))
522 (files (reftex-typekey-check typekey reftex-label-menu-flags 7))
523 (context (not (reftex-typekey-check
524 typekey reftex-label-menu-flags 3)))
525 (counter (reftex-typekey-check
526 typekey reftex-label-menu-flags 2))
527 (follow (reftex-typekey-check
528 typekey reftex-label-menu-flags 4))
529 (commented (nth 5 reftex-label-menu-flags))
539 (setq reftex-call-back-to-this-buffer buf
540 reftex-latex-syntax-table (syntax-table))
541 (let ((default-major-mode 'reftex-select-label-mode))
542 (if reftex-use-multiple-selection-buffers
546 (reftex-make-selection-buffer-name typekey)))
548 (reftex-erase-buffer)))
549 (unless (eq major-mode 'reftex-select-label-mode)
550 (reftex-select-label-mode))
553 (setq mode-line-format
554 (list "---- " 'mode-line-buffer-identification
555 " " 'global-mode-string " (" mode-name ")"
562 (setq offset (reftex-insert-docstruct
576 (setq offset (reftex-get-offset buf here-I-am typekey)))
583 (reftex-select-item
584 reftex-select-label-prompt
585 reftex-select-label-help
586 reftex-select-label-map
588 'reftex-show-label-location follow))
597 (reftex-erase-buffer))
602 (reftex-erase-buffer)
603 (reftex-reparse-document buf last-data key))
605 ;; toggle context mode
606 (reftex-erase-buffer)
611 (setq typekey (reftex-query-label-type)))
614 (reftex-erase-buffer)
616 (setq reftex-toc-max-level (prefix-numeric-value
621 (reftex-erase-buffer)
625 (reftex-erase-buffer)
629 (reftex-erase-buffer)
633 (setq entries reftex-last-used-reference)
637 (setq xr-index (reftex-select-external-document
639 (setq buf (or (reftex-get-file-buffer-force
644 (reftex-access-scan-info))
649 (or (assoc key (symbol-value reftex-docstruct-symbol))
654 (reftex-select-marked
655 (setq entries (nreverse reftex-select-marked)))
661 (setq reftex-last-used-reference entries))
664 (t (error "This should not happen (reftex-offer-label-menu)"))))))
666 (while reftex-buffers-with-changed-invisibility
667 (set-buffer (car (car reftex-buffers-with-changed-invisibility)))
669 (cdr (pop reftex-buffers-with-changed-invisibility)))))
672 (reftex-kill-temporary-buffers))
683 (defun reftex-reparse-document (&optional buffer data key)
693 (reftex-access-scan-info arg file)))))
695 (defun reftex-query-label-type ()
697 (let ((key (reftex-select-with-char
698 reftex-type-query-prompt reftex-type-query-help 3)))
699 (unless (member (char-to-string key) reftex-typekey-list)
703 (defun reftex-show-label-location (data forward no-revisit
727 (reftex-get-buffer-visiting file)
728 (reftex-get-file-buffer-force
729 file (not reftex-keep-temporary-buffers))))
739 (setq re (format reftex-find-label-regexp-format (regexp-quote label)))
750 (format reftex-find-label-regexp-format2
754 (reftex-highlight 0 (match-beginning 3) (match-end 3))
755 (reftex-show-entry (match-beginning 3) (match-end 3))
762 (defvar font-lock-mode)
763 (defun reftex-show-entry (beg-hlt end-hlt)
765 (let* ((n (/ (reftex-window-height) 2))
775 reftex-buffers-with-changed-invisibility)
786 (reftex-highlight 0 (1+ (- beg-hlt beg)) (1+ (- end-hlt beg)))
787 (if (reftex-refontify)
788 (when (or (not (eq major-mode 'latex-mode))
789 (not font-lock-mode))
790 (latex-mode)
792 'reftex-pre-refontification-functions
793 reftex-call-back-to-this-buffer 'reftex-hidden)
795 (when (or (not (eq major-mode 'fundamental-mode))
796 font-lock-mode)
797 (fundamental-mode)))
798 (run-hooks 'reftex-display-copied-context-hook)
801 (defun reftex-varioref-vref ()
804 (let ((reftex-format-ref-function 'reftex-format-vref))
805 (reftex-reference)))
806 (defun reftex-fancyref-fref ()
809 (let ((reftex-format-ref-function 'reftex-format-fref)
810 ;;(reftex-guess-label-type nil) ;FIXME do we want this????
812 (reftex-reference)))
813 (defun reftex-fancyref-Fref ()
816 (let ((reftex-format-ref-function 'reftex-format-Fref)
817 ;;(reftex-guess-label-type nil) ;FIXME do we want this????
819 (reftex-reference)))
821 (defun reftex-format-vref (label fmt)
825 (defun reftex-format-Fref (label def-fmt)
827 (defun reftex-format-fref (label def-fmt)
830 (defun reftex-goto-label (&optional other-window)
834 (reftex-access-scan-info)
836 (docstruct (symbol-value reftex-docstruct-symbol))
841 (reftex-show-label-location selection t nil 'stay)
847 (reftex-unhighlight 0)))
852 ;;; reftex-ref.el ends here