Fork me on GitHub
#cursive
<
2022-01-06
>
Mateusz Mazurczak13:01:18

Hi, I'm using intellij on ubuntu. I can't see any dependencies because I get an error. In clojure deps -> projectname -> /my/project/path/deps.edn: status code: 401, reason phrase: Unauthorized (401) I changed permisions for both intellij and my project to give full access (ls -l), but it shows the same error Any ideas how to solve it?

Mateusz Mazurczak17:01:46

I was missing .m2/settings.xml for datomic

Alex Miller (Clojure team)13:01:53

Does it work outside cursive?

Alex Miller (Clojure team)14:01:22

That's an http code, so I'd guess it's access to a repository

Mateusz Mazurczak14:01:37

Yeah I can start the project and everything. It was also working previously and not showing this error. I just fresh installed due to my laptop issues.

folcon15:01:42

I've started seeing this error in the Run panel when running my REPL run configuration, which is really unhelpful for debugging what's wrong with it. Any ideas what's happening / how I could debug this?

Suppressed exit

cfleming20:01:52

That error is coming from Leiningen. What that usually means is some code in lein is trying to exit the process, and Cursive is preventing it so that it doesn’t dump the whole Cursive process. The usual culprit is a lein plugin. If you look in your log (Help | Show log in Finder/Explorer), you should see a line somewhere: “Exit called in Leiningen” which will give you a stacktrace to where it happened.

cfleming20:01:07

That will hopefully help to diagnose the problem.

1
folcon21:01:57

Thanks for the quick response @U0567Q30W, sorry I took a while to get back to you, managed to find it, now I need to work out why it's throwing a null exception instead of the expected compilation error...

#cursive.shim.IndicatorBridge - Exit called in Leiningen:
java.lang.RuntimeException: null
 at cursive.leiningen.project$add_standard_hooks_BANG_$fn__2318$fn__2319.invoke (project.clj:515)
    cursive.leiningen.project$add_standard_hooks_BANG_$fn__2318.doInvoke (project.clj:515)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$compose_hooks$fn__1838.doInvoke (hooke.clj:43)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:665)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__1843$fn__1844.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    leiningen.javac$run_javac_subprocess.invokeStatic (javac.clj:133)
    leiningen.javac$run_javac_subprocess.invoke (javac.clj:115)
    leiningen.javac$javac.invokeStatic (javac.clj:147)
    leiningen.javac$javac.doInvoke (javac.clj:136)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.core.main$partial_task$fn__7356.doInvoke (main.clj:284)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:665)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__1843$fn__1844.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    leiningen.core.eval$run_prep_tasks.invokeStatic (eval.clj:51)
    leiningen.core.eval$run_prep_tasks.invoke (eval.clj:43)
    leiningen.core.eval$prep.invokeStatic (eval.clj:86)
    leiningen.core.eval$prep.invoke (eval.clj:73)
    cursive.leiningen.task$prep_hook$fn__2418.invoke (task.clj:41)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$compose_hooks$fn__1838.doInvoke (hooke.clj:43)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:665)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__1843$fn__1844.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    leiningen.core.eval$eval_in_project.invokeStatic (eval.clj:364)
    leiningen.core.eval$eval_in_project.invoke (eval.clj:358)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.task$eval_hook$fn__2415.doInvoke (task.clj:30)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$compose_hooks$fn__1838.doInvoke (hooke.clj:43)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:665)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__1843$fn__1844.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.repl$repl.invokeStatic (repl.clj:393)
    leiningen.repl$repl.doInvoke (repl.clj:319)
    clojure.lang.RestFn.invoke (RestFn.java:425)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.core.main$partial_task$fn__7356.doInvoke (main.clj:284)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:665)
    clojure.core$apply.invoke (core.clj:660)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__1843$fn__1844.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:343)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
    cursive.leiningen.task$task_details$fn__2441.invoke (task.clj:79)
    cursive.leiningen.task$task_details.invokeStatic (task.clj:74)
    cursive.leiningen.task$task_details.invoke (task.clj:43)
    clojure.lang.Var.invoke (Var.java:388)
    org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke (ClojureRuntimeShimImpl.java:119)
    org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke (ClojureRuntimeShimImpl.java:112)
    cursive.shim.ShimBootstrap$Shim.apply (ShimBootstrap.java:53)
    cursive.repl.runner.LocalConfiguration$createLeinParameters$ret$1.invoke (ReplRunConfigurations.kt:463)
    cursive.repl.runner.LocalConfiguration$createLeinParameters$ret$1.invoke (ReplRunConfigurations.kt:462)
    cursive.shim.ShimProvider.withShim (Shim.kt:117)
    cursive.repl.runner.LocalConfiguration.createLeinParameters (ReplRunConfigurations.kt:462)
    cursive.repl.runner.LocalConfiguration.access$createLeinParameters (ReplRunConfigurations.kt:393)
    cursive.repl.runner.LocalConfiguration$getRunProfileState$1.createDeferredParameters (ReplRunConfigurations.kt:432)
    cursive.runner.DeferredCommandLineState.cacheDeferredParameters (Deferred.kt:72)
    cursive.runner.AbstractDeferredRunner$execute$1.run (Deferred.kt:104)
    com.intellij.openapi.progress.impl.CoreProgressManager.startTask (CoreProgressManager.java:450)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask (ProgressManagerImpl.java:117)
    com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5 (CoreProgressManager.java:510)
    com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3 (ProgressRunner.java:243)
    com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2 (CoreProgressManager.java:183)
    com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun (CoreProgressManager.java:705)
    com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress (CoreProgressManager.java:647)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress (ProgressManagerImpl.java:63)
    com.intellij.openapi.progress.impl.CoreProgressManager.runProcess (CoreProgressManager.java:170)
    com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4 (ProgressRunner.java:243)
    java.util.concurrent.CompletableFuture$AsyncSupply.run (CompletableFuture.java:1700)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
    java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run (Executors.java:668)
    java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run (Executors.java:665)
    java.security.AccessController.doPrivileged (AccessController.java:-2)
    java.util.concurrent.Executors$PrivilegedThreadFactory$1.run (Executors.java:665)
    java.lang.Thread.run (Thread.java:829)

cfleming01:01:49

Thanks for that - the problem is in leiningen.javac/run-javac-subprocess, which looks like this: https://github.com/technomancy/leiningen/blob/b257a5ac02af51e1b89332c667e57c9e01f98d7e/src/leiningen/javac.clj#L115-L134. As you can see, it’s some exception executing javac which calls main/exit. Do you see any error output anywhere which might help? There’s a comment above that function discussing how the output is handled, but I must admit I don’t understand it. I think it’s saying that the output will just go to the standard process output, but since it looks like it runs javac in a separate process I don’t know where that will end up.

folcon15:01:19

Ok, good to know.

Josh Horwitz18:01:32

Anyone have any tips or guides on using Cursive with ideavim plug in? Or an ideavimrc they would like to share, having a tough time making the workflow as seamless as I think it can be

cfleming20:01:16

It’s also been discussed on the mailing list from time to time: https://groups.google.com/g/cursive/search?q=ideavim

dvingo23:01:46

If you are trying to solve a mystery of why some keybindings aren't working knowing about Preferences -> Editor -> Vim can help a ton. Certain bindings you might want the IDE to interpret vs the IdeaVim plugin.