Fork me on GitHub
Caleb Figgers10:07:24

I just spent a few hours yesterday hacking on Calva (speaking as a total newbie to VS Code extensions and, nearly as much, a newbie to TypeScript as a language). I wanted to say a very sincere Thank You to @pez and the whole team for all the work you're doing and have done! I have an all-new, first-hand appreciation for the scope of this project and how much effort has gone into making all its pieces come together into a happy whole.

❤️ 3
Caleb Figgers10:07:27

Thank you, also, for the SUPER helpful guide! You've made tinkering with the extension's own inner workings nearly as approachable as the extension itself makes trying Clojure(Script) for the first time.


We are happy to provide! ❤️ calva


Thanks for the kind words! calva

Caleb Figgers23:07:02

Just curious about long-term strategy for the project—is the intention to eventually spin off major "modules" like calva-fmt, docmirror, and/or paredit into stand-alone libraries that other projects can use?


I’m not sure what @pez’s thoughts are here, but I think calva-fmt was actually a separate module before, and then was brought (back?) into Calva for reasons I’m unaware of, besides maybe that it was just easier to maintain together with the rest of Calva, and maybe at the time it wasn’t being used by other projects. I think Calva’s paredit also is from a module that was external before. (Peter, please correct this history if needed.) I’ve pondered possibly pulling a thing or two out and writing them in ClojureScript, but I have no real plans to do so currently. I’d also want to coordinate that with Peter of course before I did something that Calva didn’t end up using.


You're right, @U9A1RLFNV, Calva used to be split up in several extensions. The main problem was that each one needed an AST and even besides the resource waste, it was hard to keep in sync. One part of Calva signaled one condition and another part acted on some other condition. Now we still have this situation with clojure-lsp, which is impossible to avoid. But we have two ASTs instead of six, which is an improvement. Long term, Calva stays a monolith, I think. We've started exposing APIs, which other extensions, including #joyride, can use.

👍 1