]> git.eshelyaron.com Git - emacs.git/commitdiff
(sgml-guess-indent): New function.
authorMike Williams <mdub@bigfoot.com>
Thu, 11 Apr 2002 21:59:45 +0000 (21:59 +0000)
committerMike Williams <mdub@bigfoot.com>
Thu, 11 Apr 2002 21:59:45 +0000 (21:59 +0000)
lisp/ChangeLog
lisp/textmodes/sgml-mode.el

index ff6ad3b47955c8147fda11055fd8fcc5d8a5f6d1..82eff1a73462dc863484e58c157a6dc48060ee38 100644 (file)
@@ -1,3 +1,7 @@
+2002-04-12  Mike Williams  <mdub@bigfoot.com>
+
+       * textmodes/sgml-mode.el (sgml-guess-indent): New function.
+
 2002-04-11  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
 
        * menu-bar.el (menu-bar-adv-search-menu): Add incremental search.
index 9df19cc1180b3e20d5d33072e088fb517fa6b451..2a410554de667b95b54816c30280c10ede01b2b8 100644 (file)
@@ -889,7 +889,7 @@ If nil, start from a preceding tag at indentation."
                     (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 @@ immediately enclosing the current position."
     ;;   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 @@ If FULL is non-nil, parse back to the beginning of the buffer."
     (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 @@ If FULL is non-nil, parse back to the beginning of the buffer."
        (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)."