Puis-je connecter deux emacs / schlamms à la même instance Swank?
Question
quand je commence par Swank Leiningen accepte la prochaine connexion de la boue et je pars. Je voudrais vraiment avoir plusieurs instances emacs se connectent à la même instance Swank. Puis-je faire ceci? puis-je faire à travers Leiningen?
La solution
Eh bien, vous pouvez commencer votre première BOUE normalement, puis (require 'swank.swank)
(ou peut-être est requis par défaut ... pas sûr), faire (swank.swank/start-repl port)
avec port
remplacé par un numéro de port et vous pouvez connecter une deuxième instance de BOUE à cette nouvelle REPL créé.
Je l'ai fait tout à l'heure, avec un Emacs se connecter à un REPL commencé avec lein swank
, (swank.swank/start-repl 4006)
dans le premier Emacs, slime-connecter Mx dans le second Emacs (fournissant 4006 que le numéro de port), alors je pourrais le faire :
; first Emacs
(def x 5)
; second Emacs
x ; evaluates to 5
(def y 1234)
; first Emacs
y ; evaluates to 1234
Cool, non? : -)
Mise à jour: Oh, BTW - (swank.swank/start-repl)
commence la nouvelle REPL en arrière-plan et ne pas bloquer le REPL que vous utilisez pour l'exécuter. La valeur de retour est nil
, donc je ne suis pas sûr de savoir comment tuer le nouveau REPL ...
(Mise à jour 2:. Quelque chose Removed je ne suis plus sûr)
Mise à jour 3: Bien que la méthode ci-dessus est tout à fait générale en ce qu'elle permet de connecter un client supplémentaire, indépendamment de la façon dont l'instance Swank original a été commencé, il pourrait être préférable de commencer Swank avec la commande
lein swank 4005 "localhost" :dont-close true
Les arguments de port et le nom d'hôte doit mentionner explicitement si :dont-close true
doit être passé. 4005
et "localhost"
sont les valeurs par défaut.
Cela permettra de se déconnecter de Swank et se reconnecter plus tard, mais aussi de se connecter un certain nombre de clients simultanément.
(je viens de remarquer que cela est possible tout en répondant cette nouvelle question sur la façon de permettre aux reconnexions de Leiningen-Swank a commencé,. il vint soudain à moi de vérifier si :dont-close
serait également provoquer des connexions simultanées à accepter - et il le fait)