Posso collegare due emacs / limi alla stessa istanza Swank?
Domanda
quando inizio Swank attraverso Leiningen accetta la successiva connessione melma e me ne vado. Mi piacerebbe davvero avere diverse emacs casi si collegano alla stessa istanza Swank. Posso farlo? posso fare questo attraverso Leiningen?
Soluzione
Bene, si può iniziare la prima SLIME normalmente, quindi (require 'swank.swank)
(o forse è richiesto di default ... non è sicuro), che fare con (swank.swank/start-repl port)
port
sostituito da un numero di porta e si può collegare una seconda istanza di melma a quella nuova REPL creato.
ho fatto solo ora, con uno 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 questo :
; first Emacs
(def x 5)
; second Emacs
x ; evaluates to 5
(def y 1234)
; first Emacs
y ; evaluates to 1234
Cool, no? : -)
Aggiornamento: Oh, BTW - (swank.swank/start-repl)
inizia il nuovo REPL in background e non bloccare il REPL si utilizza 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 di sto)
Aggiornamento 3: Mentre il metodo di cui sopra è 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 mosto di porta e il nome host argomenti menzionati in modo esplicito se :dont-close true
deve essere superato. 4005
e "localhost"
sono i valori di default.
In questo modo sarà possibile disconnettersi dal Swank e ricollegare in seguito, ma anche per collegare una serie di client contemporaneamente.
(ho appena notato che questo è possibile rispondendo questa nuova domanda su come abilitare riconnessioni a Leiningen-iniziato Swank;. improvvisamente venuto in mente di controllare se :dont-close
sarebbe anche causa connessioni simultanee per essere accettato - e lo fa)