[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[AUCTeX-diffs] Changes to auctex/tex-info.el,v
From: |
Tassilo Horn |
Subject: |
[AUCTeX-diffs] Changes to auctex/tex-info.el,v |
Date: |
Mon, 26 Nov 2012 12:03:26 +0000 |
CVSROOT: /sources/auctex
Module name: auctex
Changes by: Tassilo Horn <tsdh> 12/11/26 12:03:25
Index: tex-info.el
===================================================================
RCS file: /sources/auctex/auctex/tex-info.el,v
retrieving revision 5.162
retrieving revision 5.163
diff -u -b -r5.162 -r5.163
--- tex-info.el 11 Jul 2011 13:44:38 -0000 5.162
+++ tex-info.el 26 Nov 2012 12:03:25 -0000 5.163
@@ -343,6 +343,70 @@
(progn (skip-chars-forward "^,") (forward-char 2))
(throw 'break nil)))))))
+;; Silence the byte-compiler from warnings for variables and functions declared
+;; in reftex.
+(eval-when-compile
+ (defvar reftex-section-levels-all)
+ (defvar reftex-level-indent)
+ (defvar reftex-label-menu-flags)
+ (defvar reftex-tables-dirty)
+
+ (when (fboundp 'declare-function)
+ (declare-function reftex-match-string "reftex" (n))
+ (declare-function reftex-section-number "reftex-parse" (&optional level
star))
+ (declare-function reftex-nicify-text "reftex" (text))
+ (declare-function reftex-ensure-compiled-variables "reftex" ())))
+
+(defun Texinfo-reftex-section-info (file)
+ ;; Return a section entry for the current match.
+ ;; Carefull: This function expects the match-data to be still in place!
+ (let* ((marker (set-marker (make-marker) (1- (match-beginning 3))))
+ (macro (reftex-match-string 3))
+ (level-exp (cdr (assoc macro reftex-section-levels-all)))
+ (level (if (symbolp level-exp)
+ (save-match-data (funcall level-exp))
+ level-exp))
+ (unnumbered (< level 0))
+ (level (abs level))
+ (section-number (reftex-section-number level unnumbered))
+ (text1 (save-match-data
+ (save-excursion
+ (buffer-substring-no-properties (point) (progn
(end-of-line) (point))))))
+ (literal (buffer-substring-no-properties
+ (1- (match-beginning 3))
+ (min (point-max) (+ (match-end 0) (length text1) 1))))
+ ;; Literal can be too short since text1 too short. No big problem.
+ (text (reftex-nicify-text text1)))
+
+ ;; Add section number and indentation
+ (setq text
+ (concat
+ (make-string (* reftex-level-indent level) ?\ )
+ (if (nth 1 reftex-label-menu-flags) ; section number flag
+ (concat section-number " "))
+ text))
+ (list 'toc "toc" text file marker level section-number
+ literal (marker-position marker))))
+
+(defun Texinfo-reftex-hook ()
+ "Hook function to plug Texinfo into RefTeX."
+ ;; force recompilation of variables
+ (when (string= TeX-base-mode-name "Texinfo")
+ (dolist (v `((reftex-section-pre-regexp . "@")
+ ; section post-regexp must contain exactly one group
+ (reftex-section-post-regexp . "\\([ \t]+\\)")
+ (reftex-section-info-function . Texinfo-reftex-section-info)
+ (reftex-section-levels
+ . ,(mapcar
+ (lambda (x)
+ (if (string-match
"\\(\\`unnumbered\\)\\|\\(heading\\'\\)\\|\\(\\`top\\'\\)"
+ (car x))
+ (cons (car x) (- (cadr x)))
+ (cons (car x) (cadr x))))
+ texinfo-section-list))))
+ (set (make-local-variable (car v) ) (cdr v)))
+ (setq reftex-tables-dirty t)
+ (reftex-ensure-compiled-variables)))
;;; Keymap:
@@ -681,6 +745,11 @@
'("w" "Text")
'("xref" "Node name"))
+ ;; RefTeX plugging
+ (add-hook 'reftex-mode-hook 'Texinfo-reftex-hook)
+ (if (and (boundp 'reftex-mode) reftex-mode)
+ (Texinfo-reftex-hook))
+
(TeX-run-mode-hooks 'text-mode-hook 'Texinfo-mode-hook)
(TeX-set-mode-name))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [AUCTeX-diffs] Changes to auctex/tex-info.el,v,
Tassilo Horn <=