Merge in nrepl-upgrade branch.
This commit is contained in:
commit
630213b1d3
3 changed files with 19 additions and 15 deletions
|
@ -287,8 +287,7 @@ You don't need to "build" Leiningen per se, but when you're using a
|
|||
checkout you will need to get its dependencies in place.
|
||||
|
||||
Using Leiningen 1.x, run `lein install` in the `leiningen-core`
|
||||
subproject directory. When the dependencies change you will also have
|
||||
to do `rm .lein-classpath` in the project root.
|
||||
subproject directory. When the dependencies change
|
||||
|
||||
Once you've done that, symlink `bin/lein` to somewhere on your
|
||||
`$PATH`, usually as `lein2` in order to keep it distinct from your
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
[clucy "0.2.3"]
|
||||
[useful "0.7.6-alpha1"]
|
||||
[lein-newnew "0.2.2"]
|
||||
[reply "0.1.0-alpha1"]
|
||||
[reply "0.1.0-alpha4"]
|
||||
[org.clojars.ninjudd/data.xml "0.0.1-20110809.143608-1"]]
|
||||
:test-selectors {:default (complement :busted)}
|
||||
:eval-in-leiningen true)
|
||||
|
|
|
@ -4,26 +4,31 @@
|
|||
[reply.main :as reply]
|
||||
[clojure.java.io :as io]
|
||||
[leiningen.core.eval :as eval]
|
||||
[clojure.tools.nrepl :as nrepl]
|
||||
[leiningen.core.project :as project]
|
||||
[clojure.tools.nrepl.ack :as nrepl.ack]
|
||||
[clojure.tools.nrepl.server :as nrepl.server]
|
||||
[leiningen.core.user :as user]
|
||||
[leiningen.core.classpath :as classpath]))
|
||||
|
||||
(def profile {:dependencies '[[org.clojure/tools.nrepl "0.0.5"
|
||||
(def profile {:dependencies '[[org.clojure/tools.nrepl "0.2.0-beta1"
|
||||
:exclusions [org.clojure/clojure]]
|
||||
[clojure-complete "0.1.4"
|
||||
[clojure-complete "0.2.1"
|
||||
:exclusions [org.clojure/clojure]]
|
||||
[org.thnetos/cd-client "0.3.3"
|
||||
:exclusions [org.clojure/clojure]]]})
|
||||
|
||||
(defn- start-server [project port ack-port]
|
||||
(if project
|
||||
(eval/eval-in-project (project/merge-profile project profile)
|
||||
`(clojure.tools.nrepl/start-server ~port ~ack-port)
|
||||
'(do (require 'clojure.tools.nrepl)
|
||||
(require 'complete)))
|
||||
(nrepl/start-server port ack-port)))
|
||||
(eval/eval-in-project (project/merge-profile project profile)
|
||||
`(do (clojure.tools.nrepl.server/start-server
|
||||
:port ~port :ack-port ~ack-port))
|
||||
'(do (require 'clojure.tools.nrepl.server)
|
||||
(require 'complete.core)))
|
||||
(nrepl.server/start-server :port port :ack-port ack-port)))
|
||||
|
||||
(def lein-repl-server (delay (nrepl/start-server)))
|
||||
(def lein-repl-server
|
||||
(delay (nrepl.server/start-server
|
||||
:handler (nrepl.ack/handle-ack nrepl.server/unknown-op))))
|
||||
|
||||
(defn ^:no-project-needed repl
|
||||
"Start a repl session either with the current project or standalone.
|
||||
|
@ -36,7 +41,7 @@ run outside of a project, it'll be standalone and the classpath will be
|
|||
that of Leiningen."
|
||||
([] (repl nil))
|
||||
([project]
|
||||
(nrepl/reset-ack-port!)
|
||||
(nrepl.ack/reset-ack-port!)
|
||||
(.start
|
||||
(Thread.
|
||||
(bound-fn []
|
||||
|
@ -45,8 +50,8 @@ that of Leiningen."
|
|||
(or (System/getenv "LEIN_REPL_PORT")
|
||||
(:repl-port project)
|
||||
0))
|
||||
(-> @lein-repl-server first .getLocalPort)))))
|
||||
(-> @lein-repl-server deref :ss .getLocalPort)))))
|
||||
(reply/launch-nrepl
|
||||
(merge
|
||||
{:attach (str (nrepl/wait-for-ack (:repl-timeout project 30000)))}
|
||||
{:attach (str (nrepl.ack/wait-for-ack (:repl-timeout project 30000)))}
|
||||
(:reply-options project)))))
|
||||
|
|
Loading…
Reference in a new issue