Merge in nrepl-upgrade branch.

This commit is contained in:
Anthony Grimes 2012-02-20 00:53:38 -06:00
commit 630213b1d3
3 changed files with 19 additions and 15 deletions

View file

@ -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

View file

@ -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)

View file

@ -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)))))