Cursive 2025.2-eap3 is out, finally bringing support for clj-kondo! https://cursive-ide.com/blog/cursive-2025.2-eap3.html
Thanks Colin, I checked in the new EAP and it's there. Was probably an error on my end
My reformat form action seems to have gone missing after this version bump
I'll check that
I don't seem to be getting any kondo warnings even though I've enabled it in the settings. Where can I look to debug further?
Have you considered that your code might be perfect? 🙂
More seriously, I'm getting a new EAP out shortly which fixes the memory issues people have been having, it probably makes sense to wait for that one and then we can debug if it's still not working.
@imre I checked the Reformat Form and I still see it. If you're not seeing it in the new EAP let me know.
Should this use “initializing” to be in American English? Or is the rest of IntelliJ localised to British English? I’ve never noticed before
Unsure if this is related but I’m getting a low memory warning after updating to the new version
I mostly use British English in Cursive, just because that's what I tend to use.
Could you get that memory report and send it to me?
IntelliJ is unresponsive and eventually crashes, so sorry I can’t
I think I’ll need to downgrade to stable
I just installed it. The memory jumped for a few seconds, but then the cache initialization finished, and it’s back to normal now.
I always keep the IntelliJ heap memory indicator active in the corner.
Helps to see if something funky is going on.
Perhaps try bumping the max heap?
(my max heap is set to 32GB …)
Right, this integration runs kondo in-process, so it might need more heap especially while updating the cache.
I think it might have gone over 10GB for a few seconds.
(and my open projects are not big at the moment, not sure if that’s a factor)
Hmm, hopefully it doesn't require that much 😕
It was at least 6-7 I think
I don't have my heap set that high and I haven't seen any issues, and I tested this using metabase which is pretty big.
Oh yeah that is big…
Yeah my max is set to 8GB and it handled metabase ok.
I happen to have it, just opened it
I think when you set higher heap, the JVM tends to use more
still init-ing
Yeah, definitely - if it gets low on space it will collect more aggressively, I think
I'll delete the caches in my local copy and profile while it's initialising there.
I think init finished, that’s where it maxed out
how many modules does Metabase have?
Now it’s at 10GB… with metabase open (and a few other tiny projects in comparison also open)
I assume every projects adds something additional?
If you force a GC does that go down?
I click the corner
which forces the GC I think
It does not go below 10
I can try restarting?
See how it opens on restart
restarting IntelliJ
Ok, I'll try it here too, but it'll have to be tomorrow at this point.
Oh… it’s initializing on every restart
or not…
After restart is at 3GB
so either something funky (memory leak?) is going on during the cache init, or that’s as designed, I am not sure
But now I have the same projects open, and the mem usage is 3GB
> how many modules does Metabase have? I don’t know much about their codebase but it’s all open source; it’s a big project https://github.com/metabase/metabase possibly the biggest open source Clojure project I can name on top of my head
~124k lines of Clojure in src just counted 🙂
I actually expected more, but it’s not tiny
Yeah, that was why I tested with it. It won't re-init the caches unless something has changed, classpath/config/kondo version, so I I guess that why it's less on a restart. I'll have to profile during a cache init to see what it gets up to.
In any case, first-class clj-kondo integration is great news 🙂
I’ve been using the hacky IntelliJ integrations for kondo (File Watchers plugin I believe); it worked but was not perfect
(nothing to do with kondo, just the integration with the editor)
Seems to work! This is a cljc file, so it correctly gives a warning that this line of code is not valid, presumably in ClojureScript.
Yes, the integration is pretty nice, I'm going to add quick fixes where it makes sense so you can just alt-enter to fix the things that are easily fixable
Once wrapped #?(:clj … it disappers
Not sure whose fault this is but I saw this warning after running the new beta and adding files to git
warning: in the working copy of 'app/.clj-kondo/instaparse/config.edn', CRLF will be replaced by LF the next time Git touches itAfter giving IntelliJ 32 GB RAM, it was able to stabilise and run the clj-kondo initialisation. It seems stable now, although maybe slightly laggier, like more is running on each keystroke?
How big is your project? It definitely shouldn't run on every keystroke, the external annotator debounces by a decent margin I think (it's designed to run external linter processes).
nice one Colin, I was looking forward to this
Seems to be working fine in my case so far
Glad to hear it! This is definitely way overdue.
Looks like I spoke a little too soon. I opened another project, which is a monorepo with some twenty-odd subprojects and initializing the cache froze the ide.
didn't have this with clojure-extras previously
Did you get any of the automatic UI freeze thread dumps? Could you send them to me if so?
Let me check
sent the 2 I could find in an email
It would be good if I could resize this window. At the moment it resizes back to full size, even if I make it smaller
Yes, in recent versions IntelliJ has taken to showing those previews when hovering over symbols. I'm not sure I can do much about this, except perhaps not put clojuredocs examples in those popups, if that's possible. I'll take a look.
I guess the examples are from hovering over filter , not part of clj-kondo
I’m not sure why, but I didn’t seem to get this behaviour with clojure-extras