feat(clojure): improve cider repl icon state
This commit is contained in:
parent
8645634608
commit
8f816cf8b9
1 changed files with 28 additions and 9 deletions
|
@ -97,21 +97,40 @@
|
||||||
(when (featurep! :ui modeline +light)
|
(when (featurep! :ui modeline +light)
|
||||||
(defvar-local cider-modeline-icon nil)
|
(defvar-local cider-modeline-icon nil)
|
||||||
|
|
||||||
|
(defun +clojure--cider-set-modeline (face label)
|
||||||
|
"Update repl icon on modeline with cider information."
|
||||||
|
(setq cider-modeline-icon (concat
|
||||||
|
" "
|
||||||
|
(+modeline-format-icon 'faicon "terminal" "" face label -0.0575)
|
||||||
|
" "))
|
||||||
|
(add-to-list 'global-mode-string
|
||||||
|
'(t (:eval cider-modeline-icon))
|
||||||
|
'append))
|
||||||
|
|
||||||
(add-hook! '(cider-connected-hook
|
(add-hook! '(cider-connected-hook
|
||||||
cider-disconnected-hook
|
cider-disconnected-hook
|
||||||
cider-mode-hook)
|
cider-mode-hook)
|
||||||
(defun +clojure--cider-update-modeline ()
|
(defun +clojure--cider-connected-update-modeline ()
|
||||||
"Update modeline with cider connection state."
|
"Update modeline with cider connection state."
|
||||||
(let* ((connected (cider-connected-p))
|
(let* ((connected (cider-connected-p))
|
||||||
(face (if connected 'success 'warning))
|
(face (if connected 'warning 'breakpoint-disabled))
|
||||||
(label (if connected "Cider connected" "Cider disconnected")))
|
(label (if connected "Cider connected" "Cider disconnected")))
|
||||||
(setq cider-modeline-icon (concat
|
(+clojure--cider-set-modeline face label))))
|
||||||
" "
|
|
||||||
(+modeline-format-icon 'faicon "terminal" "" face label -0.0575)
|
(add-hook! '(cider-before-eval-hook)
|
||||||
" "))
|
(defun +clojure--cider-before-eval-hook-update-modeline ()
|
||||||
(add-to-list 'global-mode-string
|
"Update modeline with cider state before eval."
|
||||||
'(t (:eval cider-modeline-icon))
|
(+clojure--cider-set-modeline 'warning "Cider evaluating")))
|
||||||
'append)))))
|
|
||||||
|
(add-hook! '(cider-after-eval-done-hook)
|
||||||
|
(defun +clojure--cider-after-eval-done-hook-update-modeline ()
|
||||||
|
"Update modeline with cider state after eval."
|
||||||
|
(+clojure--cider-set-modeline 'success "Cider syncronized")))
|
||||||
|
|
||||||
|
(add-hook! '(cider-file-loaded-hook)
|
||||||
|
(defun +clojure--cider-file-loaded-update-modeline ()
|
||||||
|
"Update modeline with cider file loaded state."
|
||||||
|
(+clojure--cider-set-modeline 'success "Cider syncronized"))))
|
||||||
|
|
||||||
;; Ensure that CIDER is used for sessions in org buffers.
|
;; Ensure that CIDER is used for sessions in org buffers.
|
||||||
(when (featurep! :lang org)
|
(when (featurep! :lang org)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue