aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--oni-js.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/oni-js.el b/oni-js.el
index 3488331..bf16f55 100644
--- a/oni-js.el
+++ b/oni-js.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2025.0620.121132
+;; Version: 2025.0805.110318
;; Package-Requires: (oni-company js2-mode js2-refactor oni-flycheck fic-mode rjsx-mode prettier-js)
;; This program is free software; you can redistribute it and/or modify
@@ -82,6 +82,18 @@
(with-eval-after-load 'grep
(add-to-list 'grep-files-aliases '("js" . "*.js *.jsx *.json *.vue *.mjs")))
+(defun oni-js-set-imenu-expression ()
+ (setq-local imenu-create-index-function 'imenu-default-create-index-function
+ imenu-generic-expression
+ (list
+ (list
+ nil
+ (rx (or (seq bol (minimal-match (zero-or-more space)) (optional "async ") (group-n 1 (minimal-match (one-or-more alnum))) "(" (minimal-match (zero-or-more (not ")"))) ")" (minimal-match (zero-or-more white)) "{")
+ (seq bol (minimal-match (zero-or-more space)) (minimal-match (group-n 1 (one-or-more alnum))) ":" (minimal-match (zero-or-more white)) (optional "function ") "(")
+ (seq bol (minimal-match (zero-or-more space)) "function " (minimal-match (group-n 1 (one-or-more alnum))) "(" (minimal-match (zero-or-more (not ")"))) ")" (minimal-match (zero-or-more space)) "{")))
+ 1))))
+
+(add-hook 'js2-mode-hook #'oni-js-set-imenu-expression)
(provide 'oni-js)
;;; oni-js.el ends here