quando inizio swank attraverso leiningen accetta la prossima connessione melma e via vado. Mi piacerebbe davvero che diverse istanze di emacs si connettessero alla stessa istanza di swank. Posso farlo? posso farlo attraverso leiningen?Posso collegare due emac/slimes alla stessa istanza di swank?
risposta
Beh, si può iniziare la prima SLIME normalmente, quindi (require 'swank.swank)
(o forse è richiesto di default ... non è sicuro), non (swank.swank/start-repl port)
con port
sostituito da un numero di porta e si può collegare una seconda istanza di melma a quella REPL appena creato.
ho fatto solo ora, con un Emacs si collega ad un REPL iniziato con lein swank
, (swank.swank/start-repl 4006)
nel primo Emacs, Mx melma-connect nella seconda Emacs (che fornisce 4006 come numero di porta), poi ho potuto fare this:
; first Emacs
(def x 5)
; second Emacs
x ; evaluates to 5
(def y 1234)
; first Emacs
y ; evaluates to 1234
Freddo, no? :-)
Update: Oh, BTW - (swank.swank/start-repl)
inizia il nuovo REPL in background e non lo fa blocco del REPL si usa per eseguirlo. Il valore di ritorno è nil
, quindi non sono sicuro di come uccidere il nuovo REPL ...
(Update 2:. Qualcosa Rimosso Non sono più sicuro)
Update 3: Mentre il sopra metodo è perfettamente in generale, in quanto consente di collegare un cliente in più a prescindere da come è stata avviata l'istanza originale Swank, potrebbe essere più conveniente per iniziare Swank con il comando
lein swank 4005 "localhost" :dont-close true
il porto e di accoglienza argomenti nome deve essere menzionato esplicitamente se deve essere passato :dont-close true
. 4005
e "localhost"
sono i valori predefiniti.
Ciò consentirà di disconnettersi da Swank e riconnettersi in seguito, ma anche di connettere un numero di client contemporaneamente.
(ho appena notato che questo è possibile rispondendo this new question su come abilitare riconnessioni a Leiningen-iniziato Swank, ma improvvisamente a me per controllare se :dont-close
sarebbe anche causare connessioni simultanee per essere accettato - e lo fa.)
Questo è fantastico. Esattamente quello che stavo cercando! –
'Awesome' è esattamente la parola giusta. :-) BTW, puoi usare 'swank.swank/start-repl' per incorporare Swank in qualsiasi app Clojure - Ho letto che le persone lo usano con un ottimo effetto. L'avvertimento principale è che Swank non si preoccupa della sicurezza, quindi devi preoccuparti di limitare l'accesso alla porta REPL. –
Apparentemente la funzionalità descritta nell'aggiornamento 3 sopra richiede un lein swank abbastanza recente; vedi l'altra domanda che ho collegato (e in particolare i commenti sulla mia risposta) per i dettagli. –