Fork me on GitHub
#calva
<
2022-12-26
>
SillyCoon07:12:07

Hi everyone! I want to contribute to Calva. Do you know if these good first issues are still relevant? https://github.com/BetterThanTomorrow/calva/contribute

🦾 2
pez10:12:29

Hi! Wonderful that you want to contribute. I checked that list, and it’s still valid, I’d say, but it’s far from comprehensive. I’ll have a look and see if I can tag some more issues for this. One thing that pops to mind is the formatting of deftype where the user has to fight with Calva to get it formatted correctly. You should find it among the issues. The code around this is a bit untidy, but still I think it can be encouraged to do something smart around deftype to format the right amount of context. Then it comes down to what you think is fun to tackle.

SillyCoon23:12:36

I'll make sure to do that, then. Thank you for the advice! I guess this is the issue with deftype. Should I mention in the comments that I want to try to resolve it? https://github.com/BetterThanTomorrow/calva/issues/1957

bringe00:12:25

Yes, a comment there would be nice. Thanks!

pez08:12:02

I added a comment with an idea for how I think this can be handled. Please don't hesitate to reach out for help finding your way around the codebase, @ahtunget.

SillyCoon10:12:32

Ok, thank you!

SillyCoon05:12:56

Hi guys, I have a question about codestyle in the project. Is it ok to refactor some TS code in declarative way (e.g. https://github.com/BetterThanTomorrow/calva/blob/f97bebaf6213cdf7799954faa1fc073c078d420f/src/cursor-doc/indent.ts#L163) using map/foreach or was it intentionally written like this?

pez08:12:33

We generally want to move to a more functional style. In some tight loops, like this one, it could be a performance issue, so it could be good to measure any such impact. That said, generally we want the PR to be focused on its thing, so it would only be a question for this PR, if it otherwise changes this code. If that makes sense? In this case I guess it might be relevant code for the PR, and to make the code clearer might make sense.

SillyCoon01:01:21

Hello @U0ETXRFEW! Are there any important bugs to deal with right now? I can try to pick it up. Or if not I'll go to find something in issues 🙂

❤️ 2
bringe21:01:06

@ahtunget Take a look at the issues and see what you might enjoy taking on. simple_smile

pez21:01:34

Ah, you replied on this issue, @ahtunget! It explains why I didn't find it. 😃 I'm so happy for you offering this kind of help! We should triage a bit, I think. Awaiting that, since you've aquainted yourself a bit with the formatter and indenter and the infra around it, it would be great to have your eyes on those particular issues. Not a bug, but certainly a quality issue: There is a mess in the code dealing with identifying form pairs. It blocks further development of that feature. We can't drag test+expression pairs in conds for instance. I don't know if maybe it is so messy that anyone else but me can tidy it up, but if you see some direction we can take with that code, or how it could be totally rewritten, I am all ears! (Today I also learnt that Cursive takes form pairs into account when growing the selection, so growing the selection in a let binding, for instance, will first select a form, then include the form belonging to the binding pair. I think that looked super neat! But then remembered the mess... Haha.)

pez21:01:34

Ah, you replied on this issue, @ahtunget! It explains why I didn't find it. 😃 I'm so happy for you offering this kind of help! We should triage a bit, I think. Awaiting that, since you've aquainted yourself a bit with the formatter and indenter and the infra around it, it would be great to have your eyes on those particular issues. Not a bug, but certainly a quality issue: There is a mess in the code dealing with identifying form pairs. It blocks further development of that feature. We can't drag test+expression pairs in conds for instance. I don't know if maybe it is so messy that anyone else but me can tidy it up, but if you see some direction we can take with that code, or how it could be totally rewritten, I am all ears! (Today I also learnt that Cursive takes form pairs into account when growing the selection, so growing the selection in a let binding, for instance, will first select a form, then include the form belonging to the binding pair. I think that looked super neat! But then remembered the mess... Haha.)