2011-08-30 10 views

risposta

12

clojure-jack-in avvia una sessione SLIME per il progetto corrente.

Fa questo generando un numero di porta casuale, eseguendo lein jack-in con questo numero di porta in un processo secondario, in attesa dell'inizio del server Swank e quindi chiamando slime-connect con il numero di porta.

Dal lein jack-in viene utilizzato per avviare il server Swank, è ovviamente necessario utilizzare Leiningen nel progetto ed è necessario avere il plugin Swank-clojure per Leiningen installato, o installando come plugin stand-alone (lein plugin install swank-clojure 1.3.2) o includendolo come dev-dependency nel tuo project.clj.

Sul lato Emacs, è necessario installare clojure-mode, preferibilmente da Marmalade. Non è necessario aggiungere nulla al tuo .emacs.

La differenza tra l'utilizzo di lein jack-in (via M-x clojure-jack-in) vs. esecuzione lein swank è che clojure-jack-in carichi anche una versione di melma che viene fornito in bundle con il plugin Leiningen Swank-clojure invece della versione SLIME installata in Emacs. Non sono sicuro di quale sia il ragionamento alla base di questo, presumibilmente solo per assicurarmi che la versione SLIME sia compatibile con il server swank.

+0

L'altra ragione è che la versione di SLIME utilizzata con swank-clojure non funziona correttamente con la maggior parte delle implementazioni di Common Lisp e viene rimossa da alcune delle sue funzionalità. –

+0

Sai perché queste funzionalità sono state eliminate? Non ho mai avuto problemi con la versione SLIME standard e lo swank-clojure, ora uso clojure-jack-in principalmente per comodità. –

+0

Mi ricordo che mancavano alcuni comandi di riferimento incrociato, ma non c'era anche tutto ciò che riguardava la melma. A un certo punto mancava il completamento sfocato, ma penso che sia stato aggiunto da allora. Non ho usato Clojure per un po 'ei miei ricordi sono un po' vaghi. L'evidenziazione paramime di Slime non è implementata come credo. –

Problemi correlati