editors

Discussion about all editors used for Clojure/ClojureScript
sparkofreason 2018-10-05T15:52:30.000100Z

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.

snoe 2018-10-05T16:21:13.000100Z

@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.

1💯
snoe 2018-10-06T20:15:22.000100Z

@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.

sashton 2018-10-06T20:19:38.000100Z

At what layer are the static/repl results compared/combined? In the clojure-lsp, or is it up to the editor?

richiardiandrea 2018-10-06T20:53:53.000100Z

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

pez 2018-10-05T16:31:58.000100Z

@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.

pez 2018-10-05T16:33:28.000100Z

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!

sparkofreason 2018-10-05T16:35:57.000100Z

Thanks, I've been keeping an eye on that project, will give it a try.

sparkofreason 2018-10-05T16:38:03.000100Z

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?

sparkofreason 2018-10-05T16:42:49.000100Z

I think that's a good approach. The REPL is rather limiting for serving development environments.

sashton 2018-10-05T16:58:52.000100Z

@snoe is clojure-lsp purely a static analysis approach?

snoe 2018-10-05T16:59:54.000100Z

@sashton yup, but it pairs well in my setup with vim-fireplace

sashton 2018-10-05T17:01:33.000100Z

ok, so you’ve got REPL functionality from vim-fireplace then, right?

sashton 2018-10-05T17:07:26.000100Z

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?

sashton 2018-10-05T17:07:39.000100Z

or vice-versa

pez 2018-10-05T17:08:18.000100Z

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.

pez 2018-10-05T17:09:10.000100Z

I like the idea of a cheat sheet. Might produce one! 😄

1👍
orestis 2018-10-05T17:09:41.000100Z

Periodic reminder that anyone that works on Clojure tooling /cc @pez @snoe should consider applying for Clojurists Together funding — deadline is in a few days 🙂

orestis 2018-10-05T17:10:49.000100Z

> 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.

sashton 2018-10-05T17:12:14.000100Z

e.g. docs/var-definitions for variables defined by custom def code

pez 2018-10-05T17:15:19.000100Z

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.

orestis 2018-10-05T17:16:59.000100Z

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!

1👍
pez 2018-10-05T17:17:32.000100Z

Please keep reminding perodically! 😃

pez 2018-10-05T17:19:46.000100Z

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.

2👍