]> git.eshelyaron.com Git - emacs.git/commitdiff
Support mksh-specific function names in imenu
authorVisuwesh <visuweshm@gmail.com>
Sat, 11 Jun 2022 11:05:17 +0000 (13:05 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 11 Jun 2022 11:05:17 +0000 (13:05 +0200)
* lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Add
mksh-specific function names to imenu-generic-expression
(bug#55889).

lisp/progmodes/sh-script.el

index 4d2554c08708052f956db8f74cb4a10d95ad99bf..04f65b8dcad846c28e6ac0fec3f17ce548f7b023 100644 (file)
@@ -286,7 +286,7 @@ naming the shell."
   :group 'sh-script)
 
 (defcustom sh-imenu-generic-expression
-  '((sh
+  `((sh
      . ((nil
         ;; function FOO
         ;; function FOO()
@@ -295,8 +295,21 @@ naming the shell."
        ;; FOO()
        (nil
         "^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()"
-        1)
-       )))
+        1)))
+    (mksh
+     . ((nil
+         ;; function FOO
+         ;; function FOO()
+         ,(rx bol (* (syntax whitespace)) "function" (+ (syntax whitespace))
+              (group (1+ (not (any "\0\t\n \"$&'();<=>\\`|#*?[]/"))))
+              (* (syntax whitespace)) (? "()"))
+         1)
+        (nil
+         ;; FOO()
+         ,(rx bol (* (syntax whitespace))
+              (group (1+ (not (any "\0\t\n \"$&'();<=>\\`|#*?[]/"))))
+              (* (syntax whitespace)) "()")
+         1))))
   "Alist of regular expressions for recognizing shell function definitions.
 See `sh-feature' and `imenu-generic-expression'."
   :type '(alist :key-type (symbol :tag "Shell")