X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/6490628efd046db0751847c5286fff822723b75a..16be7a12d0dbbbd0e59fc2ccf9a7c7085eb9cf5a:/beacon.el diff --git a/beacon.el b/beacon.el index e978a7c72..8126c4344 100644 --- a/beacon.el +++ b/beacon.el @@ -5,8 +5,8 @@ ;; Author: Artur Malabarba ;; URL: https://github.com/Malabarba/beacon ;; Keywords: convenience -;; Version: 1.1 -;; Package-Requires: ((seq "1.11")) +;; Version: 1.3.0 +;; Package-Requires: ((seq "2.14")) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -166,6 +166,10 @@ predictable ways, when the blink would be more distracting than helpful.." :type '(repeat symbol)) +(defcustom beacon-before-blink-hook nil + "Hook run immediately before blinking the beacon." + :type 'hook) + ;;; Internal variables (defvar beacon--window-scrolled nil) @@ -236,7 +240,7 @@ COLORS applied to each one." (seq-filter (lambda (o) (overlay-get o 'beacon)) (overlays-at (point)))))) -(defun beacon--vanish () +(defun beacon--vanish (&rest _) "Turn off the beacon." (when (timerp beacon--timer) (cancel-timer beacon--timer)) @@ -321,6 +325,7 @@ unconditionally (even if `beacon-mode' is disabled), and this can be invoked as a user command or called from lisp code." (interactive) (beacon--vanish) + (run-hooks 'beacon-before-blink-hook) (beacon--shine) (setq beacon--timer (run-at-time beacon-blink-delay @@ -448,11 +453,13 @@ unreliable, so just blink immediately." (add-hook 'window-scroll-functions #'beacon--window-scroll-function) (add-hook 'focus-in-hook #'beacon--blink-on-focus) (add-hook 'post-command-hook #'beacon--post-command) + (add-hook 'before-change-functions #'beacon--vanish) (add-hook 'pre-command-hook #'beacon--record-vars) (add-hook 'pre-command-hook #'beacon--vanish)) (remove-hook 'focus-in-hook #'beacon--blink-on-focus) (remove-hook 'window-scroll-functions #'beacon--window-scroll-function) (remove-hook 'post-command-hook #'beacon--post-command) + (remove-hook 'before-change-functions #'beacon--vanish) (remove-hook 'pre-command-hook #'beacon--record-vars) (remove-hook 'pre-command-hook #'beacon--vanish)))