blob: 33ae9aff0c673abe3974b72a03763784c7584037 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
;;; +nyan-mode.el --- Extras for nyan-mode -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
;;; Update even without line number in the mode line.
(defcustom +nyan-mode-update-functions
'( end-of-buffer beginning-of-buffer
next-line previous-line
org-next-visible-heading org-previous-visible-heading)
"Functions after which to force a mode-line update."
:type '(repeat function))
(defun +nyan-mode--fmlu (&rest _)
"Update the mode-line, advice-style."
(force-mode-line-update))
(defun +nyan-mode-advice (&rest _)
"Advise line-moving functions when in `nyan-mode'."
(dolist (fn +nyan-mode-update-functions)
(if nyan-mode
(advice-add fn :after #'+nyan-mode--fmlu)
(advice-remove fn #'+nyan-mode--fmlu))))
(defface +nyan-mode-line nil
"Face for the nyan-mode mode-line indicator.")
(define-minor-mode +nyan-local-mode
"My very own `nyan-mode' that isn't global and doesn't update the mode-line."
:global nil
:group 'nyan
(dolist (fn +nyan-mode-update-functions)
(if +nyan-local-mode
(advice-add fn :after #'+nyan-mode--fmlu)
(advice-remove fn #'+nyan-mode--fmlu))))
(define-globalized-minor-mode +nyan-mode +nyan-local-mode +nyan-local-mode)
(provide '+nyan-mode)
;;; +nyan-mode.el ends here
|