-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrobby-spinner.el
47 lines (32 loc) · 1.11 KB
/
robby-spinner.el
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
43
44
45
46
47
;;; robby-spinner.el --- robby mode line spinner -*- lexical-binding:t -*-
;;; Commentary:
;; Buffer local modeline spinner for robby, robby-spinner-mode
;;; Code:
(require 'spinner)
(require 'robby-customization)
(defvar-local robby--spinner nil)
(put 'robby--spinner 'permanent-local t)
(defun robby--create-spinner ()
"Create a new spinner for current buffer only."
(spinner-create robby-spinner t 5))
(defun robby--spinner-start ()
"Start spinner for current buffer."
(when (bound-and-true-p robby-mode)
(setq robby--spinner (robby--create-spinner))
(spinner-start robby--spinner)))
(defun robby--spinner-stop ()
"Stop spinner."
(spinner-stop robby--spinner)
(setq robby--spinner nil))
(defvar robby--spinner-lighter '(:eval (spinner-print robby--spinner)))
(defun robby-spinner-modeline ()
"Return spinner modeline.
Use in a custom modeline format like this:
(:eval (robby-spinner-modeline))
."
(format robby-spinner-lighter-format
(if robby--spinner
(spinner-print robby--spinner)
"")))
(provide 'robby-spinner)
;;; robby-spinner.el ends here