Subject: [PATCH] Face-ify all comment delimiters in 'lua-ts-mode'

From: john muhl <[email-masked]>
Date: Sat, 16 Aug 2025 15:43:56 -0500

Tags: patch

Add font-lock-comment-delimiter face to all the initial dashes in single
line comments. Some popular documentation styles recommend triple dashes
and it looks better to have all the dashes in the same face.

>From 06671f6cb239f1807b934eb189e771b9737856aa Mon Sep 17 00:00:00 2001
From: john muhl <[email-masked]>
Date: Wed, 14 May 2025 08:53:42 -0500
Subject: [PATCH] Face-ify all comment delimiters in 'lua-ts-mode'

* lisp/progmodes/lua-ts-mode.el (lua-ts--comment-font-lock):
Apply 'font-lock-comment-delimiter-face' to the entire span of
initial dashes.  In particular, this improves the appearance of
LuaCATS and EmmyLua style annotations which use "---".
* test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua:
Add tests.
---
 lisp/progmodes/lua-ts-mode.el                           | 7 +++++--
 test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua | 5 +++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el
index 07a8f0aef55..c51c7e7aef8 100644
--- a/lisp/progmodes/lua-ts-mode.el
+++ b/lisp/progmodes/lua-ts-mode.el
@@ -168,10 +168,13 @@ lua-ts--comment-font-lock
   (let* ((node-start (treesit-node-start node))
          (node-end (treesit-node-end node))
          (node-text (treesit-node-text node t))
-         (delimiter-end (+ 2 node-start)))
+         (delimiter-end (progn
+                          (goto-char node-start)
+                          (while (looking-at-p "-") (forward-char))
+                          (point))))
     (when (and (>= node-start start)
                (<= delimiter-end end)
-               (string-match "\\`--" node-text))
+               (string-match "\\`---*" node-text))
       (treesit-fontify-with-override node-start
                                      delimiter-end
                                      'font-lock-comment-delimiter-face
diff --git a/test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua b/test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua
index 93d589e3825..5a36bcad10b 100644
--- a/test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua
+++ b/test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua
@@ -11,6 +11,11 @@ Multi-line comment
 -- <- font-lock-comment-face
 local line_comment = "comment" -- comment
 --                                ^ font-lock-comment-face
+---@alias MyNumber integer
+-- <- font-lock-comment-delimiter-face
+------Calculate new number
+-- ^ font-lock-comment-delimiter-face
+function calc() end
 
 -- Definition
 local function f1() end
-- 
2.50.1