Fork me on GitHub
#editors
<
2018-10-05
>
sparkofreason15:10:30

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.

mauricio.szabo18:10:26

What were the friction points with Atom and Proto-REPL that you had?

snoe16:10:13

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

💯 4
sparkofreason16:10:57

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

sashton16:10:52

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

snoe16:10:54

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

sashton17:10:33

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

sashton17:10:26

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?

sashton17:10:39

or vice-versa

sashton17:10:14

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

richiardiandrea03:10:16

This is awesome and the static analysis could be related easily in cider I guess 😺

snoe20:10:22

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

sashton20:10:38

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

richiardiandrea20:10:53

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

pez16:10:58

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

sparkofreason16:10:03

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?

pez17:10:18

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.

pez17:10:10

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

👍 4
pez16:10:28

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!

sparkofreason16:10:49

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

richiardiandrea03:10:05

I would be interested to know why you think this is the case, in general...I am not that convinced of that actually but being a cider user kind of has its bias 😄

orestis17:10:41

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 🙂

orestis17:10:49

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

pez17:10:19

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.

orestis17:10:59

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!

👍 4
pez17:10:32

Please keep reminding perodically! 😃

pez17:10:46

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.

👍 8