diff options
author | Vitalie Spinu <spinuvit@gmail.com> | 2018-10-11 21:24:14 +0200 |
---|---|---|
committer | Bozhidar Batsov <bozhidar.batsov@gmail.com> | 2018-10-13 19:21:33 +0300 |
commit | 23de90cf771a236b424eb3fa8a4403041bed2e40 (patch) | |
tree | f248a96241804624d6a18936c296982f3c6db459 /cider-connection.el | |
parent | 3b55c116c647a53ab9ba81f97bb3dd14fbedfba0 (diff) |
[Fix #2446] Implement Sesman friendly sessions
Diffstat (limited to 'cider-connection.el')
-rw-r--r-- | cider-connection.el | 18 |
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") |