summaryrefslogtreecommitdiff
path: root/lisp/nxml/nxml-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/nxml/nxml-mode.el')
-rw-r--r--lisp/nxml/nxml-mode.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el
index 6c5c85b2fcc..0e2fca349a5 100644
--- a/lisp/nxml/nxml-mode.el
+++ b/lisp/nxml/nxml-mode.el
@@ -546,6 +546,7 @@ Many aspects this mode can be customized using
(setq comment-end-skip "[ \t\r\n]*-->")
(make-local-variable 'comment-line-break-function)
(setq comment-line-break-function 'nxml-newline-and-indent)
+ (setq-local comment-quote-nested-function 'nxml-comment-quote-nested)
(use-local-map nxml-mode-map)
(save-excursion
(save-restriction
@@ -1350,6 +1351,18 @@ of the inserted start-tag or nil if none was inserted."
start-tag-indent)))))
inserted-start-tag-pos))
+(defun nxml-comment-quote-nested (_cs _ce unp)
+ "Quote nested comments in buffer.
+See `comment-quote-nested-function' for more information."
+ (goto-char (point-min))
+ (save-match-data
+ (while (re-search-forward "-[\\]*-" nil t)
+ (goto-char (match-beginning 0))
+ (forward-char 1)
+ (if unp
+ (delete-char 1)
+ (insert "\\")))))
+
;;; Indentation
(defun nxml-indent-line ()