Skip to content

Instantly share code, notes, and snippets.

@daviesian
Created January 9, 2013 15:04
Show Gist options
  • Save daviesian/4493790 to your computer and use it in GitHub Desktop.
Save daviesian/4493790 to your computer and use it in GitHub Desktop.
Addition to nRepl.el for showing number of live threads in mode line.
;; Eval all this in the scratch buffer, then have a play with evaluating forms in a clojure buffer.
;; This is a very quick and dirty first version.
(setq thread-count 0)
(defun add-remote-thread ()
(setq thread-count (+ 1 thread-count))
(setq mode-name (format "Clojure{%d}" thread-count))
(force-mode-line-update))
(defun remove-remote-thread (buffer)
(with-current-buffer buffer
(setq thread-count (- thread-count 1))
(setq mode-name (format "Clojure{%d}" thread-count))
(force-mode-line-update)))
(defun nrepl-eval-expression-at-point (&optional prefix)
"Evaluate the current toplevel form."
(interactive "P")
(let ((form (nrepl-expression-at-point)))
(add-remote-thread)
(if prefix
(nrepl-interactive-eval-print form)
(nrepl-interactive-eval form))))
(defun nrepl-interactive-eval-handler (buffer)
(nrepl-make-response-handler buffer
(lambda (buffer value)
(message (format "%s" value))
(remove-remote-thread buffer))
(lambda (buffer value)
(nrepl-emit-interactive-output value))
(lambda (buffer err)
(message (format "%s" err)))
'()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment