Pergunta

Quando eu começo a Swank através de Leiningen, ele aceita a próxima conexão de lodo e eu vou. Eu realmente gostaria de ter várias instâncias do EMACS conectadas à mesma instância Swank. Posso fazer isso? Posso fazer isso através de Leiningen?

Foi útil?

Solução

Bem, você pode começar seu primeiro lodo normalmente, então (require 'swank.swank) (ou talvez seja necessário por padrão ... não tenho certeza), faça (swank.swank/start-repl port) com port Substituído por algum número da porta e você pode conectar uma segunda instância de slime àquele REPLET recém -criado.

Eu já fiz isso agora, com um emacs conectando -se a um repl a lein swank, (swank.swank/start-repl 4006) Nos primeiros Emacs, MX Slime Connect no segundo emacs (fornecendo 4006 como número da porta), então eu poderia fazer isso:

; first Emacs 
(def x 5)

; second Emacs
x ; evaluates to 5
(def y 1234)

; first Emacs
y ; evaluates to 1234

Legal, não? :-)

ATUALIZAÇÃO: Oh, btw - (swank.swank/start-repl) inicia o novo REPL em segundo plano e não Bloqueie o REPL que você usa para executá -lo. O valor de retorno é nil, então não tenho certeza de como matar a nova repl ...

(Atualização 2: removeu algo sobre o qual não tenho mais certeza.)

ATUALIZAÇÃO 3: Embora o método acima seja perfeitamente geral, pois possibilita conectar um cliente extra, independentemente de como a instância de swank original foi iniciada, pode ser mais conveniente começar a servir com o comando

lein swank 4005 "localhost" :dont-close true

Os argumentos do nome da porta e do host devem mencionar explicitamente se :dont-close true deve ser passado. 4005 e "localhost" são os valores padrão.

Isso tornará possível se desconectar de Swank e reconectar posteriormente, mas também para conectar vários clientes simultaneamente.

(Acabei de notar que isso é possível ao responder esta nova pergunta sobre como permitir reconexões ao Swank de Leiningen iniciado; de repente me ocorreu para verificar se :dont-close também faria com que as conexões simultâneas fossem aceitas - e sim.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top