Mercurial > emacs
view lisp/textmodes/reftex-auc.el @ 85511:f873840f9fea
* emulation/edt-mapper.el (function-key-map):
(edt-map-key): Make it a function instead of using fset. Inline
edt-gnu-map-key and edt-lucid-map-key. Use featurep 'xemacs.
(edt-gnu-map-key, edt-lucid-map-key): Remove.
(edt-x-emacs-p): Remove.
(edt-emacs-variant, edt-window-system, edt-xserver):
Use featurep 'xemacs.
* net/eudc.el: Use (featurep 'xemacs) instead of the string test.
Replace eudc-xemacs-p with its definition.
(eudc-xemacs-p, eudc-emacs-p, eudc-xemacs-mule-p)
(eudc-emacs-mule-p): Remove.
(eudc-install-menu, eudc-mode): Replace eudc-emacs-p and
eudc-xemacs-p with feature tests.
* net/eudc-bob.el (eudc-bob-generic-menu, eudc-bob-mail-keymap)
(eudc-bob-url-keymap, eudc-bob-sound-keymap)
(eudc-bob-generic-keymap, eudc-bob-popup-menu)
(eudc-bob-toggle-inline-display):
* net/eudc-hotlist.el (eudc-hotlist-emacs-menu): Replace
eudc-emacs-p and eudc-xemacs-p with feature tests.
* net/eudcb-ph.el (eudc-ph-open-session): Replace
eudc-xemacs-mule-p with its former definition.
* progmodes/octave-mod.el (octave-xemacs-p): Remove.
(octave-abbrev-start): Replace octave-xemacs-p with
(featurep 'xemacs).
* progmodes/vera-mode.el (vera-xemacs): Remove.
(vera-mode-syntax-table): Replace vera-xemacs with
(featurep 'xemacs).
* progmodes/vhdl-mode.el (vhdl-xemacs): Remove.
(vhdl-doc-mode, vhdl-doc-variable, vhdl-compile-init)
(vhdl-speedbar-initialize, vhdl-ps-print-init)
(vhdl-forward-comment, vhdl-mode-map-init, vhdl-show-messages)
(vhdl-emacs-22, vhdl-emacs-21): Replace vhdl-xemacs
with (featurep 'xemacs).
* progmodes/antlr-mode.el (cond-emacs-xemacs-macfn, defunx)
(save-buffer-state-x):
* obsolete/fast-lock.el (fast-lock-verbose):
* emulation/viper-init.el (viper-xemacs-p)
(viper-cond-compile-for-xemacs-or-emacs):
* emacs-lisp/checkdoc.el (checkdoc-minor-mode-map):
* ps-print.el (case-fold-search):
* ediff-hook.el (ediff-cond-compile-for-xemacs-or-emacs):
* calculator.el (calculator-help): Use featurep 'xemacs.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Sun, 21 Oct 2007 17:22:04 +0000 |
parents | b6d25790aab2 |
children | dc100f64b2b7 321f32eb4bf5 f55f9811f5d7 |
line wrap: on
line source
;;; reftex-auc.el --- RefTeX's interface to AUCTeX ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org ;; Version: 4.31 ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'cl)) (provide 'reftex-auc) (require 'reftex) ;;; (defun reftex-plug-flag (which) ;; Tell if a certain flag is set in reftex-plug-into-AUCTeX (or (eq t reftex-plug-into-AUCTeX) (and (listp reftex-plug-into-AUCTeX) (nth which reftex-plug-into-AUCTeX)))) (defun reftex-arg-label (optional &optional prompt definition) "Use `reftex-label', `reftex-reference' or AUCTeX's code to insert label arg. What is being used depends upon `reftex-plug-into-AUCTeX'." (let (label) (cond ((and definition (reftex-plug-flag 1)) ;; Create a new label, with a temporary brace for `reftex-what-macro' (unwind-protect (progn (insert "{") (setq label (or (reftex-label nil t) ""))) (delete-backward-char 1))) ((and (not definition) (reftex-plug-flag 2)) ;; Reference a label with RefTeX (setq label (reftex-reference nil t))) (t ;; AUCTeX's default mechanism (setq label (completing-read (TeX-argument-prompt optional prompt "Key") (LaTeX-label-list))))) (if (and definition (not (string-equal "" label))) (LaTeX-add-labels label)) (TeX-argument-insert label optional))) (defun reftex-arg-cite (optional &optional prompt definition) "Use `reftex-citation' or AUCTeX's code to insert a cite-key macro argument. What is being used depends upon `reftex-plug-into-AUCTeX'." (let (items) (cond ((and (not definition) (reftex-plug-flag 3)) (setq items (list (or (reftex-citation t) "")))) (t (setq prompt (concat (if optional "(Optional) " "") (if prompt prompt "Add key") " (default none): ")) (setq items (multi-prompt "," t prompt (LaTeX-bibitem-list))))) (apply 'LaTeX-add-bibitems items) (TeX-argument-insert (mapconcat 'identity items ",") optional))) (defun reftex-arg-index-tag (optional &optional prompt &rest args) "Prompt for an index tag with completion. This is the name of an index, not the entry." (let (tag taglist) (setq prompt (concat (if optional "(Optional) " "") (if prompt prompt "Index tag") " (default none): ")) (if (and reftex-support-index (reftex-plug-flag 4)) ;; Use RefTeX completion (progn (reftex-access-scan-info nil) (setq taglist (cdr (assoc 'index-tags (symbol-value reftex-docstruct-symbol))) tag (completing-read prompt (mapcar 'list taglist)))) ;; Just ask like AUCTeX does. (setq tag (read-string prompt))) (TeX-argument-insert tag optional))) (defun reftex-arg-index (optional &optional prompt &rest args) "Prompt for an index entry completing with known entries. Completion is specific for just one index, if the macro or a tag argument identify one of multiple indices." (let* (tag key) (if (and reftex-support-index (reftex-plug-flag 4)) (progn (reftex-access-scan-info nil) (setq tag (reftex-what-index-tag) key (reftex-index-complete-key (or tag "idx")))) (setq key (completing-read (TeX-argument-prompt optional prompt "Key") (LaTeX-index-entry-list)))) (unless (string-equal "" key) (LaTeX-add-index-entries key)) (TeX-argument-insert key optional))) (defun reftex-what-index-tag () ;; Look backward to find out what index the macro at point belongs to (let ((macro (save-excursion (and (re-search-backward "\\\\[a-zA-Z*]+" nil t) (match-string 0)))) tag entry) (when (and macro (setq entry (assoc macro reftex-index-macro-alist))) (setq tag (nth 1 entry)) (cond ((stringp tag) tag) ((integerp tag) (save-excursion (goto-char (match-end 1)) (or (reftex-nth-arg tag (nth 6 entry)) "idx"))) (t "idx"))))) (defvar LaTeX-label-function) (defun reftex-plug-into-AUCTeX () ;; Replace AUCTeX functions with RefTeX functions. ;; Which functions are replaced is controlled by the variable ;; `reftex-plug-into-AUCTeX'. (if (reftex-plug-flag 0) (setq LaTeX-label-function 'reftex-label) (setq LaTeX-label-function nil)) (and (or (reftex-plug-flag 1) (reftex-plug-flag 2)) (fboundp 'TeX-arg-label) (fset 'TeX-arg-label 'reftex-arg-label)) (and (reftex-plug-flag 3) (fboundp 'TeX-arg-cite) (fset 'TeX-arg-cite 'reftex-arg-cite)) (and (reftex-plug-flag 4) (fboundp 'TeX-arg-index-tag) (fset 'TeX-arg-index-tag 'reftex-arg-index-tag)) (and (reftex-plug-flag 4) (fboundp 'TeX-arg-index) (fset 'TeX-arg-index 'reftex-arg-index))) (defun reftex-toggle-plug-into-AUCTeX () "Toggle Interface between AUCTeX and RefTeX on and off." (interactive) (unless (and (featurep 'tex-site) (featurep 'latex)) (error "AUCTeX's LaTeX mode does not seem to be loaded")) (setq reftex-plug-into-AUCTeX (not reftex-plug-into-AUCTeX)) (reftex-plug-into-AUCTeX) (if reftex-plug-into-AUCTeX (message "RefTeX has been plugged into AUCTeX.") (message "RefTeX no longer interacts with AUCTeX."))) (defun reftex-add-label-environments (entry-list) "Add label environment descriptions to `reftex-label-alist-style'. The format of ENTRY-LIST is exactly like `reftex-label-alist'. See there for details. This function makes it possible to support RefTeX from AUCTeX style files. The entries in ENTRY-LIST will be processed after the user settings in `reftex-label-alist', and before the defaults (specified in `reftex-default-label-alist-entries'). Any changes made to `reftex-label-alist-style' will raise a flag to the effect that the label information is recompiled on next use." (unless reftex-docstruct-symbol (reftex-tie-multifile-symbols)) (when (and reftex-docstruct-symbol (symbolp reftex-docstruct-symbol)) (let ((list (get reftex-docstruct-symbol 'reftex-label-alist-style)) entry changed) (while entry-list (setq entry (pop entry-list)) (unless (member entry list) (setq reftex-tables-dirty t changed t) (push entry list))) (when changed (put reftex-docstruct-symbol 'reftex-label-alist-style list))))) (defalias 'reftex-add-to-label-alist 'reftex-add-label-environments) (defun reftex-add-section-levels (entry-list) "Add entries to the value of `reftex-section-levels'. The added values are kept local to the current document. The format of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL). See `reftex-section-levels' for an example." (unless reftex-docstruct-symbol (reftex-tie-multifile-symbols)) (when (and reftex-docstruct-symbol (symbolp reftex-docstruct-symbol)) (let ((list (get reftex-docstruct-symbol 'reftex-section-levels)) entry changed) (while entry-list (setq entry (pop entry-list)) (unless (member entry list) (setq reftex-tables-dirty t changed t) (push entry list))) (when changed (put reftex-docstruct-symbol 'reftex-section-levels list))))) (defun reftex-notice-new-section () (reftex-notice-new 1 'force)) ;;; arch-tag: 4a798e68-3405-421c-a09b-0269aac64ab4 ;;; reftex-auc.el ends here