emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/aggressive-indent 58348d2 36/43: Merge pull request #13


From: Stefan Monnier
Subject: [elpa] externals/aggressive-indent 58348d2 36/43: Merge pull request #135 from leuven65/master
Date: Wed, 7 Jul 2021 22:49:45 -0400 (EDT)

branch: externals/aggressive-indent
commit 58348d29adf8d2f23da2798badd7f89ff59cd7cc
Merge: bfd04fc f611f31
Author: Artur Malabarba <artur@endlessparentheses.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #135 from leuven65/master
    
    Cancel the timer when buffer is killed
---
 aggressive-indent.el | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/aggressive-indent.el b/aggressive-indent.el
index 09c9ffa..7107ef4 100644
--- a/aggressive-indent.el
+++ b/aggressive-indent.el
@@ -481,6 +481,12 @@ If BODY finishes, `while-no-input' returns whatever value 
BODY produced."
     (setq aggressive-indent--idle-timer
           (run-with-idle-timer aggressive-indent-sit-for-time t 
#'aggressive-indent--indent-if-changed (current-buffer)))))
 
+(defun aggressive-indent--on-buffer-kill ()
+  "Cancel the timer before buffer is killed"
+  (when (timerp aggressive-indent--idle-timer)
+    (cancel-timer aggressive-indent--idle-timer)
+    (setq aggressive-indent--idle-timer nil)))
+
 ;;; Minor modes
 ;;;###autoload
 (define-minor-mode aggressive-indent-mode
@@ -510,14 +516,16 @@ If BODY finishes, `while-no-input' returns whatever value 
BODY produced."
           (aggressive-indent--local-electric t))
         (add-hook 'after-change-functions 
#'aggressive-indent--keep-track-of-changes nil 'local)
         (add-hook 'after-revert-hook #'aggressive-indent--clear-change-list 
nil 'local)
-        (add-hook 'before-save-hook 
#'aggressive-indent--proccess-changed-list-and-indent nil 'local))
+        (add-hook 'before-save-hook 
#'aggressive-indent--proccess-changed-list-and-indent nil 'local)
+        (add-hook 'kill-buffer-hook #'aggressive-indent--on-buffer-kill nil 
'local))
     ;; Clean the hooks
     (when (timerp aggressive-indent--idle-timer)
       (cancel-timer aggressive-indent--idle-timer))
     (remove-hook 'after-change-functions 
#'aggressive-indent--keep-track-of-changes 'local)
     (remove-hook 'after-revert-hook #'aggressive-indent--clear-change-list 
'local)
     (remove-hook 'before-save-hook 
#'aggressive-indent--proccess-changed-list-and-indent 'local)
-    (remove-hook 'post-command-hook #'aggressive-indent--softly-indent-defun 
'local)))
+    (remove-hook 'post-command-hook #'aggressive-indent--softly-indent-defun 
'local)
+    (remove-hook 'kill-buffer-hook #'aggressive-indent--on-buffer-kill 
'local)))
 
 (defun aggressive-indent--local-electric (on)
   "Turn variable `electric-indent-mode' on or off locally, as per boolean ON."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]