Lors de l'utilisation de cider-jack-in
, je m'attends à ce qu'un serveur nREPL démarre et que mon espace de noms soit chargé dessus.
Le serveur nREPL est chargé, mais se connecte à l'espace user
noms
;; Connected to nREPL server - nrepl://localhost:51153
;; CIDER 0.21.0snapshot (package: 20190212.1312), nREPL 0.6.0
;; Clojure 1.10.0, Java 1.8.0_144
;; Docs: (doc function-name)
;; (find-doc part-of-name)
;; Source: (source function-name)
;; Javadoc: (javadoc java-object-or-class)
;; Exit: <C-c C-q>
;; Results: Stored in vars *1, *2, *3, an exception in *e;
ERROR: Unhandled REPL handler exception processing message {:op version, :prefix-rewriting false, :debug false, :session 8461f0f5-b998-4108-a56a-19e205dada4a, :id 12}
java.lang.IllegalArgumentException: No implementation of method: :send of protocol: #'clojure.tools.nrepl.transport/Transport found for class: nrepl.transport.FnTransport
at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:583)
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:575)
at clojure.tools.nrepl.transport$eval18834$fn__18835$G__18825__18842.invoke(transport.clj:16)
at refactor_nrepl.middleware$version_reply.invokeStatic(middleware.clj:144)
at refactor_nrepl.middleware$version_reply.invoke(middleware.clj:143)
at refactor_nrepl.middleware$wrap_refactor$fn__26537.invoke(middleware.clj:214)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__19104.invoke(middleware.clj:22)
at nrepl.server$handle_STAR_.invokeStatic(server.clj:18)
at nrepl.server$handle_STAR_.invoke(server.clj:15)
at nrepl.server$handle$fn__21179.invoke(server.clj:27)
at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.util.concurrent.Fut
ureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
user>
cider-jack-in
;; CIDER 0.21.0snapshot (package: 20190212.1312), nREPL 0.6.0
;; Clojure 1.10.0, Java 1.8.0_144
Emacs 26.1
OS X 10.14 "macOS Mojave"
De plus, cela pose également des problèmes lorsque j'utilise <any-ns>/
(c'est-à-dire n'importe quel espace de noms suivi de /
) dans l'un de mes espaces de noms clojure. Il se bloque pendant un moment, puis renvoie l'erreur mentionnée ci-dessus sur le nREPL.
entrée dans le fichier clj
(def test (foo/))
Erreur:
ERROR: Unhandled REPL handler exception processing message {:op namespace-aliases, :prefix-rewriting false, :debug false, :session 8461f0f5-b998-4108-a56a-19e205dada4a, :id 26}
java.lang.IllegalArgumentException: No implementation of method: :send of protocol: #'clojure.tools.nrepl.transport/Transport found for class: nrepl.transport.FnTransport
at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:583)
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:575)
at clojure.tools.nrepl.transport$eval18834$fn__18835$G__18825__18842.invoke(transport.clj:16)
at refactor_nrepl.middleware$namespace_aliases_reply.invokeStatic(middleware.clj:181)
at refactor_nrepl.middleware$namespace_aliases_reply.invoke(middleware.clj:180)
at refactor_nrepl.middleware$wrap_refactor$fn__26537.invoke(middleware.clj:214)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__19104.invoke(middleware.clj:22)
at nrepl.server$handle_STAR_.invokeStatic(server.clj:18)
at nrepl.server$handle_STAR_.invoke(server.clj:15)
at nrepl.server$handle$fn__21179.invoke(server.clj:27)
at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java
.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
à part l'erreur et quelques secondes d'attente lorsque je tape un espace de noms/alias suivi de /
ou même juste de /
, tout semble bien fonctionner.
Cela a commencé à se produire depuis que j'ai amélioré mon cidre. Cela m'arrive le 0.20.0
ainsi que le dernier 20190212.1312
.
Est-ce en quelque sorte un problème avec clj-refactor
n'est pas compatible avec les dernières versions de cidre ? Je suppose que je vais devoir soulever la question là-bas alors.
Tout semble fonctionner correctement avec clj-refactor
.
Toutes vos traces de pile incluent ceci : #'clojure.tools.nrepl.transport/Transport
. Les versions 2.8.3 et 2.9.0 de Lein sont incompatibles avec les anciennes versions de tools.nrepl et sont passées à nrepl/nrepl. Vérifiez votre chemin de classe et deps pour tout ce qui apporte cette ancienne dépendance et voyez si vous pouvez facilement faire passer les choses à unreal 0.6.0 (si vous utilisez lein 2.9.0) ou nrepl 0.5.0 si vous utilisez lean 2.8.3
Je vais essayer ça et tester.
La mise à jour vers nrepl semble avoir résolu ce problème. Merci @dpsutton.
Commentaire le plus utile
Toutes vos traces de pile incluent ceci :
#'clojure.tools.nrepl.transport/Transport
. Les versions 2.8.3 et 2.9.0 de Lein sont incompatibles avec les anciennes versions de tools.nrepl et sont passées à nrepl/nrepl. Vérifiez votre chemin de classe et deps pour tout ce qui apporte cette ancienne dépendance et voyez si vous pouvez facilement faire passer les choses à unreal 0.6.0 (si vous utilisez lein 2.9.0) ou nrepl 0.5.0 si vous utilisez lean 2.8.3