branch: master
commit bf61e6f2fde6c487ecc30ad30e608c928d318d4d
Author: Jimmy Yuen Ho Wong <[email protected]>
Commit: Jimmy Yuen Ho Wong <[email protected]>

    Fix #495 Aggressively reparse during imenu-create-index when possible
---
 js2-mode.el | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/js2-mode.el b/js2-mode.el
index a1da18b..2872dbd 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -12577,8 +12577,11 @@ destroying the region selection."
         (goto-char (cl-cadadr e))))))
 
 (defun js2-mode-create-imenu-index ()
-  "Return an alist for `imenu--index-alist'."
-  ;; This is built up in `js2-parse-record-imenu' during parsing.
+  "Returns an alist for `imenu--index-alist'. Returns nil on first
+scan if buffer size > `imenu-auto-rescan-maxout'."
+  (when (and (not js2-mode-ast)
+             (<= (buffer-size) imenu-auto-rescan-maxout))
+      (js2-reparse))
   (when js2-mode-ast
     ;; if we have an ast but no recorder, they're requesting a rescan
     (unless js2-imenu-recorder

Reply via email to