changeset 44502:4067d1e7f884

(sgml-guess-indent): New function.
author Mike Williams <mdub@bigfoot.com>
date Thu, 11 Apr 2002 21:58:23 +0000
parents 5fa7b088231f
children 3a0d57efa672
files lisp/textmodes/sgml-mode.el
diffstat 1 files changed, 18 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/sgml-mode.el	Thu Apr 11 18:37:25 2002 +0000
+++ b/lisp/textmodes/sgml-mode.el	Thu Apr 11 21:58:23 2002 +0000
@@ -889,7 +889,7 @@
                     (unless (search-forward "]]>" pos 'move)
                       (list 0 nil nil 'cdata nil nil nil nil cdata-start))))
                  (t
-                  ;; We've reached a tag.  Parse it. 
+                  ;; We've reached a tag.  Parse it.
                   ;; FIXME: Handle net-enabling start-tags
                   (parse-partial-sexp (point) pos 0))))))
       (cond
@@ -1031,7 +1031,7 @@
     ;;   enclosing start-tags we'll have to ignore.
     (skip-chars-backward " \t\n")      ; Make sure we're not at indentation.
     (while
-	(and (or ignore 
+	(and (or ignore
                  (not (if full (eq full 'empty) context))
 		 (not (sgml-at-indentation-p))
 		 (and context
@@ -1104,7 +1104,7 @@
     (text
      (let ((context (save-excursion (sgml-get-context))))
        (if context
-           (progn 
+           (progn
              (insert "</" (sgml-tag-name (car (last context))) ">")
              (indent-according-to-mode)))))
     (otherwise
@@ -1227,6 +1227,21 @@
 	(save-excursion (indent-line-to indent-col))
       (indent-line-to indent-col))))
 
+(defun sgml-guess-indent ()
+  "Guess an appropriate value for `sgml-basic-offset'.
+Base the guessed identation level on the first indented tag in the buffer.
+Add this to `sgml-mode-hook' for convenience."
+  (interactive)
+  (save-excursion
+    (goto-char (point-min))
+    (if (re-search-forward "^\\([ \t]+\\)<" 100 'noerror)
+        (progn
+          (set (make-local-variable 'sgml-basic-offset)
+               (length (match-string 1)))
+          (message "Guessed sgml-basic-offset = %d"
+                   sgml-basic-offset)
+          ))))
+
 (defun sgml-parse-dtd ()
   "Simplistic parse of the current buffer as a DTD.
 Currently just returns (EMPTY-TAGS UNCLOSED-TAGS)."