clojure-emacs / cider-nrepl

A collection of nREPL middleware to enhance Clojure editors with common functionality like definition lookup, code completion, etc.
https://docs.cider.mx/cider-nrepl
677 stars 176 forks source link

cider apparently has a dependency on com.billpiel/sayid #810

Closed johanatan closed 1 year ago

johanatan commented 1 year ago

but does not actually install it.

is there an assumption that the user would have installed it as a plugin at the global level? or something else?

vemv commented 1 year ago

Grepping for sayid brings no code hits in our cider or cider-nrepl repos.

Feel free to share the specific problem that you are experiencing. Stacktrace or any other context appreciated.

johanatan commented 1 year ago

cider-jack-in-clj produces the following output:

[nREPL] Starting server via /usr/local/bin/clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version "1.0.0"} cider/cider-nrepl {:mvn/version "0.30.0"} refactor-nrepl/refactor-nrepl {:mvn/version "3.9.0"}} :aliases {:cider/nrepl {:main-opts ["-m" "nrepl.cmdline" "--middleware" "[com.billpiel.sayid.nrepl-middleware/wrap-sayid,refactor-nrepl.middleware/wrap-refactor,cider.nrepl/cider-middleware]"]}}}' -M:cider/nrepl
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: Exception in thread "main" java.io.FileNotFoundException: Could not locate com/billpiel/sayid/nrepl_middleware__init.class or com/billpiel/sayid/nrepl_middleware.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.
    at clojure.lang.RT.load(RT.java:463)
    at clojure.lang.RT.load(RT.java:426)
    at clojure.core$load$fn__6548.invoke(core.clj:6046)
    at clojure.core$load.invokeStatic(core.clj:6045)
    at clojure.core$load.doInvoke(core.clj:6029)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5848)
    at clojure.core$load_one.invoke(core.clj:5843)
    at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
    at clojure.core$load_lib.invokeStatic(core.clj:5887)
    at clojure.core$load_lib.doInvoke(core.clj:5868)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5925)
    at clojure.core$load_libs.doInvoke(core.clj:5909)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5947)
    at clojure.core$require.doInvoke(core.clj:5947)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at nrepl.cmdline$require_and_resolve.invokeStatic(cmdline.clj:220)
    at nrepl.cmdline$require_and_resolve.invoke(cmdline.clj:211)
    at nrepl.cmdline$fn__2109.invokeStatic(cmdline.clj:225)
    at nrepl.cmdline$fn__2109.invoke(cmdline.clj:225)
    at clojure.core$map$fn__5583$fn__5584.invoke(core.clj:2734)
    at clojure.core$map$fn__5583$fn__5584.invoke(core.clj:2734)
    at clojure.lang.PersistentVector.reduce(PersistentVector.java:341)
    at clojure.core$transduce.invokeStatic(core.clj:6803)
    at clojure.core$into.invokeStatic(core.clj:6819)
    at clojure.core$into.invoke(core.clj:6807)
    at nrepl.cmdline$__GT_mw_list.invokeStatic(cmdline.clj:252)
    at nrepl.cmdline$__GT_mw_list.invoke(cmdline.clj:250)
    at nrepl.cmdline$build_handler.invokeStatic(cmdline.clj:261)
    at nrepl.cmdline$build_handler.invoke(cmdline.clj:254)
    at nrepl.cmdline$options__GT_handler.invokeStatic(cmdline.clj:330)
    at nrepl.cmdline$options__GT_handler.invoke(cmdline.clj:321)
    at nrepl.cmdline$server_opts.invokeStatic(cmdline.clj:380)
    at nrepl.cmdline$server_opts.invoke(cmdline.clj:367)
    at nrepl.cmdline$dispatch_commands.invokeStatic(cmdline.clj:480)
    at nrepl.cmdline$dispatch_commands.invoke(cmdline.clj:473)
    at nrepl.cmdline$_main.invokeStatic(cmdline.clj:496)
    at nrepl.cmdline$_main.doInvoke(cmdline.clj:491)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:702)
    at clojure.core$apply.invokeStatic(core.clj:657)
    at clojure.main$main_opt.invokeStatic(main.clj:317)
    at clojure.main$main_opt.invoke(main.clj:313)
    at clojure.main$main.invokeStatic(main.clj:424)
    at clojure.main$main.doInvoke(main.clj:387)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:702)
    at clojure.main.main(main.java:37)
 ("exited abnormally with code 1")

the deps.edn is:

{:paths ["src" "resources"]
 :extra-paths ["resources"]
 :aliases {:nREPL {:extra-deps {nrepl/nrepl {:mvn/version "1.0.0"}}}}
 :deps
 {clj-time/clj-time {:mvn/version "0.15.0"}
  com.rpl/specter {:mvn/version "1.1.2"}
  aleph/aleph {:mvn/version "0.4.6"}
  criterium/criterium {:mvn/version "0.4.6"}
  org.clojure/clojure {:mvn/version "1.9.0"}
  com.datomic/datomic-pro {:mvn/version "0.9.5786"}
  org.clojure/data.json {:mvn/version "0.2.6"}
  com.cognitect/transit-java #:mvn{:version "0.8.311"}
  org.msgpack/msgpack #:mvn{:version "0.6.10"},
  com.cognitect/transit-clj #:mvn{:version "0.8.285"}
  com.cognitect/s3-creds #:mvn{:version "0.1.22"}
  com.amazonaws/aws-java-sdk-kms #:mvn{:version "1.11.349"}
  com.amazonaws/aws-java-sdk-s3 #:mvn{:version "1.11.349"}
  com.amazonaws/aws-java-sdk-dynamodb #:mvn{:version "1.11.349"}
  com.taoensso/timbre #:mvn{:version "6.2.2"}
  org.clojure/tools.deps.alpha {:mvn/version "0.6.488"}
  cider/cider-nrepl {:mvn/version "0.37.0"}
  amazonica/amazonica #:mvn{:version "0.3.139"}}
 :mvn/repos
 {"my.datomic.com" {:url "https://my.datomic.com/repo"}}}
bbatsov commented 1 year ago

There's a separate middleware for sayid - cider-nrepl doesn't use it directly and doesn't have a dependency on it. See https://github.com/clojure-emacs/sayid/blob/master/src/com/billpiel/sayid/nrepl_middleware.clj

bbatsov commented 1 year ago

From you output:

"--middleware" "[com.billpiel.sayid.nrepl-middleware/wrap-sayid,refactor-nrepl.middleware/wrap-refactor,cider.nrepl/cider-middleware]"]}}}' 

Seems you have the sayid Emacs package installed and enabled.

johanatan commented 1 year ago

But how or why is it involved here? I didn't ask for "sayid" as far as I know.

vemv commented 1 year ago

I'd suggest grepping for sayid within ~/.emacs.d

johanatan commented 1 year ago

Ok, thank you!

johanatan commented 1 year ago

It ended up being this in .spacemacs user-config:

    dotspacemacs-configuration-layers
    '(...
      (clojure :variables
               clojure-enable-sayid t
               ...)
      )

I had to disable it as even explicitly calling the sayid setup func as mentioned in its README did not work.