branch: externals/aggressive-indent commit bfd04fcb943ec2e62a1c51408652c751d61cb59c Merge: c28246b 81b6f68 Author: Artur Malabarba <ar...@endlessparentheses.com> Commit: GitHub <nore...@github.com>
Merge pull request #136 from tmurph/master Capture current buffer for idle timer indentation function. --- aggressive-indent.el | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/aggressive-indent.el b/aggressive-indent.el index c467db8..09c9ffa 100644 --- a/aggressive-indent.el +++ b/aggressive-indent.el @@ -459,17 +459,18 @@ If BODY finishes, `while-no-input' returns whatever value BODY produced." nil) (t val))))))) -(defun aggressive-indent--indent-if-changed () - "Indent any region that changed in the last command loop." - (if (not (buffer-live-p (current-buffer))) - (cancel-timer aggressive-indent--idle-timer) - (when (and aggressive-indent-mode aggressive-indent--changed-list) - (save-excursion - (save-selected-window - (aggressive-indent--while-no-input - (aggressive-indent--proccess-changed-list-and-indent)))) - (when (timerp aggressive-indent--idle-timer) - (cancel-timer aggressive-indent--idle-timer))))) +(defun aggressive-indent--indent-if-changed (buffer) + "Indent any region that changed in BUFFER in the last command loop." + (with-current-buffer buffer + (if (not (buffer-live-p (current-buffer))) + (cancel-timer aggressive-indent--idle-timer) + (when (and aggressive-indent-mode aggressive-indent--changed-list) + (save-excursion + (save-selected-window + (aggressive-indent--while-no-input + (aggressive-indent--proccess-changed-list-and-indent)))) + (when (timerp aggressive-indent--idle-timer) + (cancel-timer aggressive-indent--idle-timer)))))) (defun aggressive-indent--keep-track-of-changes (l r &rest _) "Store the limits (L and R) of each change in the buffer." @@ -478,7 +479,7 @@ If BODY finishes, `while-no-input' returns whatever value BODY produced." (when (timerp aggressive-indent--idle-timer) (cancel-timer aggressive-indent--idle-timer)) (setq aggressive-indent--idle-timer - (run-with-idle-timer aggressive-indent-sit-for-time t #'aggressive-indent--indent-if-changed)))) + (run-with-idle-timer aggressive-indent-sit-for-time t #'aggressive-indent--indent-if-changed (current-buffer))))) ;;; Minor modes ;;;###autoload