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"