Fork me on GitHub

997 stars! Can you push it above 1K? ❤️ Here’s the repo, for your convenience:


Have been a happy user of calva and my star wasn’t there, shame on me 😱


Thanks! 🙏


999 stars now. 😃

📈 1

Did it 😁


And the 1000th star! Thanks @bertofer and @henrikheine and you 997. Please don’t stop starring. 😃

catjam 1

Thanks for creating calva 😊gratitude

gratitude 1

Please like and subscribe! 🙏 ❤️

👍 1
Tomas Brejla09:10:43

Wow, that's ... just... plain witchcraft & sorcery! :thumbsup: 👏 Btw is it possible to use dark theme by default? (I believe you can switch to it once you have that bright vscode up and running, right?) Regarding the video itself.. Is there any way to turn off the "suggested videos" overlays that youtube starts showing at 1m22s (ie 20 seconds before the end of video)? Those suggestions keep obstructing the important video content itself.


Oh, I can see if I can move them to the end. It’s called an End Screen so I assumed it would be placed in the end. 😃


There. Thanks for heads-up!


Dark theme. You mean to have VS Code us dark theme by default? I think that should be possible. Not sure. I don’t see my theme choice in setting.json…

Tomas Brejla12:10:26

> There. Thanks for heads-up! Perfect, it's way better now :thumbsup: > VS Code us dark theme by default? yes, if I ever were to use this "cloud setup", I'd definitely want to have VS Code with dark theme by default. Or switch it immediately after the instance "boots up", as the default bright theme really hurts my eyes 😄. But it's not a problem, really.. It's really amazing that it's possible to spin up a full-featured vscode & calva, including "virtual desktop" view. Really nice.

Ryan Jerue12:10:19

Wow, dev is getting truly remote these days! Tiny piece of unsolicited feedback: explain what is going on via a voiceover. In order to see what’s going on, one has to pause and rewind the video often. I know you do this in your other videos, just wanted to express how important it is. :) Looking forward to more content! Folks at work like to joke that I’m so passionate about VSCode/Calva that I must be paid to pitch it to them haha.

❤️ 2

That was our secret, @U01GNU0Q0MB ! 😃


Yeah, the video could use some narration. Thanks for pointing that out!


I'm trying to get started with this

[Fri Oct 29 2021 16:44:18.469]  LOG      An error occurred with client socket: failed to connect to / (port 5001) from /:: (port 38125): connect failed: ENETUNREACH (Network is unreachable)
getting this atm. My phone has internet, do you have any ideas? Is using an emulator easier?


I have totally forgot about this project. How did you find it? 😃


Its’ better to follow the instructions on the Krell project. For now at least.


I seearched for krell / reagent template or sth 😛


I guess my cljsrn SEO level is high. 😃 I should remove that project.


If you haven’t found #cljsrn yet, I can recommend.


Also this That you probably find via the Krell repo wiki, but anyway.


Personally I most often reach for shadow-cljs, so I don’t know very much about Krell.


I see, I'll check it

Richard Gebbia17:10:53

Hi, if I create a brand new app project with lein , add :pedantic? :abort to the project config, and try to start a calva repl, I get the following error:

Possibly confusing dependencies found:
[nrepl "0.8.3"]
[nrepl "0.8.3" :exclusions [org.clojure/clojure]]

Consider using these exclusions:

Aborting due to :pedantic? :abort
I have nothing in my lein profiles. I'm on MacOS 11.6. Might anyone here know how to get around this error (ideally without removing :pedantic? :abort)?


What dependencies do you have in your project.clj?


If you remove :pedantic do you still get that message? Does the repl start okay in that case?

Richard Gebbia18:11:42

First of all, thank you for responding here. Secondly, this is what happens when the only change to a blank project created with lein new app is adding :pedantic? :abort to the project.clj. If it helps, this is my lein version output:

Leiningen 2.9.6 on Java OpenJDK 64-Bit Server VM

👍 1

I’m not sure what :pedantic is used for, but it seems the nrepl version that Calva injects is maybe conflicting with leiningen’s version. If you copy the jack-in command and remove the adding of nrepl, the repl starts successfully. So in my case I changed this:

lein update-in :dependencies conj '[nrepl,"0.8.3"]' -- update-in :plugins conj '[cider/cider-nrepl,"0.26.0"]' -- update-in '[:repl-options,:nrepl-middleware]' conj '["cider.nrepl/cider-middleware"]' -- repl :headless
to this:
lein update-in :plugins conj '[cider/cider-nrepl,"0.26.0"]' -- update-in '[:repl-options,:nrepl-middleware]' conj '["cider.nrepl/cider-middleware"]' -- repl :headless


I think that extension is what Calva was created from ^ (FYI). 😃


You can use the command “Copy Jack-in Command to Clipboard” to copy the jack-in command used for your OS and project, and then remove the part that adds nrepl and run it in a terminal. Once the repl starts you can use Calva’s command to connect to a running repl.


As for what exactly is going on here, I’m unsure, but those issues may shed some light for you. (I haven’t read through them completely.)

Richard Gebbia19:11:42

Thanks again for investigating this!

Richard Gebbia19:11:18

:pedantic? :abort is an option that tells leiningen to immediately quit if your dependencies conflict with one another, which is useful in a big project with lots of potentially conflicting dependencies. Typically, fixing this requires that you simply exclude transitive dependencies that you don't want, forcing your project to use only one version of any dependency. It looks like the issue is that calva injects both nrepl 0.8.3 and cider-nrepl 0.26.0 into the project, and cider-nrepl requires nrepl 0.8.3 but excludes [org.clojure/clojure] , which conflicts with the earlier requirement that all of nrepl 0.8.3 be pulled in, including whatever version of org.clojure/clojure it's using. I don't see a clean way to make this happen with calva's current configuration settings, though I'd love to be proven wrong on that. Ideally, I'd need a way to directly configure the command-line invocation that calva generates to create a repl on jack-in. Is there a way to do this?


You’re welcome! Thanks for educating me about :pedantic? :abort , and for figuring out the conflict. I’m not sure if jack-in is currently customizable to the extent that you can add an exclusion for a dep in the command it runs. As a workaround, you could modify the jack-in command to add the exclusion, and start the repl with the modified command, then connect Calva to the running repl. That’s a bit of a manual/verbose approach though. You could probably also add the deps from the jack-in command to your project.clj, including the exclusion, and then start your repl with a less verbose command, then connect.


@U0ETXRFEW Do you have any ideas about making jack-in work in this case?


Sounds like something we should bring to the #nrepl channel.

Richard Gebbia17:11:59

Okay, actually, I've discovered that the nrepl "0.8.3" :exclusions [org.clojure/clojure] dep line is coming from leiningen itself. Perhaps calva shouldn't inject an nrepl dependency for a leiningen project type?

Richard Gebbia17:11:42

On a completely new lein new app project, if I run lein deps :tree, this is the output:

$ lein deps :tree
 [clojure-complete "0.2.5" :exclusions [[org.clojure/clojure]]]
 [nrepl "0.8.3" :exclusions [[org.clojure/clojure]]]
 [org.clojure/clojure "1.10.1"]
   [org.clojure/core.specs.alpha "0.2.44"]
   [org.clojure/spec.alpha "0.2.176"]

Richard Gebbia17:11:43

Sorry for being such a pain in the butt about this btw 😅


You aren’t being a pain 😄. That’s interesting. I thought about having Calva add that exclusion to the jack-on command, but it seems that doesn’t help:

% lein update-in :dependencies conj '[nrepl,"0.8.3" :exclusions [[org.clojure/clojure]]]' -- update-in :plugins conj '[cider/cider-nrepl,"0.26.0"]' -- update-in '[:repl-options,:nrepl-middleware]' conj '["cider.nrepl/cider-middleware"]' -- repl :headless
Possibly confusing dependencies found:
[nrepl "0.8.3" :exclusions [org.clojure/clojure]]
[nrepl "0.8.3" :exclusions [org.clojure/clojure]]

Consider using these exclusions:

Aborting due to :pedantic? :abort


I’m not sure if there’s anything we’d want to change in Calva to make jack-in work in this situation since it seems to be an uncommon case, and there is a workaround. @U0ETXRFEW What are your thoughts?