Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to nREPL 0.4 #540

Merged
merged 6 commits into from
Aug 4, 2018
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ You can easily boot an nREPL server with the CIDER middleware loaded
with the following "magic" incantation:

```
clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.18.0-SNAPSHOT"} }}' -e '(require (quote cider-nrepl.main)) (cider-nrepl.main/init ["cider.nrepl/cider-middleware"])'
clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.19.0-SNAPSHOT"} }}' -e '(require (quote cider-nrepl.main)) (cider-nrepl.main/init ["cider.nrepl/cider-middleware"])'
```

Note that `clj` was introduced in Clojure 1.9.
Expand All @@ -194,7 +194,7 @@ server with CIDER's own nREPL handler.

```clojure
(ns my-app
(:require [clojure.tools.nrepl.server :as nrepl-server]))
(:require [nrepl.server :as nrepl-server]))

(defn nrepl-handler []
(require 'cider.nrepl)
Expand Down
4 changes: 2 additions & 2 deletions project.clj
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
(def VERSION "0.18.0-SNAPSHOT")
(def VERSION "0.19.0-SNAPSHOT")

(defproject cider/cider-nrepl VERSION
:description "nREPL middlewares for CIDER"
:url "https://github.com/clojure-emacs/cider-nrepl"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}

:dependencies [[org.clojure/tools.nrepl "0.2.13"]
:dependencies [[nrepl "0.4.1"]
^:source-dep [cider/orchard "0.3.0"]
^:source-dep [thunknyc/profile "0.5.2"]
^:source-dep [mvxcvi/puget "1.0.2"]
Expand Down
8 changes: 4 additions & 4 deletions src/cider/nrepl.clj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
(ns cider.nrepl
(:require [clojure.tools.nrepl.middleware :refer [set-descriptor!]]
[clojure.tools.nrepl.middleware.session :refer [session]]
[clojure.tools.nrepl.middleware.pr-values :refer [pr-values]]
[clojure.tools.nrepl.server :as nrepl-server]
(:require [nrepl.middleware :refer [set-descriptor!]]
[nrepl.middleware.session :refer [session]]
[nrepl.middleware.pr-values :refer [pr-values]]
[nrepl.server :as nrepl-server]
[cider.nrepl.version :as version]
[cider.nrepl.middleware.util.cljs :as cljs]
[cider.nrepl.middleware.pprint :as pprint]
Expand Down
6 changes: 3 additions & 3 deletions src/cider/nrepl/middleware/content_type.clj
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
[4] https://tools.ietf.org/html/rfc2017"
{:authors ["Reid 'arrdem' McKenzie <me@arrdem.com>"]}
(:require [cider.nrepl.middleware.slurp :refer [slurp-reply]])
(:import clojure.tools.nrepl.transport.Transport
(:import nrepl.transport.Transport
java.awt.Image
[java.io ByteArrayOutputStream File OutputStream]
[java.net URI URL]
Expand Down Expand Up @@ -80,7 +80,7 @@
[{:keys [session value] :as response}]
(cond
;; FIXME (arrdem 2018-04-03):
;;
;;
;; This could be more generic in terms of tolerating more
;; protocols / schemes

Expand All @@ -96,7 +96,7 @@
:body "")

;; FIXME (arrdem 2018-04-03):
;;
;;
;; This is super snowflakey in terms of only supporting base64
;; coding this one kind of object. This could definitely be
;; more generic / open to extension but hey at least it's
Expand Down
8 changes: 4 additions & 4 deletions src/cider/nrepl/middleware/debug.clj
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
[orchard.misc :as misc]
[orchard.meta :as m]
[clojure.java.io :as io]
[clojure.tools.nrepl.middleware.interruptible-eval :refer [*msg*]]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.middleware.session :as session]
[clojure.tools.nrepl.transport :as transport])
[nrepl.middleware.interruptible-eval :refer [*msg*]]
[nrepl.misc :refer [response-for]]
[nrepl.middleware.session :as session]
[nrepl.transport :as transport])
(:import [clojure.lang Compiler$LocalBinding]))

;;;; # The Debugger
Expand Down
6 changes: 3 additions & 3 deletions src/cider/nrepl/middleware/inspect.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
[cider.nrepl.middleware.util.error-handling :refer [base-error-response]]
[orchard.inspect :as inspect]
[orchard.misc :as u]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as transport])
(:import clojure.tools.nrepl.transport.Transport))
[nrepl.misc :refer [response-for]]
[nrepl.transport :as transport])
(:import nrepl.transport.Transport))

(def ^:dynamic *inspector* (inspect/fresh))

Expand Down
2 changes: 1 addition & 1 deletion src/cider/nrepl/middleware/out.clj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
guarantee that the channel that sent the clone message will properly
handle output replies."
(:require [cider.nrepl.middleware.util.error-handling :refer [with-safe-transport]]
[clojure.tools.nrepl.middleware.interruptible-eval :as ie])
[nrepl.middleware.interruptible-eval :as ie])
(:import [java.io PrintWriter Writer PrintStream OutputStream]))

(declare unsubscribe-session)
Expand Down
12 changes: 6 additions & 6 deletions src/cider/nrepl/middleware/pprint.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
(:require [cider.nrepl.middleware.util.cljs :as cljs]
[orchard.misc :as u]
[clojure.pprint :refer [pprint *print-right-margin*]]
[clojure.tools.nrepl.middleware.interruptible-eval :refer [*msg*]]
[clojure.tools.nrepl.middleware.pr-values :refer [pr-values]]
[clojure.tools.nrepl.middleware.session :as session]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as transport])
(:import clojure.tools.nrepl.transport.Transport))
[nrepl.middleware.interruptible-eval :refer [*msg*]]
[nrepl.middleware.pr-values :refer [pr-values]]
[nrepl.middleware.session :as session]
[nrepl.misc :refer [response-for]]
[nrepl.transport :as transport])
(:import nrepl.transport.Transport))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Expand Down
4 changes: 2 additions & 2 deletions src/cider/nrepl/middleware/profile.clj
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
{:author "Edwin Watkeys"}
(:require [clojure.string :as s]
[profile.core :as p]
[clojure.tools.nrepl.transport :as t]
[clojure.tools.nrepl.misc :refer [response-for]]))
[nrepl.transport :as t]
[nrepl.misc :refer [response-for]]))

(defn send-exception
[e msg transport]
Expand Down
6 changes: 3 additions & 3 deletions src/cider/nrepl/middleware/refresh.clj
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
[clojure.tools.namespace.find :as find]
[clojure.tools.namespace.reload :as reload]
[clojure.tools.namespace.track :as track]
[clojure.tools.nrepl.middleware.interruptible-eval :refer [*msg*]]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as transport]))
[nrepl.middleware.interruptible-eval :refer [*msg*]]
[nrepl.misc :refer [response-for]]
[nrepl.transport :as transport]))

(defonce ^:private refresh-tracker (agent (track/tracker)))

Expand Down
6 changes: 3 additions & 3 deletions src/cider/nrepl/middleware/slurp.clj
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
(ns cider.nrepl.middleware.slurp
"Rich reading & handling for CIDER.

Goes with middleware.content-types, providing the capability to
convert URLs to values which can be handled nicely."
{:authors ["Reid 'arrdem' McKenzie <me@arrdem.com>"]}
(:require [clojure.edn :as edn]
[clojure.java.io :as io]
[clojure.string :as str]
[clojure.tools.nrepl.transport :as transport]
[clojure.tools.nrepl.misc :refer [response-for]])
[nrepl.transport :as transport]
[nrepl.misc :refer [response-for]])
(:import [java.net MalformedURLException URL]
java.io.ByteArrayOutputStream
[java.nio.file Files Path Paths]))
Expand Down
8 changes: 4 additions & 4 deletions src/cider/nrepl/middleware/stacktrace.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
[orchard.namespace :as namespace]
[clojure.repl :as repl]
[clojure.string :as str]
[clojure.tools.nrepl.middleware.session :refer [session]]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as t]
[nrepl.middleware.session :refer [session]]
[nrepl.misc :refer [response-for]]
[nrepl.transport :as t]
[orchard.misc :as u]
[orchard.java :as java]
[clojure.java.io :as io]
Expand Down Expand Up @@ -110,7 +110,7 @@

(defn flag-tooling
"Walk the call stack from top to bottom, flagging frames below the first call
to `clojure.lang.Compiler` or `clojure.tools.nrepl.*` as `:tooling` to
to `clojure.lang.Compiler` or `nrepl.*` as `:tooling` to
distinguish compilation and nREPL middleware frames from user code."
[frames]
(let [tool-regex #"^clojure\.lang\.Compiler|^clojure\.tools\.nrepl|^cider\."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the clojure\.tools\.nrepl in the regex also be changed to just nrepl?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it should be changed.

Expand Down
8 changes: 4 additions & 4 deletions src/cider/nrepl/middleware/test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
[orchard.query :as query]
[clojure.pprint :as pp]
[clojure.test :as test]
[clojure.tools.nrepl.middleware.interruptible-eval :as ie]
[clojure.tools.nrepl.middleware.pr-values :refer [pr-values]]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as t]))
[nrepl.middleware.interruptible-eval :as ie]
[nrepl.middleware.pr-values :refer [pr-values]]
[nrepl.misc :refer [response-for]]
[nrepl.transport :as t]))

;;; ## Overview
;;
Expand Down
6 changes: 3 additions & 3 deletions src/cider/nrepl/middleware/track_state.clj
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
[orchard.namespace :as namespace]
[cljs-tooling.util.analysis :as cljs-ana]
[clojure.tools.namespace.find :as ns-find]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as transport])
[nrepl.misc :refer [response-for]]
[nrepl.transport :as transport])
(:import (clojure.lang Namespace MultiFn)
clojure.tools.nrepl.transport.Transport
nrepl.transport.Transport
java.net.SocketException))

(def clojure-core (try (find-ns 'clojure.core)
Expand Down
8 changes: 4 additions & 4 deletions src/cider/nrepl/middleware/util/error_handling.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
errors/exceptions that might arise from doing so."
(:refer-clojure :exclude [error-handler])
(:require [clojure.set :as set]
[clojure.tools.nrepl.transport :as transport]
[clojure.tools.nrepl.misc :refer [response-for]]
[nrepl.transport :as transport]
[nrepl.misc :refer [response-for]]
[clojure.walk :as walk])
(:import java.io.InputStream
clojure.lang.RT))
Expand Down Expand Up @@ -85,7 +85,7 @@

(defn- shallow-bencodable?
"Returns false if `item`'s type can't be bencoded as defined by the
algorithm in `clojure.tools.nrepl.bencode/write-bencode`. Does not
algorithm in `nrepl.bencode/write-bencode`. Does not
examine the elements of a collection to ensure that the enclosed
elements are also bencodable, and so you probably actually want to
use `deep-bencodable-or-fail` or write something similar."
Expand All @@ -104,7 +104,7 @@
(defn- deep-bencodable-or-fail
"Walks through the data structure provided by `item` and returns
true if it -- and all nested elements -- are bencodable as defined
by the algorithm in `clojure.tools.nrepl.bencode/write-bencode`. If
by the algorithm in `nrepl.bencode/write-bencode`. If
any part of `input` is not bencodable, will throw an
`IllegalArgumentException`. See `cider-nrepl` bug #332 at
https://github.com/clojure-emacs/cider-nrepl/issues/332 for further
Expand Down
6 changes: 3 additions & 3 deletions src/cider/nrepl/middleware/util/nrepl.clj
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
(ns cider.nrepl.middleware.util.nrepl
"Common utilities for interaction with the client."
(:require
[clojure.tools.nrepl.middleware.interruptible-eval :refer [*msg*]]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as transport]))
[nrepl.middleware.interruptible-eval :refer [*msg*]]
[nrepl.misc :refer [response-for]]
[nrepl.transport :as transport]))

(defn notify-client
"Send user level notification to client as a response to request `msg`.
Expand Down
4 changes: 2 additions & 2 deletions src/cider/nrepl/middleware/version.clj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
(ns cider.nrepl.middleware.version
"Return version info of the CIDER-nREPL middleware itself."
(:require [cider.nrepl.version :as version]
[clojure.tools.nrepl.misc :refer [response-for]]
[clojure.tools.nrepl.transport :as transport]))
[nrepl.misc :refer [response-for]]
[nrepl.transport :as transport]))

(defn handle-version [handler msg]
(if (= (:op msg) "cider-version")
Expand Down
2 changes: 1 addition & 1 deletion src/cider/nrepl/version.clj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
;; TODO: Figure out how to read the version from project.clj to avoid duplication
(def version-string
"The current version for cider-nrepl as a string."
"0.18.0-snapshot")
"0.19.0-snapshot")

(def version
"Current version of CIDER nREPL as a map.
Expand Down
4 changes: 2 additions & 2 deletions src/cider_nrepl/main.clj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns cider-nrepl.main
(:require
[clojure.java.io :as io]
[clojure.tools.nrepl.server :as nrepl.server]))
[nrepl.server :as nrepl.server]))

(defn- require-and-resolve
[thing]
Expand Down Expand Up @@ -34,7 +34,7 @@

(defn start-nrepl
"Starts a socket-based nREPL server. Accepts a map with the following keys:

* :port — defaults to 0, which autoselects an open port

* :bind — bind address, by default \"::\" (falling back to \"localhost\" if
Expand Down
7 changes: 3 additions & 4 deletions test/clj/cider/nrepl/main_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
(:require [cider.nrepl :refer [wrap-debug cider-middleware]]
[cider-nrepl.main :as m]
[clojure.test :refer :all]
[clojure.tools.nrepl :as nrepl]
[clojure.tools.nrepl.server :as nrepl.server]
[clojure.tools.nrepl.transport :as transport]))
[nrepl.core :as nrepl]
[nrepl.server :as nrepl.server]
[nrepl.transport :as transport]))

(defn start-stop-nrepl-session [opts]
(with-open [server (#'m/start-nrepl opts)
Expand Down Expand Up @@ -40,4 +40,3 @@
:port nil
:bind nil}]
(start-stop-nrepl-session opts))))

14 changes: 7 additions & 7 deletions test/clj/cider/nrepl/middleware/debug_integration_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
[cider.nrepl.middleware.debug :as d]
[cider.nrepl.test.server :refer [start-server]]
[clojure.test :refer :all]
[clojure.tools.nrepl :as nrepl]
[clojure.tools.nrepl.server :as nrepl.server]
[clojure.tools.nrepl.transport :as transport]
[nrepl.core :as nrepl]
[nrepl.server :as nrepl.server]
[nrepl.transport :as transport]
[clojure.java.io :as io])
(:import java.util.UUID
[java.util.concurrent TimeUnit LinkedBlockingQueue]))

;;; Helpers for starting an nRepl session
;;; We do not use clojure.tools.nrepl/client-session here because it
;;; We do not use nrepl/client-session here because it
;;; is built with the expectation that each message sent to the server
;;; results in a response message. When that does not happen (as in
;;; the case of "init-debugger"), it blocks forever.
Expand Down Expand Up @@ -537,13 +537,13 @@
(<-- {:status ["done"]})))

(deftest step-in-to-function-in-jar-test
;; Step into clojure.tools.nrepl.server/handle*. To do this, we need to find
;; Step into nrepl.server/handle*. To do this, we need to find
;; and instrument the source, which is in a jar file. Note that this function
;; is used because it is not marked as a :source-dep, so we can rely on the
;; namespace remaining unmunged, which is important when these tests run on
;; travis CI.
(--> :eval "(ns user.test.step-in
(:require [clojure.tools.nrepl.server :as server]))")
(:require [nrepl.server :as server]))")
(<-- {:ns "user.test.step-in"})
(<-- {:status ["done"]})

Expand All @@ -562,7 +562,7 @@
:coor [3 1 1 1]})
file (:file msg)]
(.startsWith file "jar:file:")
(.endsWith file "/clojure/tools/nrepl/server.clj"))
(.endsWith file "/nrepl/server.clj"))

(--> :continue)
(<-- {:value "{:transport 23}"})
Expand Down
4 changes: 2 additions & 2 deletions test/clj/cider/nrepl/middleware/debug_test.clj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns cider.nrepl.middleware.debug-test
(:require [clojure.test :refer :all]
[clojure.tools.nrepl.middleware.interruptible-eval :refer [*msg*]]
[clojure.tools.nrepl.transport :as t]
[nrepl.middleware.interruptible-eval :refer [*msg*]]
[nrepl.transport :as t]
[cider.nrepl.middleware.util.instrument :as ins]
[cider.nrepl.middleware.debug :as d]
[clojure.walk :as walk]))
Expand Down
2 changes: 1 addition & 1 deletion test/clj/cider/nrepl/middleware/track_state_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[cider.nrepl.middleware.util.cljs :as cljs]
[cider.nrepl.middleware.util.meta :as um]
[clojure.test :refer :all])
(:import clojure.tools.nrepl.transport.Transport))
(:import nrepl.transport.Transport))

(def some-ns-map {'cider.nrepl.middleware.track-state-test
(st/ns-as-map (find-ns 'cider.nrepl.middleware.track-state-test))})
Expand Down
4 changes: 2 additions & 2 deletions test/cljs/cider/nrepl/piggieback_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
[cider.nrepl.test-session :as session]
[cider.nrepl :refer [cider-middleware]]
[clojure.test :refer :all]
[clojure.tools.nrepl :as nrepl]
[clojure.tools.nrepl.server :as server]))
[nrepl.core :as nrepl]
[nrepl.server :as server]))

(def piggieback-fixture
(compose-fixtures
Expand Down
Loading