Cider: eldoc error upon symbol completion attempt

Created on 22 Apr 2020  ·  8Comments  ·  Source: clojure-emacs/cider

CIDER 0.25.0snapshot (package: 20200420.735), nREPL 0.6.0
Clojure 1.10.1, Java 1.8.0_242
Ubuntu 18.04

clj-tools repl
In a clojure buffer, evaluate (C-c k), then typing the following two expressions:

(require '[clojure.string :as str])
str/bl<TAB>

causes:

 Suppress eldoc-error 

1. Unhandled java.lang.Exception
   Either "symbol", or ("class", "member") must be supplied

                  info.clj:   71  cider.nrepl.middleware.info/info
                  info.clj:   61  cider.nrepl.middleware.info/info
                  info.clj:   85  cider.nrepl.middleware.info/eldoc-reply
                  info.clj:   83  cider.nrepl.middleware.info/eldoc-reply
        error_handling.clj:  160  cider.nrepl.middleware.util.error-handling/eval1768/fn
              MultiFn.java:  234  clojure.lang.MultiFn/invoke
                  info.clj:   96  cider.nrepl.middleware.info/handle-info
                  info.clj:   95  cider.nrepl.middleware.info/handle-info
                  Var.java:  388  clojure.lang.Var/invoke
                 nrepl.clj:  181  cider.nrepl/wrap-info/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  167  cider.nrepl/wrap-format/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  306  cider.nrepl/wrap-profile/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  426  cider.nrepl/wrap-trace/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:   95  cider.nrepl/wrap-slurp/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             load_file.clj:   81  nrepl.middleware.load-file/wrap-load-file/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  463  cider.nrepl/wrap-version/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  103  cider.nrepl/wrap-apropos/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  111  cider.nrepl/wrap-classpath/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  137  cider.nrepl/wrap-debug/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  163  cider.nrepl/wrap-enlighten/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  473  cider.nrepl/wrap-xref/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  455  cider.nrepl/wrap-undef/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  444  cider.nrepl/wrap-tracker/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  397  cider.nrepl/wrap-stacktrace/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:   83  cider.nrepl/wrap-content-type/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  200  cider.nrepl/wrap-inspect/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                caught.clj:   97  nrepl.middleware.caught/wrap-caught/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 print.clj:  234  nrepl.middleware.print/wrap-print/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
               session.clj:  272  nrepl.middleware.session/session/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                server.clj:   18  nrepl.server/handle*
                server.clj:   15  nrepl.server/handle*
                server.clj:   27  nrepl.server/handle/fn
                  core.clj: 2030  clojure.core/binding-conveyor-fn/fn
                  AFn.java:   18  clojure.lang.AFn/call
           FutureTask.java:  266  java.util.concurrent.FutureTask/run
   ThreadPoolExecutor.java: 1149  java.util.concurrent.ThreadPoolExecutor/runWorker
   ThreadPoolExecutor.java:  624  java.util.concurrent.ThreadPoolExecutor$Worker/run
               Thread.java:  748  java.lang.Thread/run

Most helpful comment

You're welcome!

I've pushed a compatible snapshot as well, as I noticed you're not the only person was got bit by this change. Btw, there's this constant in cider.el that one can always check if they have doubt whether they are using the right cider-nrepl version:

(defconst cider-required-middleware-version "0.25.0-alpha1"
  "The CIDER nREPL version that's known to work properly with CIDER.")

All 8 comments

What's your cider-nrepl version? It seems to me your client and your middleware are out of sync.

I'm using cider-nrepl 0.25.0-SNAPSHOT, here's the command I'm running to start the repl:

clj -A:datomic-pro:dev -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.25.0-SNAPSHOT"}}}' -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]"

The problem will go away when you switch to cider-nrepl 0.25.0-alpha1. I'm cutting releases from time to time to avoid snapshots getting out of sync with the client.

Thanks! - can confirm switching to cider-nrepl 0.25.0-alpha1 does indeed fix the issue for me :+1:
What's the best place for checking for new releases of cider-nrepl pls?

I guess that'd be clojars. I'm surprised you didn't get some warning, though. In CIDER's config alpha1 is the required version, but I guess the version comparison logic thinks snapshot and alpha are close enough.

I guess that'd be clojars. I'm surprised you didn't get some warning, though. In CIDER's config alpha1 is the required version, but I guess the version comparison logic thinks snapshot and alpha are close enough.

I find that I usually do get those warnings (need to update cider-nrepl), thanks again!

You're welcome!

I've pushed a compatible snapshot as well, as I noticed you're not the only person was got bit by this change. Btw, there's this constant in cider.el that one can always check if they have doubt whether they are using the right cider-nrepl version:

(defconst cider-required-middleware-version "0.25.0-alpha1"
  "The CIDER nREPL version that's known to work properly with CIDER.")

same here - > fixed by removing the dependency from ~/.lein/profile.clj

Was this page helpful?
0 / 5 - 0 ratings