diff --git a/src/leiningen/repl.clj b/src/leiningen/repl.clj index fb6453334..8fedf55bf 100644 --- a/src/leiningen/repl.clj +++ b/src/leiningen/repl.clj @@ -5,20 +5,21 @@ [clojure.java.io :as io] [leiningen.core.eval :as eval] [leiningen.core.classpath :as classpath])) - + (defn- start-server [project port] (eval/eval-in-project project - `(clojure.tools.nrepl/start-server ~port) - '(require 'clojure.tools.nrepl))) + `(.get (nth (clojure.tools.nrepl/start-server ~port) 1)) + '(require 'clojure.tools.nrepl))) (defn get-port [] - (Integer. - (or (System/getenv "LEIN_REPL_PORT") - (dec (+ 1024 (rand-int 64512)))))) + (Integer. + (or (System/getenv "LEIN_REPL_PORT") + (dec (+ 1024 (rand-int 64512)))))) (defn repl ([] (repl nil)) ([project] - (let [port (get-port)] - (start-server project port) - (reply/launch-nrepl {:attach (str port)})))) + (let [port (get-port)] + (future (start-server project port)) + (Thread/sleep 4000) + (reply/launch-nrepl {:attach (str port)}))))