Mercurial > emacs
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)."