Skip to content

Commit

Permalink
Handle the case when the reparse is scheduled in an inactive buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
dgutov committed May 2, 2011
1 parent 688ed47 commit 3c15500
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion js2-mode.el
Expand Up @@ -10522,7 +10522,25 @@ You can disable this by customizing `js2-cleanup-whitespace'."
(cancel-timer js2-mode-parse-timer))
(setq js2-mode-parsing nil)
(setq js2-mode-parse-timer
(run-with-idle-timer js2-idle-timer-delay nil #'js2-reparse)))
(run-with-idle-timer js2-idle-timer-delay nil
#'js2-mode-idle-reparse (current-buffer))))

(defun js2-mode-idle-reparse (buffer)
"Run `js2-reparse' if BUFFER is the current buffer, or schedule
it to be reparsed when the buffer is selected."
(if (eq buffer (current-buffer))
(js2-reparse)
;; reparse when the buffer is selected again
(with-current-buffer buffer
(add-hook 'window-configuration-change-hook
#'js2-mode-idle-reparse-inner
t))))

(defun js2-mode-idle-reparse-inner ()
(remove-hook 'window-configuration-change-hook
#'js2-mode-idle-reparse-inner
t)
(js2-reparse))

(defun js2-mode-edit (beg end len)
"Schedule a new parse after buffer is edited.
Expand Down

0 comments on commit 3c15500

Please sign in to comment.