Skip to content

Commit d5de204

Browse files
committed
Adapt spinner nicer
1 parent 7ad39a8 commit d5de204

File tree

1 file changed

+11
-25
lines changed

1 file changed

+11
-25
lines changed

codegpt.el

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -93,48 +93,34 @@
9393
(defvar codegpt-requesting-p nil
9494
"Non-nil if sitll requesting.")
9595

96-
(defvar codegpt-spinner-counter 0
97-
"Spinner counter.")
98-
99-
(defvar codegpt-spinner-timer nil
100-
"Spinner timer.")
96+
(defvar codegpt-spinner nil
97+
"Spinner.")
10198

10299
;;
103100
;;; Major Mode
104101

105102
(defun codegpt-header-line ()
106103
"Header line for CodeGPT."
107104
(format " %s[Tunnel] %s [Model] %s"
108-
(if codegpt-requesting-p
109-
(let* ((spinner (if (symbolp codegpt-spinner-type)
110-
(cdr (assoc codegpt-spinner-type spinner-types))
111-
codegpt-spinner-type))
112-
(len (length spinner)))
113-
(when (<= len codegpt-spinner-counter)
114-
(setq codegpt-spinner-counter 0))
115-
(format "%s " (elt spinner codegpt-spinner-counter)))
105+
(if-let ((frame (spinner-print codegpt-spinner)))
106+
(concat frame " ")
116107
"")
117108
codegpt-tunnel codegpt-model))
118109

119-
(defun codegpt-mode--cancel-timer ()
110+
(defun codegpt-mode--kill-buffer-hook ()
120111
"Cancel spinner timer."
121-
(when (timerp codegpt-spinner-timer)
122-
(cancel-timer codegpt-spinner-timer)))
112+
(spinner-stop codegpt-spinner))
123113

124114
;;;###autoload
125115
(define-derived-mode codegpt-mode fundamental-mode "CodeGPT"
126116
"Major mode for `codegpt-mode'.
127117
128118
\\<codegpt-mode-map>"
129-
(setq codegpt-spinner-counter 0)
130119
(setq-local header-line-format `((:eval (codegpt-header-line))))
131-
(add-hook 'kill-buffer-hook #'codegpt-mode--cancel-timer nil t)
132-
(codegpt-mode--cancel-timer)
133-
(setq codegpt-spinner-timer (run-with-timer (/ spinner-frames-per-second 60.0)
134-
(/ spinner-frames-per-second 60.0)
135-
(lambda ()
136-
(cl-incf codegpt-spinner-counter)
137-
(force-mode-line-update)))))
120+
(add-hook 'kill-buffer-hook #'codegpt-mode--kill-buffer-hook nil t)
121+
(unless (spinner-p codegpt-spinner)
122+
(setq codegpt-spinner (make-spinner codegpt-spinner-type t)))
123+
(spinner-start codegpt-spinner))
138124

139125
;;
140126
;;; Application
@@ -191,7 +177,7 @@ boundaries of that region in buffer."
191177
("content" . ,(buffer-string)))]))
192178
(lambda (data)
193179
(setq codegpt-requesting-p nil)
194-
(codegpt-mode--cancel-timer)
180+
(spinner-stop codegpt-spinner)
195181
(openai--with-buffer codegpt-buffer-name
196182
(openai--pop-to-buffer codegpt-buffer-name)
197183
(let ((original-point (point)))

0 commit comments

Comments
 (0)