diff options
| author | LLLL Colonq <llll@colonq> | 2026-06-05 20:32:17 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-06-05 20:32:17 -0400 |
| commit | b456aa44a172171d4b6120ec566c1499ec25a690 (patch) | |
| tree | 7a835e42351ffd39e5620f5d8e705ef8c69d838e /emacs/pit.el | |
| parent | 48ab2cb8e3de88dbd0722337bd4617ad22de1a12 (diff) | |
Fix integer parsing
Diffstat (limited to 'emacs/pit.el')
| -rw-r--r-- | emacs/pit.el | 56 |
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 |
