summaryrefslogtreecommitdiff
path: root/cider-connection.el
diff options
context:
space:
mode:
authorVitalie Spinu <spinuvit@gmail.com>2018-08-01 23:16:40 +0200
committerBozhidar Batsov <bozhidar.batsov@gmail.com>2018-08-05 13:16:58 +0300
commitee3ac379b049d45bbcd18f2483f6d89af9fef410 (patch)
treeb07a3b9871dbb99a78afd1fbf13f7604c84a29a4 /cider-connection.el
parentc4313db0bdd55138f63d6a8624b0ba2db5c23a3b (diff)
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.
Diffstat (limited to 'cider-connection.el')
-rw-r--r--cider-connection.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/cider-connection.el b/cider-connection.el
index e9cac35a..602a5d85 100644
--- a/cider-connection.el
+++ b/cider-connection.el
@@ -112,6 +112,7 @@ PROC-BUFFER is either server or client buffer, defaults to current buffer."
;; repl-specific parameters (do not pollute server params!)
(unless (nrepl-server-p proc-buffer)
(setq params (thread-first params
+ (plist-put :session-name cider-session-name)
(plist-put :repl-type cider-repl-type)
(plist-put :cljs-repl-type cider-cljs-repl-type)
(plist-put :repl-init-function cider-repl-init-function))))
@@ -483,7 +484,8 @@ removed."
(?J . ,long-proj)
(?r . ,repl-type)
(?S . ,cljs-repl-type)))
- (ses-name (format-spec cider-session-name-template specs))
+ (ses-name (or (plist-get params :session-name)
+ (format-spec cider-session-name-template specs)))
(specs (append `((?s . ,ses-name)) specs)))
(thread-last (format-spec template specs)
;; remove extraneous separators
@@ -560,7 +562,9 @@ function with the repl buffer set as current."
;; Connection might not have been set as yet. Please don't send requests in
;; this function, but use cider--connected-handler instead.
(let ((buffer (or (plist-get params :repl-buffer)
- (get-buffer-create (generate-new-buffer-name "*cider-uninitialized-repl*")))))
+ (get-buffer-create (generate-new-buffer-name "*cider-uninitialized-repl*"))))
+ (ses-name (or (plist-get params :session-name)
+ (cider-make-session-name params))))
(with-current-buffer buffer
(setq-local sesman-system 'CIDER)
(setq-local default-directory (or (plist-get params :project-dir) default-directory))
@@ -573,6 +577,7 @@ function with the repl buffer set as current."
(setq nrepl-err-handler #'cider-default-err-handler
;; used as a new-repl marker in cider-set-repl-type
mode-name nil
+ cider-session-name ses-name
nrepl-project-dir (plist-get params :project-dir)
;; REPLs start with clj and then "upgrade" to a different type
cider-repl-type "clj"