Fork me on GitHub
#calva
<
2019-01-26
>
slipset09:01:40

Also, to pitch in. It makes more sense if tooling for clj/cljs is written clj/cljs. At least for me it makes it much more interesting to contribute.

metal 3
pez09:01:03

I agree, @slipset. If that wasn’t already clear. 😃

pez15:01:53

Hello everyone! Now we need some help. In preparing for a nicer integrated repl experience @mseddon has rewritten the nrepl client in Calva. Our testing of it says it works at least as well, even better than the old client. But there might be (probably is) that we have introduced some nasty bugs that we shouldn’t be unleashing on the Extension Marketplace. Please consider installing the attached VSIX package and give it some spins, and let us know if it seems to misbehave on things that the current Calva behaves. Thanks in advance! ❤️/Matt & Peter

👍 2
pez15:01:20

You seem to be a very extra alert user, @claynon, maybe you can stress test that VSIX? ^

claynon17:01:57

I will do it, but during the weekend I'll not have much time to test features that I don't use very often. On Monday I'll have a bit more time

❤️ 1
pez17:01:18

Thanks! You can put a bit less emphasis on stress test. If it behaves or misbehaves for your regular use is very good for us to know.

claynon19:01:33

So far, it behaved exactly like the previous version. I even double checked to see if I installed the vsix correctly

pez19:01:37

Awesome.

pez19:01:29

I have found two differences. One is to the way better. I can evaluate stuff like (range 100000). The current client can’t handle when the results get that big. Another difference is for the worse (but maybe not all that horrible in practice): In a figwheel project I test with, if I do not start figwheel and the cljs repl, Calva will still report that it connects to the cljs repl and let you think the cljs repl is backing source files, but in reality it will be the clj repl that is doing the work.

slipset20:01:03

So for a calva n00b, how do I access the new repl?

slipset20:01:21

Is it still the “Terminal” and “Clojure Repl” thing?

pez20:01:42

The new repl is not included in the test with the vsix.

pez20:01:27

So, what is included in the test should be invisible to the user.

pez20:01:20

If you want to test the new repl, I can tell you how to. It is quite simple.

slipset20:01:00

I really like the stuff you’ve done with the colors when you evaluate a form, but, one slight annoyance: The message from the compiler doesn’t linewrap even if I have line wrapping on.

pez20:01:21

Which message from the compiler?

slipset20:01:23

It sortof just disappears under the thing that shows where I am in the file.

slipset20:01:47

I’ll create an issue on github with an image. (cant upload files here). Feel free to close 🙂

metal 2
pez20:01:42

Ah, so that is not just compiler error messages. It happens with large results as well.

slipset20:01:13

I’d settle for a hover that showed the whole message…

slipset20:01:04

But again, thanks a lot for all you do @pez!

pez20:01:13

The whole error message should be in the Output channel “Calva says”.

slipset20:01:43

Have you watched the latest talk by Stuart Halloway btw, it’s really good, and quite applicable to what you do 🙂

pez20:01:36

In fact, even in the output channel there is often information missing from the stack traces. That is something we will have to investigate closely.

pez20:01:34

So, when an evaluation fails, you would like a popup with the whole error message? vscode supports these notification things in the right lower corner, where we could display such popups.

slipset20:01:13

I don’t know what I want, other than I want to see the whole error 🙂

pez20:01:14

Haven’t seen that talk with Halloway, I think. What’s the title?

pez20:01:46

Thanks! Will watch.

pez20:01:53

Is it enough for you to know that the error message is available in the Output channel, or would you like it more accessible than that?

slipset20:01:53

WHere is the output channel?

pez20:01:18

View -&gt; Output and there there is a drop down menu where you can select the “Calva says” channel.

pez20:01:12

Calva logs its output there. So everything you evaluate and such.

slipset20:01:30

Ah! Didn’t know about that!

pez20:01:52

We will maybe move some of the output to the new repl window.

slipset20:01:58

My guess is, thought that you could probably trim the error message that’s displayed in the buffer.

slipset20:01:12

(the one I screeenshot’ed)

pez20:01:15

Since that will probably be much more often in view.

slipset20:01:36

In the “Calva says” thingy we see:

slipset20:01:39

Error: Syntax error compiling at (form-init4420829845966072511.clj:2:3).
Unable to resolve symbol: foo in this context

slipset20:01:20

The only interesting bit here (when looking at it from the source code buffer) is “Unable to resolve symbol: foo in this context”

pez20:01:04

Is there some system to these messages you think we can utilize?

slipset20:01:17

Yes, I’m quite sure of that…

slipset20:01:26

You might even be lucky…

pez20:01:32

Then we should do that.

pez20:01:23

Oh, thanks!

slipset20:01:25

I believe this stuff is coming to the new version of Clojurescript as well.

slipset20:01:36

this stuff == error handling.

pez20:01:18

It’s really great that they put some focus on the error messaging. It felt like a hurdle when I started with Clojure, and even if it is not such a big deal in practice I think it is a big deal for the beginner experience.

💯 1
mseddon20:01:12

@pez ah, yeah. Call cljSession.stacktrace() if you want the stacktrace of the last eval, that message is supported in the new client :)

aw_yeah 1
mseddon21:01:35

Also related, there is an issue open to highlight the error location during eval file etc. I will try and throw together a PR for that in the coming days, since it should be pretty simple.

mseddon21:01:26

I wonder if there is a way to hyperlink to the source from a vscode output channel?

pez21:01:02

vscode hyperlinks it automatically. On Mac, hold down CMD while hovering the path.

mseddon21:01:27

Oh okay nice!

pez22:01:54

Again thanks for the link to Halloway's talk, @slipset . Great and important stuff. So far the Clojure community has been a totally awesome experience, and I haven't seen too much of that rethoric yet (some, of course, but much less than in other areas I have touched).