branch: externals/jinx commit cba8589542a6b90a41356ab24eed8b59eb05b949 Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
Avoid a little bit of timer consing --- jinx.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/jinx.el b/jinx.el index e3def0f869..7e70ef32a4 100644 --- a/jinx.el +++ b/jinx.el @@ -270,7 +270,7 @@ checking." Predicate should return t if the word before point is valid. Predicate may return a position to skip forward.") -(defvar jinx--timer nil +(defvar jinx--timer (timer-create) "Global timer to check pending regions.") (defvar jinx--base-syntax-table @@ -539,7 +539,7 @@ If CHECK is non-nil, always check first." (defun jinx--timer-handler () "Global timer handler, checking the pending regions in all windows." - (setq jinx--timer nil) + (timer-set-function jinx--timer nil) (dolist (frame (frame-list)) (dolist (win (window-list frame 'no-miniwindow)) (when-let ((buffer (window-buffer win)) @@ -549,19 +549,19 @@ If CHECK is non-nil, always check first." (defun jinx--reschedule (&rest _) "Restart the global idle timer." - (when jinx--timer + (when (timer--function jinx--timer) (cancel-timer jinx--timer) - (setq jinx--timer nil)) + (timer-set-function jinx--timer nil)) (jinx--schedule)) (defun jinx--schedule () "Start the global idle timer." - (when (and (not jinx--timer) + (when (and (not (timer--function jinx--timer)) (not completion-in-region-mode) ;; Corfu completion (get-buffer-window)) ;; Buffer visible - (setq jinx--timer - (run-with-idle-timer jinx-delay - nil #'jinx--timer-handler)))) + (timer-set-function jinx--timer #'jinx--timer-handler) + (timer-set-idle-time jinx--timer jinx-delay) + (timer-activate-when-idle jinx--timer))) (defun jinx--load-module () "Compile and load dynamic module."