Fork me on GitHub

Good news. I have just found where one of those blocking bugs; Calva crashing on re-jack-in, happens. I’ll have it nailed soon. Now must make breakfast for four hungry children (and equally hungry self and wife). 😃

🙂 4

I'm quite hungry too


What you got in? 😛


If you're in Stockholm you might make it. 😀


Friends! Here’s a New Calva 2 build for you to help test. The most important changes are: 1. Fixes crash bug when jacking in more than once in the same session. 2. Jack-in handles Figwheel Main projects. (At least some projects, same as with the rest of jack-in, there is work left to be done.) 3. There’s now a command for evaluating to a comment. Thanks @vcastro70! 4. The “Calva key” has changed to ctrl+alt+c. Because it makes much more sense. I hope it will be easier for you, than it has been for me, to get used to not typing ctrl+alt+v all the time. To that end, I have added an info toast for when you slip back into old habits.


So, the path to release has one roadblock less. As I mentioned yesterday there are quite a few rough edges with both jack-in and the repl window, that I’d like to fix before release, but I also think we are pretty close to an MLP (not My Little Pony, it’s Minimum Lovable Product) now, and we need to figure out which are the real blockers. Right now I have several weeks behind me of chasing the same blocker and can only think about that one. So this is a call for help. Please, put that jack-in to some tests, file issues you find on Github and let me know how you would triage it. Give the repl window the same treatment. Thanks in advance! ❤️

bananadance 4

As for the blocker blocking my sight right now, it is this one: The current state of affairs there is that Calva somehow makes nrepl start sending some weird responses and also sometimes throw errors. I think there are issues here that should be fixed both in nrepl and in Calva, but for any release of Calva 2 the important thing is that the repl window should stay working after these things have happened. If someone with experience of Javascript/TypeScript async calls and Promises has some time, I’d appreciate help with this. I fail to figure out where the hang happens.


@pez, how are we coordinating calva/dev against repl-interactor/master. Should we be building the latter locally as well, or how do you keep them in sync for development


So, mechanics first. I have cloned out calva and repl-indicator repos as sibling directories. And have linked the repl-indicator from the calva dir like so:

npm link @calva/repl-interactor ../repl-interactor


To distribute a calva vsix that depends on a new version of repl-indicator, I will need to publish that version to npm. So right now, if you would have changed repl-indicator you would first file a PR there and then I would merge that in, build a new repl-indicator and publish.


Does that answer your question, @hoppy?


I was considering in-sourcing the repl-indicator into calva, but then… Well, it really makes sense as its own project. Maybe there is a better way than via npm to keep the sync? If someone sees it, I’d like to know.


I'd avoid in-sourcing as long as you can - if you ever plan on it standing alone. Yes it answers the question, I was just trying to understand how you lived with it and emulate it.


I’m really interested in the standalone REPL. 😍 calva is doing some really cool work


Let’s leave it standalone, then. 😍


It could actually become more than a standalone REPL. At its core it is a Clojure code editor. With the right maintainer (which is not me) it could power many things.


Depending on how you feel about it, you could use git sub modules


Some people hate them (me) for reasons (not good ones) but I think they fit this use case


no feery the sub-module.... they are your friend


Subtree > submodule


I think that if it should be kept standalone, then it makes sense that it is a npm module and then we maybe better dogfood it as such.


I’ve seen submodules used and be very helpful in a super large project, so I don’t have something particular against them.


For me, subtrees are like submodules with less pain.


Not familiar with subtrees. Got a link where I can learn something about them?


I celebrated fixing that crashing bug with allowing myself to not work on the stdout bug for a day. Instead I altered the jack-in process some. Now it asks for cljs project type instead of figuring it out, because that sometimes took a while and caused confusion. Also now both the clj and cljs repl windows open on their respective successful connect.


^ This changes quite a lot how the jack-in and connection works. People who help test it gain Karma. ^


Is there some way a custom cljs repl can be configured? With a file maybe? I'd like to make calva and edge very smooth.


Tell me more about configuring a cljs repl.


For cider, I create a local .el file which tells cider what function to run for this project in order to connect to the repl