Function: nxml-apply-fontify-rule
nxml-apply-fontify-rule is a byte-compiled function defined in
nxml-mode.el.gz.
Signature
(nxml-apply-fontify-rule &optional TYPE START END)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/nxml-mode.el.gz
(defun nxml-apply-fontify-rule (&optional type start end)
(let ((rule (get (or type xmltok-type) 'nxml-fontify-rule)))
(unless start (setq start xmltok-start))
(unless end (setq end (point)))
(while rule
(let* ((action (car rule)))
(setq rule (cdr rule))
(cond ((vectorp action)
(nxml-set-face (let ((offset (aref action 0)))
(cond ((not offset) start)
((< offset 0) (+ end offset))
(t (+ start offset))))
(let ((offset (aref action 1)))
(cond ((not offset) end)
((< offset 0) (+ end offset))
(t (+ start offset))))
(aref action 2)))
((and (consp action)
(eq (car action) 'element-qname))
(when xmltok-name-end ; maybe nil in partial-end-tag case
(nxml-fontify-qname (+ start (cdr action))
xmltok-name-colon
xmltok-name-end
'nxml-element-prefix
'nxml-element-colon
'nxml-element-local-name)))
((eq action 'attributes)
(nxml-fontify-attributes))
((eq action 'processing-instruction-content)
(nxml-set-face (+ start 2)
xmltok-name-end
'nxml-processing-instruction-target)
(nxml-set-face (save-excursion
(goto-char xmltok-name-end)
(skip-chars-forward " \t\r\n")
(point))
(- end 2)
'nxml-processing-instruction-content))
((eq action 'char-ref)
(nxml-char-ref-display-extra start
end
(xmltok-char-number start end)))
(t (error "Invalid nxml-fontify-rule action %s" action)))))))