summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-06-05 20:32:17 -0400
committerLLLL Colonq <llll@colonq>2026-06-05 20:32:17 -0400
commitb456aa44a172171d4b6120ec566c1499ec25a690 (patch)
tree7a835e42351ffd39e5620f5d8e705ef8c69d838e /emacs
parent48ab2cb8e3de88dbd0722337bd4617ad22de1a12 (diff)
Fix integer parsing
Diffstat (limited to 'emacs')
-rw-r--r--emacs/pit.el56
1 files changed, 56 insertions, 0 deletions
diff --git a/emacs/pit.el b/emacs/pit.el
index cce2694..9a357a3 100644
--- a/emacs/pit.el
+++ b/emacs/pit.el
@@ -82,5 +82,61 @@
(setq-local c/contextual-ide 'pit/ide/body))
(add-hook 'pit/mode-hook #'pit/setup)
+;;;; nrepl client
+;; (require 'nrepl-client)
+;; (defun pit/repl/connect (&optional host port)
+;; "Connect to pit nREPL server at HOST:PORT."
+;; (let ((ret (get-buffer-create (generate-new-buffer-name " *pit-nrepl*") t)))
+;; (nrepl-start-client-process (or host "localhost") (or port 7888) nil (lambda (_pl) ret))
+;; ret))
+
+(require 'cider)
+(defun pit/repl/connect (&optional host port)
+ "Connect to pit nREPL server at HOST:PORT."
+ (let ( (dir (if-let* ((p (project-current))) (project-root p) default-directory))
+ (cider-repl-init-code nil))
+ (cider-nrepl-connect
+ (print
+ (thread-first `(:host ,host :port ,port :project-dir ,dir :repl-init-function nil :session-name nil :repl-type pit)
+ (cider--update-project-dir)
+ (cider--update-host-port)
+ (cider--check-existing-session))))))
+
+(defun cider-repl-handler (buffer)
+ "Make an nREPL evaluation handler for the REPL BUFFER."
+ (message "running cider-repl-handler")
+ (let ((show-prompt t))
+ (nrepl-make-response-handler
+ buffer
+ (lambda (buffer value)
+ (message "value-handler")
+ (cider-repl-emit-result buffer value t))
+ (lambda (buffer out)
+ (dolist (f cider--repl-stdout-functions)
+ (funcall f buffer out))
+ (cider-repl-emit-stdout buffer out))
+ (lambda (buffer err)
+ (dolist (f cider--repl-stderr-functions)
+ (funcall f buffer err))
+ (cider-repl-emit-stderr buffer err))
+ (lambda (buffer)
+ (message "done-handler: %s" show-prompt)
+ (when show-prompt
+ (cider-repl-emit-prompt buffer))
+ (when cider-repl-buffer-size-limit
+ (cider-repl-maybe-trim-buffer buffer))
+ (dolist (f cider--repl-done-functions)
+ (funcall f buffer)))
+ nrepl-err-handler
+ (lambda (buffer value content-type)
+ (if-let* ((content-attrs (cadr content-type))
+ (content-type* (car content-type))
+ (handler (cdr (assoc content-type*
+ cider-repl-content-type-handler-alist))))
+ (setq show-prompt (funcall handler content-type buffer value nil t))
+ (cider-repl-emit-result buffer value t t)))
+ (lambda (buffer warning)
+ (cider-repl-emit-stderr buffer warning)))))
+
(provide 'pit)
;;; pit.el ends here