Cider: Shadow CLJS Error

Created on 18 Sep 2019  路  11Comments  路  Source: clojure-emacs/cider

I setup a shadow-cljs project with deps.edn. After connect via cider-jack-in-cljs and working in the namespace, frequently a Cider error is thrown.


  Show: Project-Only All 
  Hide: Clojure Java REPL Tooling Duplicates  (44 frames hidden)

  This is an unexpected CIDER middleware error.
  Please submit a bug report via `M-x cider-report-bug`.

  If these stacktraces are occurring frequently, consider using the
  button(s) below to suppress these types of errors for the duration of
  your current CIDER session. The stacktrace buffer will still be
  generated, but it will "pop under" your current buffer instead of
  "popping over". The button toggles this behavior.

 Promote complete-error 

1. Unhandled java.lang.NullPointerException
   (No message)

    complete_for_nrepl.clj:  119  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/node-env?
    complete_for_nrepl.clj:  106  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/node-env?
    complete_for_nrepl.clj:  126  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/ensure-suitable-cljs-is-loaded/fn
                  AFn.java:  152  clojure.lang.AFn/applyToHelper
                  AFn.java:  144  clojure.lang.AFn/applyTo
                  core.clj:  665  clojure.core/apply
                  core.clj: 1973  clojure.core/with-bindings*
                  core.clj: 1973  clojure.core/with-bindings*
               RestFn.java:  425  clojure.lang.RestFn/invoke
    complete_for_nrepl.clj:  123  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/ensure-suitable-cljs-is-loaded
    complete_for_nrepl.clj:  121  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/ensure-suitable-cljs-is-loaded
    complete_for_nrepl.clj:  181  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/handle-completion-msg!
    complete_for_nrepl.clj:  164  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/handle-completion-msg!
    complete_for_nrepl.clj:  202  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-default-cljs-env
    complete_for_nrepl.clj:  195  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-default-cljs-env
    complete_for_nrepl.clj:  232  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-nrepl
    complete_for_nrepl.clj:  227  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-nrepl
              complete.clj:   15  cider.nrepl.middleware.complete/cljs-complete
              complete.clj:   11  cider.nrepl.middleware.complete/cljs-complete
              complete.clj:   23  cider.nrepl.middleware.complete/complete
              complete.clj:   17  cider.nrepl.middleware.complete/complete
              complete.clj:   34  cider.nrepl.middleware.complete/complete-reply
              complete.clj:   33  cider.nrepl.middleware.complete/complete-reply
        error_handling.clj:  160  cider.nrepl.middleware.util.error-handling/eval33197/fn
              MultiFn.java:  234  clojure.lang.MultiFn/invoke
              complete.clj:   46  cider.nrepl.middleware.complete/handle-complete
              complete.clj:   45  cider.nrepl.middleware.complete/handle-complete
                  Var.java:  388  clojure.lang.Var/invoke
                 nrepl.clj:  116  cider.nrepl/wrap-complete/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  256  cider.nrepl/wrap-ns/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
     fake_piggieback04.clj:   30  cider.piggieback/wrap-cljs-repl/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  437  cider.nrepl/wrap-tracker/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  290  cider.nrepl/wrap-out/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  110  cider.nrepl/wrap-classpath/fn
            middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
                 nrepl.clj:  199  cider.nrepl/wrap-inspect/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
                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
               nrepl04.clj:  150  shadow.cljs.devtools.server.nrepl04/start/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

You'll find the repo here: https://github.com/Ninerian/shadow-cljs-quickstart

Cider version CIDER 0.22.1snapshot (package: 20190911.1917)
Emacs: GNU Emacs 26.2 (build 1, x86_64-apple-darwin18.2.0, Carbon Version 158 AppKit 1671.2) of 2019-04-14

bug stale

Most helpful comment

All 11 comments

//cc @rksm

Unfortunately I was unable to reproduce but wanted to leave a heads up that a dep needs to be added to shadow-cljs-quickstart in order for it to build correctly.

The missing dep is: lilactown/hx {:mvn/version "0.5.3"}

;; CIDER 0.22.1snapshot (package: 20190921.858), nREPL 0.6.0
;; Clojure 1.10.1, Java 1.8.0_222
;; GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.8) of 2019-04-30

I'm also seeing the same error for Shadow cljs repl when it tries to perform autocompletion. Unfortunately I can't remember at which point this broke but I believe it used to work on Cider 0.20.0.

Stacktrace:

`1. Unhandled java.lang.NullPointerException
(No message)

complete_for_nrepl.clj:  119  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/node-env?
complete_for_nrepl.clj:  106  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/node-env?
complete_for_nrepl.clj:  126  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/ensure-suitable-cljs-is-loaded/fn
              AFn.java:  152  clojure.lang.AFn/applyToHelper
              AFn.java:  144  clojure.lang.AFn/applyTo
              core.clj:  665  clojure.core/apply
              core.clj: 1973  clojure.core/with-bindings*
              core.clj: 1973  clojure.core/with-bindings*
           RestFn.java:  425  clojure.lang.RestFn/invoke
complete_for_nrepl.clj:  123  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/ensure-suitable-cljs-is-loaded
complete_for_nrepl.clj:  121  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/ensure-suitable-cljs-is-loaded
complete_for_nrepl.clj:  181  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/handle-completion-msg!
complete_for_nrepl.clj:  164  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/handle-completion-msg!
complete_for_nrepl.clj:  202  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-default-cljs-env
complete_for_nrepl.clj:  195  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-default-cljs-env
complete_for_nrepl.clj:  232  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-nrepl
complete_for_nrepl.clj:  227  cider.nrepl.inlined-deps.suitable.v0v2v14.suitable.complete-for-nrepl/complete-for-nrepl
          complete.clj:   15  cider.nrepl.middleware.complete/cljs-complete
          complete.clj:   11  cider.nrepl.middleware.complete/cljs-complete
          complete.clj:   23  cider.nrepl.middleware.complete/complete
          complete.clj:   17  cider.nrepl.middleware.complete/complete
          complete.clj:   34  cider.nrepl.middleware.complete/complete-reply
          complete.clj:   33  cider.nrepl.middleware.complete/complete-reply
    error_handling.clj:  160  cider.nrepl.middleware.util.error-handling/eval22171/fn
          MultiFn.java:  234  clojure.lang.MultiFn/invoke
          complete.clj:   46  cider.nrepl.middleware.complete/handle-complete
          complete.clj:   45  cider.nrepl.middleware.complete/handle-complete
              Var.java:  388  clojure.lang.Var/invoke
             nrepl.clj:  116  cider.nrepl/wrap-complete/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  390  cider.nrepl/wrap-stacktrace/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  448  cider.nrepl/wrap-undef/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
           nrepl04.clj:  235  shadow.cljs.devtools.server.nrepl04/cljs-load-file/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  336  cider.nrepl/wrap-refresh/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:   94  cider.nrepl/wrap-slurp/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  243  cider.nrepl/wrap-macroexpand/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
           session.clj:  326  nrepl.middleware.session/add-stdin/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  299  cider.nrepl/wrap-profile/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
           nrepl04.clj:  288  shadow.cljs.devtools.server.nrepl04/shadow-init/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  256  cider.nrepl/wrap-ns/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
 fake_piggieback04.clj:   55  cider.piggieback/wrap-cljs-repl/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  199  cider.nrepl/wrap-inspect/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  437  cider.nrepl/wrap-tracker/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
             nrepl.clj:  290  cider.nrepl/wrap-out/fn
        middleware.clj:   16  nrepl.middleware/wrap-conj-descriptor/fn
           nrepl04.clj:  196  shadow.cljs.devtools.server.nrepl04/cljs-select/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
            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
           nrepl04.clj:  386  shadow.cljs.devtools.server.nrepl04/start/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:  264  java.util.concurrent.FutureTask/run

ThreadPoolExecutor.java: 1135 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 635 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 844 java.lang.Thread/run
`

CIDER 0.23.0snapshot (package: 20190923.739), nREPL 0.6.0
Clojure 1.10.0, Java 10.0.1
GNU Emacs 26.3 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Version 10.10.5 (Build 14F2511))
of 2019-09-02

Thanks @bbatsov !

Thank you @bbatsov

2717 has been merged in master, so I guess we can close this after someone tests the new defcustom.

@bbatsov many thanks for keeping us posted!
I can confirm that cljs completion with Shadow works again if I set cider-enhanced-cljs-completion-p to nil now.

My current setup apart from upgrading Cider hasn't been changed but here it is for our reference:

Cider:
CIDER 0.23.0snapshot (package: 20191003.537), nREPL 0.6.0

Clojure
Clojure 1.10.0, Java 10.0.1

Emacs
GNU Emacs 26.2 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Version 10.10.5 (Build 14F2511)) of 2019-04-12

@louixs @Ninerian I was not able to reproduce any completion issues with suitable / shadow-cljs. Completion works well for me. Could you please share what code snippet (and cursor position) I can reproduce those issues with? Thanks!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contribution and understanding!

This issues been automatically closed due to lack of activity. Feel free to re-open it if you ever come back to it.

Was this page helpful?
0 / 5 - 0 ratings