]> git.eshelyaron.com Git - emacs.git/commitdiff
(texinfo-section-types-regexp)
authorRichard M. Stallman <rms@gnu.org>
Tue, 5 Mar 1996 21:42:17 +0000 (21:42 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 5 Mar 1996 21:42:17 +0000 (21:42 +0000)
(texinfo-section-level-regexp, texinfo-subsection-level-regexp)
(texinfo-subsubsection-level-regexp): Add defvars.

(texinfo-section-list): New variable.
(texinfo-outline-level): New function.
(texinfo-mode): Use them.

lisp/textmodes/texinfo.el

index 667d32de736e2a1926a14f12cffe88d8b2e40572..dbccaf130fded05465a7d775153e92dd290ae606 100644 (file)
@@ -223,6 +223,40 @@ chapter."
     ("@\\(end\\|itemx?\\) +\\(.+\\)" 2 font-lock-function-name-face keep)
     )
   "Additional expressions to highlight in TeXinfo mode.")
+
+(defvar texinfo-section-list
+  '(("top" 1)
+    ("majorheading" 1)
+    ("chapter" 2)
+    ("unnumbered" 2)
+    ("appendix" 2)
+    ("chapheading" 2)
+    ("section" 3)
+    ("unnumberedsec" 3)
+    ("appendixsec" 3)
+    ("heading" 3)
+    ("subsection" 4)
+    ("unnumberedsubsec" 4)
+    ("appendixsubsec" 4)
+    ("subheading" 4)
+    ("subsubsection" 5)
+    ("unnumberedsubsubsec" 5)
+    ("appendixsubsubsec" 5)
+    ("subsubheading" 5))
+  "Alist of sectioning commands and their relative level.")
+
+(defun texinfo-outline-level ()
+  ;; Calculate level of current texinfo outline heading.
+  (save-excursion
+    (if (bobp)
+       0
+      (forward-char 1)
+      (let* ((word (buffer-substring-no-properties 
+                   (point) (progn (forward-word 1) (point))))
+            (entry (assoc word texinfo-section-list)))
+       (if entry
+           (nth 1 entry)
+         5)))))
 \f
 ;;; Keybindings
 (defvar texinfo-mode-map nil)
@@ -401,6 +435,13 @@ value of texinfo-mode-hook."
   (setq imenu-generic-expression texinfo-imenu-generic-expression)
   (make-local-variable 'font-lock-defaults)
   (setq font-lock-defaults '(texinfo-font-lock-keywords t))
+  (make-local-variable 'outline-regexp)
+  (setq outline-regexp 
+       (concat "@\\("
+               (mapconcat 'car texinfo-section-list "\\>\\|")
+               "\\>\\)"))
+  (make-local-variable 'outline-level)
+  (setq outline-level 'texinfo-outline-level)
   (make-local-variable 'tex-start-of-header)
   (setq tex-start-of-header "%**start")
   (make-local-variable 'tex-end-of-header)
@@ -544,6 +585,12 @@ The default is not to surround any existing words with the braces."
 \f
 ;;; Texinfo file structure
 
+;; These are defined in tenfo-upd.el.
+(defvar texinfo-section-types-regexp)
+(defvar texinfo-section-level-regexp)
+(defvar texinfo-subsection-level-regexp)
+(defvar texinfo-subsubsection-level-regexp)
+
 (defun texinfo-show-structure (&optional nodes-too) 
   "Show the structure of a Texinfo file.
 List the lines in the file that begin with the @-sign commands for