Skip to content

Commit ee3ac37

Browse files
vspinubbatsov
authored andcommitted
Store and re-use session-name in REPL buffers
Session names might not be unique, thing which we don't know outside of `cider-make-session-name`, thus generation from scratch of session names when naming buffers doesn't work.
1 parent c4313db commit ee3ac37

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

cider-connection.el

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ PROC-BUFFER is either server or client buffer, defaults to current buffer."
112112
;; repl-specific parameters (do not pollute server params!)
113113
(unless (nrepl-server-p proc-buffer)
114114
(setq params (thread-first params
115+
(plist-put :session-name cider-session-name)
115116
(plist-put :repl-type cider-repl-type)
116117
(plist-put :cljs-repl-type cider-cljs-repl-type)
117118
(plist-put :repl-init-function cider-repl-init-function))))
@@ -483,7 +484,8 @@ removed."
483484
(?J . ,long-proj)
484485
(?r . ,repl-type)
485486
(?S . ,cljs-repl-type)))
486-
(ses-name (format-spec cider-session-name-template specs))
487+
(ses-name (or (plist-get params :session-name)
488+
(format-spec cider-session-name-template specs)))
487489
(specs (append `((?s . ,ses-name)) specs)))
488490
(thread-last (format-spec template specs)
489491
;; remove extraneous separators
@@ -560,7 +562,9 @@ function with the repl buffer set as current."
560562
;; Connection might not have been set as yet. Please don't send requests in
561563
;; this function, but use cider--connected-handler instead.
562564
(let ((buffer (or (plist-get params :repl-buffer)
563-
(get-buffer-create (generate-new-buffer-name "*cider-uninitialized-repl*")))))
565+
(get-buffer-create (generate-new-buffer-name "*cider-uninitialized-repl*"))))
566+
(ses-name (or (plist-get params :session-name)
567+
(cider-make-session-name params))))
564568
(with-current-buffer buffer
565569
(setq-local sesman-system 'CIDER)
566570
(setq-local default-directory (or (plist-get params :project-dir) default-directory))
@@ -573,6 +577,7 @@ function with the repl buffer set as current."
573577
(setq nrepl-err-handler #'cider-default-err-handler
574578
;; used as a new-repl marker in cider-set-repl-type
575579
mode-name nil
580+
cider-session-name ses-name
576581
nrepl-project-dir (plist-get params :project-dir)
577582
;; REPLs start with clj and then "upgrade" to a different type
578583
cider-repl-type "clj"

0 commit comments

Comments
 (0)