]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve dockerfile-ts-mode imenu generation (Bug#59979)
authorRandy Taylor <dev@rjt.dev>
Mon, 12 Dec 2022 01:50:54 +0000 (20:50 -0500)
committerYuan Fu <casouri@gmail.com>
Mon, 12 Dec 2022 23:08:55 +0000 (15:08 -0800)
* lisp/progmodes/dockerfile-ts-mode.el (treesit-node-child-by-field-name):
Declare.
(dockerfile-ts-mode--imenu-1): Use stage name if available.

lisp/progmodes/dockerfile-ts-mode.el

index 544e0f82d6dc025aa6965be92aa43620125d006e..40d90cc2dfcc547ef58ebd417bef738cb2c9de36 100644 (file)
@@ -33,6 +33,7 @@
 (declare-function treesit-parser-create "treesit.c")
 (declare-function treesit-induce-sparse-tree "treesit.c")
 (declare-function treesit-node-child "treesit.c")
+(declare-function treesit-node-child-by-field-name "treesit.c")
 (declare-function treesit-node-start "treesit.c")
 (declare-function treesit-node-type "treesit.c")
 
@@ -117,8 +118,10 @@ the subtrees."
                            children))
          (name (when ts-node
                  (pcase (treesit-node-type ts-node)
-                   ("from_instruction" (treesit-node-text
-                                        (treesit-node-child ts-node 1) t)))))
+                   ("from_instruction"
+                    (treesit-node-text
+                     (or (treesit-node-child-by-field-name ts-node "as")
+                         (treesit-node-child ts-node 1)) t)))))
          (marker (when ts-node
                    (set-marker (make-marker)
                                (treesit-node-start ts-node)))))