diff options
-rw-r--r-- | lisp/progmodes/rust-ts-mode.el | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el index 999c1d7ae96..a07634199ff 100644 --- a/lisp/progmodes/rust-ts-mode.el +++ b/lisp/progmodes/rust-ts-mode.el @@ -147,7 +147,7 @@ :language 'rust :feature 'comment - '(([(block_comment) (line_comment)]) @font-lock-comment-face) + '(([(block_comment) (line_comment)]) @rust-ts-mode--comment-docstring) :language 'rust :feature 'delimiter @@ -287,6 +287,17 @@ '((ERROR) @font-lock-warning-face)) "Tree-sitter font-lock settings for `rust-ts-mode'.") +(defun rust-ts-mode--comment-docstring (node override start end &rest _args) + "Use the comment or documentation face appropriately for comments." + (let* ((beg (treesit-node-start node)) + (end (treesit-node-end node)) + (face (save-excursion + (goto-char beg) + (if (looking-at "///") + 'font-lock-doc-face + 'font-lock-comment-face)))) + (treesit-fontify-with-override beg end face override start end))) + (defun rust-ts-mode--fontify-scope (node override start end &optional tail-p) (let* ((case-fold-search nil) (face |