Function: rng-complete-end-tag

rng-complete-end-tag is a byte-compiled function defined in rng-nxml.el.gz.

Signature

(rng-complete-end-tag LT-POS)

Source Code

;; Defined in /usr/src/emacs/lisp/nxml/rng-nxml.el.gz
(defun rng-complete-end-tag (lt-pos)
  (when (save-excursion
	  (re-search-backward rng-in-end-tag-name-regex
			      lt-pos
			      t))
    (cond ((or (not rng-open-elements)
	       (eq (car rng-open-elements) t))
	   (message "No matching start-tag")
	   (ding))
	  (t
	   (let ((start-tag-name
		  (if (caar rng-open-elements)
		      (concat (caar rng-open-elements)
			      ":"
			      (cdar rng-open-elements))
		    (cdar rng-open-elements))))
             `(,(+ (match-beginning 0) 2)
               ,(save-excursion (skip-chars-forward "-[:alnum:]_.:") (point))
               ,(list start-tag-name)   ;Sole completion candidate.
               :exit-function
               ,(lambda (_completion status)
                  (when (eq status 'finished)
                    (unless (eq (char-after) ?>) (insert ">"))
                    (when (not (or rng-collecting-text
                                   (rng-match-end-tag)))
                      (message "Element \"%s\" is incomplete"
                               start-tag-name))))))))))