changeset 15513:1252826f389b

(tex-common-initialization): Set skeleton-further-elements. (tex-latex-block): Define as a skeleton.
author Richard M. Stallman <rms@gnu.org>
date Tue, 25 Jun 1996 22:44:10 +0000
parents 47d9b7a1dee3
children 3f3903d33cb9
files lisp/textmodes/tex-mode.el
diffstat 1 files changed, 16 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/tex-mode.el	Tue Jun 25 22:35:26 1996 +0000
+++ b/lisp/textmodes/tex-mode.el	Tue Jun 25 22:44:10 1996 +0000
@@ -556,6 +556,9 @@
   (setq parse-sexp-ignore-comments t)
   (make-local-variable 'compare-windows-whitespace)
   (setq compare-windows-whitespace 'tex-categorize-whitespace)
+  (make-local-variable 'skeleton-further-elements)
+  (setq skeleton-further-elements
+	  '((indent-line-function 'indent-relative-maybe)))
   (make-local-variable 'facemenu-add-face-function)
   (make-local-variable 'facemenu-end-add-face)
   (make-local-variable 'facemenu-remove-face-function)
@@ -728,25 +731,20 @@
     (insert ?})))
 
 ;;; Like tex-insert-braces, but for LaTeX.
-(defun tex-latex-block (name)
-  "Creates a matching pair of lines `\\begin{NAME}' and `\\end{NAME}' at point.
+(define-skeleton tex-latex-block
+  "Create a matching pair of lines \\begin[OPT]{NAME} and \\end{NAME} at point.
 Puts point on a blank line between them."
-  (interactive
-   (prog2
-      (barf-if-buffer-read-only)
-      (list
-       (completing-read "LaTeX block name: "
-			(mapcar 'list
-                                (append standard-latex-block-names
-                                        latex-block-names))))))
-  (let ((col (current-column)))
-    (insert (format "\\begin{%s}\n" name))
-    (indent-to col)
-    (save-excursion
-      (insert ?\n)
-      (indent-to col)
-      (insert-string (format "\\end{%s}" name))
-      (if (eobp) (insert ?\n)))))
+  (completing-read "LaTeX block name: "
+		   (mapcar 'list
+			   (append standard-latex-block-names
+				   latex-block-names)))
+  "\\begin["
+  (skeleton-read "[options]: ") & ?\] | -1
+  ?\{
+  str
+  ?\} \n
+  _ \n
+  "\\end{" str ?\})
 
 (defun tex-last-unended-begin ()
   "Leave point at the beginning of the last `\\begin{...}' that is unended."