Quand je commence à travers leiningen, il accepte la prochaine connexion slime et je pars. J'aimerais vraiment que plusieurs instances d'emacs se connectent à la même instance swank. Puis-je faire ceci? puis-je le faire par leiningen?Puis-je connecter deux emacs/slimes à la même instance swank?
Répondre
Eh bien, vous pouvez commencer votre première BOUE normalement, puis (require 'swank.swank)
(ou peut-être il est requis par défaut ... pas sûr), ne (swank.swank/start-repl port)
avec port
remplacé par un numéro de port et vous pouvez connecter une deuxième instance de BOUE que REPL nouvellement créé.
Je l'ai fait tout à l'heure, avec un Emacs se connecter à un REPL a 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 que je pouvais faire ceci:
; 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 le fait pas bloc 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 pas sûr plus au sujet)
Mise à jour 3: Alors que ci-dessus méthode est parfaitement 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 plus pratique pour commencer Swank avec la commande
lein swank 4005 "localhost" :dont-close true
les arguments nom du port et de l'hôte doit être mentionné 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 de se reconnecter plus tard, mais aussi de connecter un certain nombre de clients simultanément.
(je viens de remarquer que cela est possible tout en répondant this new question sur la façon de permettre reconnexions à Swank Leiningen-commencé, il vint soudain à moi de vérifier si :dont-close
causeraient également des connexions simultanées à accepter - et il le fait.)
C'est génial. Exactement ce que je cherchais! –
'Awesome' est exactement le bon mot. :-) BTW, vous pouvez utiliser 'swank.swank/start-repl' pour intégrer Swank dans n'importe quelle application Clojure - j'ai lu sur les gens qui l'utilisent à très bon effet. La principale réserve est que Swank ne se soucie pas de la sécurité, vous devez donc prendre soin de limiter vous-même l'accès au port du REPL. –
Apparemment, la fonctionnalité décrite dans la mise à jour 3 ci-dessus nécessite un lein swank assez récent; voir l'autre question que j'ai liée à (et en particulier les commentaires sur ma réponse là-bas) pour plus de détails. –