From 75f11b4da64d0cc9f44c1d5685e45fe9d935d5fa Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 27 Jan 2021 13:06:11 +0100 Subject: [PATCH] SLY/Selector: Fix switching to buffer-less connection. --- .emacs.d/lisp/init-sly-selector.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.emacs.d/lisp/init-sly-selector.el b/.emacs.d/lisp/init-sly-selector.el index a4df09a9..9f5f6692 100644 --- a/.emacs.d/lisp/init-sly-selector.el +++ b/.emacs.d/lisp/init-sly-selector.el @@ -1,5 +1,6 @@ -(defvar ambrevar/sly-connection-name "sbcl-ambrevar") +(require 'sly-mrepl) ; For `sly-mrepl--find-buffer'. +(defvar ambrevar/sly-connection-name "sbcl-ambrevar") (defun ambrevar/helm-sly-buffer-p (buffer) "Return non-nil if BUFFER has a SLY connection matching `ambrevar/sly-connection-name'." @@ -8,7 +9,7 @@ sly-buffer-connection (sly-process sly-buffer-connection) (string-prefix-p ambrevar/sly-connection-name - (helm-sly-connection-name sly-buffer-connection))))) + (sly-connection-name sly-buffer-connection))))) (defun ambrevar/helm-sly-mini () "Helm for Lisp connections and buffers using the @@ -34,8 +35,14 @@ (let ((sly-lisp-implementations (list (assoc (intern ambrevar/sly-connection-name) - sly-lisp-implementations)))) - (call-interactively #'sly))) + sly-lisp-implementations))) + (current-connection (car (sly--purge-connections)))) + (if (and current-connection + (sly-mrepl--find-buffer current-connection) + (ambrevar/helm-sly-buffer-p + (sly-mrepl--find-buffer current-connection))) + (call-interactively #'sly) + (sly)))) :helm-sources #'ambrevar/helm-sly-mini)) (defun ambrevar/helm-selector-sly-other-window ()