branch: externals/devicetree-ts-mode
commit 228527f661ea0bd797200a576a1ab29b1444c70f
Author: Aleksandr Vityazev <[email protected]>
Commit: Aleksandr Vityazev <[email protected]>

    Enhance devicetree-ts--mode--name-function.
    
    * devicetree-ts-mode: Rename devicetree-ts-mode--node-address
    to devicetree-ts-mode--node-addresses and rewrite it.
---
 devicetree-ts-mode.el | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/devicetree-ts-mode.el b/devicetree-ts-mode.el
index 560460426f..00f68079a4 100644
--- a/devicetree-ts-mode.el
+++ b/devicetree-ts-mode.el
@@ -140,25 +140,25 @@
    '((ERROR) @font-lock-warning-face))
   "Tree-sitter font-lock settings.")
 
-(defun devicetree-ts-mode--node-address (node)
-  "Return unit addresses for NODE concanated with @."
-  (mapconcat (lambda (children)
-               (if (string-equal (treesit-node-field-name children)
-                                 "address")
-                   (treesit-node-text children t)
-                 ""))
-             (treesit-node-children node)
-             ""))
+(defun devicetree-ts-mode--node-addresses (node)
+  "List of addresses for NODE."
+  (reverse
+   (seq-reduce
+    (lambda (acc children)
+      (if (string-equal (treesit-node-field-name children)
+                        "address")
+          (cons (treesit-node-text children t) acc)
+        acc))
+    (treesit-node-children node)
+    '())))
 
 (defun devicetree-ts--mode--name-function (node)
   "Return name of NODE to use for in imenu."
-  (let ((name (treesit-node-child-by-field-name node "name"))
-        (address (treesit-node-child-by-field-name node "address")))
-    (if address
-        (concat (treesit-node-text name t)
-                (devicetree-ts-mode--node-address node))
-      (treesit-node-text name t))))
-
+  (let ((name (treesit-node-child-by-field-name node "name")))
+    (concat (treesit-node-text name t)
+            (apply #'concat
+                   (seq-take (devicetree-ts-mode--node-addresses node)
+                             2)))))
 
 ;;;###autoload
 (define-derived-mode devicetree-ts-mode prog-mode "DTS"

Reply via email to