spacemacs

Spacemacs docs: http://develop.spacemacs.org/doc/DOCUMENTATION.html http://develop.spacemacs.org/layers/+lang/clojure/README.html https://practicalli.github.io/spacemacs/
practicalli-john 2020-07-12T05:26:37.096800Z

In the practicalli/spacemacs.d configuration you can comment the (spacemacs/toggle-evil-safe-lisp-structural-editing-on-register-hooks) if using holy mode only. The configuration is optimised for Evil mode and not tested at all in holy mode, so suggest just using it as an example and just copy anything that seems useful. Some of the layer variables may be the only thing to copy. There may be some general package tweaks in dotspacemacs/user-config. Additional keybinding will not likely be useful in holy mode.

2020-07-12T13:43:27.102600Z

I am trying to get a shadow-cljs repl connection working in a tools cli project. I have tried using cider-jack-in-cljs -> shadow -> :main And when I do that I get:

1. Unhandled clojure.lang.ExceptionInfo
   missing instance
   {}
               runtime.clj:   11  shadow.cljs.devtools.server.runtime/get-instance!
               runtime.clj:    8  shadow.cljs.devtools.server.runtime/get-instance!
                   api.clj:  122  shadow.cljs.devtools.api/worker-running?
                   api.clj:  120  shadow.cljs.devtools.api/worker-running?
                   api.clj:  206  shadow.cljs.devtools.api/watch
                   api.clj:  200  shadow.cljs.devtools.api/watch
                   api.clj:  204  shadow.cljs.devtools.api/watch
                   api.clj:  200  shadow.cljs.devtools.api/watch
                      REPL:    1  user/eval66677
My understanding is that jack-in is supposed to start the shadow worker process, so this is confusing. I have also tried starting the shadow-cljs server on the command line and then using cider-connect-cljs specifying: localhost -> 9000 (shadow has an nREPL server there: shadow-cljs - nREPL server started on port 9000) I see a message "connection established" I then open a cljs file and issue: cider-switch-to-repl-buffer and I get "No cljs REPLs in current session.." Anyone have any pointers for where to go from here?

2020-07-12T13:53:30.103600Z

do I have to add piggieback and cider-nrepl to my deps.edn file? It's not clear from the docs if this is required or if cider will inject them for you

2020-07-19T19:54:33.126Z

@danvingo I posted about this is in reddit. With a dir locals configured to use shadow. And shadow pointing at deps. You can run cider Jack in and everything gets injected and shadow starts a server. There is as warning about refactor nrepl though, but that's something you can choose to ignore. It even works... I posted a more complex alternative to.

2020-07-20T13:18:20.126300Z

Thanks for the info - I managed to get a repl working with shadow and clj - things work if I connect to the shadow repl first and then jack-in to a clj repl. But they don't work if I start the clj repl first.

2020-07-20T14:33:11.126500Z

@danvingo you should only be running cider-jack-in-cljs which starts an nrepl server and connects the editor client to it. OR starting an nrepl server some other way (shadow watch app) and using cider-connect-cljs to connect to it.

2020-07-20T15:12:28.126700Z

hey - so I cider-connect-cljs to a shadow watch process - but I also have a clojure backend which is a separate nrepl process

2020-07-20T15:13:08.126900Z

so cljs files should send forms to the shadow managed nrepl and clj files should send forms to the clj nrepl process

2020-07-20T15:20:54.127100Z

In the case when you have two seperate applications then yes, you want two nrepl servers.

practicalli-john 2020-07-12T14:04:49.103700Z

It's been mentioned in the #cider channel previously that running cider-jack-in-cljs should work, assuming shadow-cljs is configured correctly. Suggest asking in the #shadow-cljs channel as quite a few people seem to struggle getting this working (I haven't tried)

2020-07-12T14:09:44.103900Z

i think i got it! - I added the middleware deps to deps.edn seems to work now..

2020-07-12T14:15:16.104100Z

err, nvm almost there I 'll ask in the other channels

practicalli-john 2020-07-12T14:16:39.104300Z

Did you add cider-nrepl ? https://shadow-cljs.github.io/docs/UsersGuide.html#user-config

2020-07-12T14:18:02.104500Z

so things work if I don't start a clojure repl first - I can connect to a shadow cljs repl but when I start a repl via clojure first I get prompted with that "use existing session?" msg and cider also doesn't show the shadow-cljs nrepl port (which it does if I don't start the clojure repl)

2020-07-12T14:19:01.104700Z

I did add cider-nrepl and that got things working with shadow

murtaza52 2020-07-12T14:33:00.106200Z

When I try starting nrepl on one of the clj projects, I get the following error -

error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: Downloading: org/openjfx/javafx-base/13/javafx-base-13-linux.jar from datomic-cloud
(I am on manjaro linux) I also tried installing openjfx, however the problem is still there.

murtaza52 2020-07-15T20:25:59.122700Z

@jr0cket thanks for the info

practicalli-john 2020-07-12T14:42:23.106300Z

Looks like you are running Java 13, maybe some of the libraries you are using are not happy on that version. Try Java 11 or Java 8.

murtaza52 2020-07-12T15:46:47.106500Z

@jr0cket thanks, installed java 8, and its working like a charm !

murtaza52 2020-07-12T15:47:29.106700Z

just for my understanding why would it give me java fx error with java 14 ?

Richard 2020-07-12T18:33:33.108800Z

I updated spacemacs today (developer branch) and now I have some dots marking the indentation of my headings. Does anyone know how to remove them or replace with spaces, please? I'd still like it to indent.

practicalli-john 2020-07-12T18:49:23.111Z

@richard The org layer changes to org-superstar package, there seems to be a setting to change the leading stars to space, which says it will effectively hide the leading starts https://github.com/integral-dw/org-superstar-mode#hide-leading-stars

👍 1
practicalli-john 2020-07-12T19:13:19.111300Z

In a nutshell, Java module system was introduced in Java 9. This changed the way Java was structured internally and not everything in the JVM world has caught up with such a significant change. Somewhere between 8 and 11 the Java FX library was split off, so is no longer part of the base Java install. For example, if you are using Cognitect REBL tool, you need to explicitly specify Java FX libraries, if using Java * then the Java FX libraries are built in.

practicalli-john 2020-07-12T19:16:31.111500Z

Java 11 is the current long term support version of Java, so I would recommend using either 8 or 11. Using Java 14 is only valuable if you want to try out new features in Java or that version of the JVM. The Java roadmap has more details if you are interested https://www.oracle.com/java/technologies/java-se-support-roadmap.html

Richard 2020-07-12T20:01:01.112100Z

Nice! Worked a treat, John. PS. I always check your https://practicalli.github.io/spacemacs/install-spacemacs/update.html tutorial before I ever do an update. Thank you.

👍 1