From: Stefan Monnier Date: Fri, 14 Mar 2003 22:29:13 +0000 (+0000) Subject: (texinfo-outline-level): Remove. X-Git-Tag: ttn-vms-21-2-B4~10898 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f412245b470c1d52dda54f285a0eacb29d5b7a2a;p=emacs.git (texinfo-outline-level): Remove. (texinfo-mode): Set outline-heading-alist instead. (texinfo-section-list): Reorder for the needs of outline-heading-alist. (texinfo-insert-block): Don't cons needlessly. (texinfo-enable-quote-macros, texinfo-enable-quote-envs): New vars. (texinfo-insert-quote): Use them. --- diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el index 5b8de9fa3e5..3b9b9c7b1e3 100644 --- a/lisp/textmodes/texinfo.el +++ b/lisp/textmodes/texinfo.el @@ -28,6 +28,7 @@ ;;; Todo: ;; - facemenu support. +;; - command completion. ;;; Commentary: @@ -265,22 +266,22 @@ chapter." (defvar texinfo-section-list '(("top" 1) - ("majorheading" 2) ("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) + ("unnumbered" 2) + ("unnumberedsec" 3) + ("unnumberedsubsec" 4) ("unnumberedsubsubsec" 5) + ("appendix" 2) + ("appendixsec" 3) + ("appendixsubsec" 4) ("appendixsubsubsec" 5) + ("majorheading" 2) + ("chapheading" 2) + ("heading" 3) + ("subheading" 4) ("subsubheading" 5)) "Alist of sectioning commands and their relative level.") @@ -384,19 +385,6 @@ Subexpression 1 is what goes into the corresponding `@end' statement.") (concat (regexp-quote (buffer-substring start end)) "\\>")) (text-clone-create start end 'spread "\\w*"))))))) -(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))))) - ;;; Keybindings (defvar texinfo-mode-map nil) @@ -613,11 +601,17 @@ value of `texinfo-mode-hook'." (font-lock-syntactic-keywords . texinfo-font-lock-syntactic-keywords))) (set (make-local-variable 'parse-sexp-lookup-properties) t) - (make-local-variable 'outline-regexp) - (setq outline-regexp - (concat "@" (regexp-opt (mapcar 'car texinfo-section-list) t) "\\>")) - (make-local-variable 'outline-level) - (setq outline-level 'texinfo-outline-level) + + ;; Outline settings. + (set (make-local-variable 'outline-heading-alist) + ;; We should merge outline-heading-alist and texinfo-section-list + ;; but in the mean time, let's just generate one from the other. + (mapcar (lambda (x) (cons (concat "@" (car x)) (cadr x))) + texinfo-section-list)) + (set (make-local-variable 'outline-regexp) + (concat (regexp-opt (mapcar 'car outline-heading-alist) t) + "\\>")) + (make-local-variable 'tex-start-of-header) (setq tex-start-of-header "%\\*\\*start") (make-local-variable 'tex-end-of-header) @@ -646,7 +640,7 @@ value of `texinfo-mode-hook'." Puts point on a blank line between them." (setq texinfo-block-default (completing-read (format "Block name [%s]: " texinfo-block-default) - (mapcar 'list texinfo-environments) + texinfo-environments nil nil nil nil texinfo-block-default)) \n "@" str \n _ \n "@end " str \n) @@ -672,6 +666,8 @@ Puts point on a blank line between them." (and (re-search-backward (concat "@\\(end\\s +\\)?" env) bound t) (not (match-end 1))))) +(defvar texinfo-enable-quote-macros '("@\\(code\\|samp\\|kbd\\)\\>")) +(defvar texinfo-enable-quote-envs '("example\\>" "lisp\\>")) (defun texinfo-insert-quote (&optional arg) "Insert the appropriate quote mark for TeXinfo. Usually inserts the value of `texinfo-open-quote' (normally ``) or @@ -688,9 +684,11 @@ With prefix argument or inside @code or @example, inserts a plain \"." (looking-at texinfo-close-quote)) (delete-char (length texinfo-open-quote)) t)) - (texinfo-inside-macro-p "@\\(code\\|samp\\|kbd\\)\\>" top) - (texinfo-inside-env-p "example\\>" top) - (texinfo-inside-env-p "lisp\\>" top)) + (texinfo-inside-macro-p texinfo-enable-quote-macros top) + (let ((in-env nil)) + (dolist (env texinfo-enable-quote-envs in-env) + (if (texinfo-inside-env-p env top) + (setq in-env t))))) (self-insert-command (prefix-numeric-value arg)) (insert (if (memq (char-syntax (preceding-char)) '(?\( ?> ?\ ))