I think I've about had it with IntelliJ. cursive is fantastic, but it seems every few months I'll get an IntelliJ release with a really painful bug. Interested in the current state of other options that work nicely under Windows. I've worked extensively with emacs in the past, not really willing to take on the headache of debugging packages unless that's gotten a lot better. I also spent a fair amount of time with Atom and Proto REPL (twice) when previously weary of IntelliJ issues, wanted to love it, too many little friction points. Currently giving Calva + VSCode a try. Any pointers to other low-friction Clojure editing environments welcome.
@dave.dixon I too got fed up with intellij, so I'm developing https://github.com/snoe/clojure-lsp so we can have editor agnostic ide functionality, There are LSP clients for almost every editor.
@sashton it works both ways. Static analysis can catch files not loaded by repl. For instance we have a mono repo with different mains for different services, repl will sometimes only find the code for the service you connect to. On the other hand macros are much harder to handle statically, cursive, for instance has a ton of code to handle things like potemkin/import-vars
and compojure.
At what layer are the static/repl results compared/combined? In the clojure-lsp, or is it up to the editor?
I don't know, I have never felt the need to jump around code maybe. I was trying to get static jumping through ctags, not yet perfect but it supposed to work
@dave.dixon I’m happy to hear you are giving Calva a try. Please feel welcome to join #calva-dev so that I can have a chance to address whatever friction points that might be there. Of course I have too little time for the project, but it is good to get help prioritizing.
If I had tons of time I would spend some of it on checking out how that LSP could be used for Calva, @snoe. It looks really interesting!
Thanks, I've been keeping an eye on that project, will give it a try.
So for so good. I generally have found VS Code to be snappier and more reliable than atom, so off to a good start. Is there a cheat sheet for key bindings?
I think that's a good approach. The REPL is rather limiting for serving development environments.
@snoe is clojure-lsp
purely a static analysis approach?
@sashton yup, but it pairs well in my setup with vim-fireplace
ok, so you’ve got REPL functionality from vim-fireplace then, right?
I haven’t thought too deeply about static analysis in Clojure. Have you come across any situations where similar data/actions are made available by the REPL and by LSP, but that the REPL’s view is better/more complete?
or vice-versa
Thanks for letting me know! I think the README mentions most of the bindings. And as Calva Paredit is bundled many of the the shortcuts are mention in that README.
I like the idea of a cheat sheet. Might produce one! 😄
> The main things people were interested in: error messages (58), documentation (47), build tools (42), developer experience tools (33), IDE support (31), test tooling (26), and linters (26%). Tools and documentation targeting beginners to Clojure or to programming in general were mentioned by quite a few people.
From: https://www.clojuriststogether.org/news/q4-2018-survey-results/
e.g. docs/var-definitions for variables defined by custom def
code
That would be lovely, @orestis, but I can’t at the moment. My day time work won’t allow a commitment like that. But hopefully that will improve and I will ask for help with the application.
I know @pez, it’s tough to work full time and do open source. Funding isn’t the whole picture. But still, periodic reminder :) because tooling is something with huge importance and kudos and thank you to everyone who chooses to tackle it!
Please keep reminding perodically! 😃
The Clojurists Together initiative is lovely. I will see if I can convince my boss to get the company join as a sponsor. We do rely heavily on Clojure and the libraries and tools around it provided by the open source community.