summaryrefslogtreecommitdiff
path: root/cider-connection.el
diff options
context:
space:
mode:
authorVitalie Spinu <spinuvit@gmail.com>2018-10-11 21:24:14 +0200
committerBozhidar Batsov <bozhidar.batsov@gmail.com>2018-10-13 19:21:33 +0300
commit23de90cf771a236b424eb3fa8a4403041bed2e40 (patch)
treef248a96241804624d6a18936c296982f3c6db459 /cider-connection.el
parent3b55c116c647a53ab9ba81f97bb3dd14fbedfba0 (diff)
[Fix #2446] Implement Sesman friendly sessions
Diffstat (limited to 'cider-connection.el')
-rw-r--r--cider-connection.el18
1 files changed, 16 insertions, 2 deletions
diff --git a/cider-connection.el b/cider-connection.el
index 7d01a17e..dd90ecd0 100644
--- a/cider-connection.el
+++ b/cider-connection.el
@@ -417,6 +417,20 @@ REPL defaults to the current REPL."
(cl-defmethod sesman-more-relevant-p ((_system (eql CIDER)) session1 session2)
(sesman-more-recent-p (cdr session1) (cdr session2)))
+(cl-defmethod sesman-friendly-session-p ((_system (eql CIDER)) session)
+ (setcdr session (seq-filter #'buffer-live-p (cdr session)))
+ (when-let* ((repl (cadr session))
+ (proc (get-buffer-process repl))
+ (file (buffer-file-name)))
+ (when (process-live-p proc)
+ (let* ((classpath (or (process-get proc :cached-classpath)
+ (let ((cp (with-current-buffer repl
+ (cider-sync-request:classpath))))
+ (process-put proc :cached-classpath cp)
+ cp))))
+ (seq-find (lambda (path) (string-prefix-p path file))
+ classpath)))))
+
(defvar cider-sesman-browser-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "j q") #'cider-quit)
@@ -796,11 +810,11 @@ session."
(make-obsolete 'cider-current-messages-buffer nil "0.18")
(make-obsolete 'cider-default-connection "see sesman." "0.18")
(make-obsolete 'cider-extract-designation-from-current-repl-buffer nil "0.18")
-(make-obsolete 'cider-find-connection-buffer-for-project-directory 'sesman-linked-sessions "0.18")
+(make-obsolete 'cider-find-connection-buffer-for-project-directory 'sesman-current-sessions "0.18")
(make-obsolete 'cider-find-reusable-repl-buffer nil "0.18")
(make-obsolete 'cider-make-connection-default "see sesman." "0.18")
(make-obsolete 'cider-other-connection nil "0.18")
-(make-obsolete 'cider-project-connections 'sesman-linked-sessions "0.18")
+(make-obsolete 'cider-project-connections 'sesman-current-sessions "0.18")
(make-obsolete 'cider-project-connections-types nil "0.18")
(make-obsolete 'cider-prompt-for-project-on-connect nil "0.18")
(make-obsolete 'cider-read-connection `sesman-ask-for-session "0.18")