K1 IDE broken in the latest EAP? Anyone can reprod...
# intellij
e
K1 IDE broken in the latest EAP? Anyone can reproduce?
Copy code
com.intellij.diagnostic.PluginException: Class org.jetbrains.kotlin.idea.core.script.k1.modules.ScriptDependenciesInfo$ForProject must not be requested from main classloader of org.jetbrains.kotlin plugin. Matches content module (packagePrefix=org.jetbrains.kotlin.idea.core.script.k1., moduleName=kotlin.base.scripting.k1). [Plugin: org.jetbrains.kotlin]
	at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.kt:185)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:154)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
w
Not sure if it the exact same error but I was surprised to see a simple project not working in K1 mode on latest EAP either
e
Yes, completely broken. I'm back to 2024.3.x for the time being.
a
https://youtrack.jetbrains.com/issue/KTIJ-34494/K1-performance-tests-are-broken Not sure if you can see the issue but it should be fixed in the next EAP, sorry for the inconvenience. But... it would be nice to hear why do you use K1 mode (smart completion already appeared in alpha), what else is a show stopper for you?
thank you color 1
e
@Anna Kozlova thanks for the update! Last time I used K2 mode I wasn't able at all to develop Gradle plugins under
buildSrc
. No code highlight or completion.
a
Please give us a try, I don't see any open issue mentioned
gradle
+
buildSrc
now
e
I'll give it a go again now. Let's see.
thank you color 1
w
why do you use K1 mode (smart completion already appeared in alpha), what else is a show stopper for you?
For me it's missing intentions and quickfixes โ€” I use them a lot and it's disruptive when I expect a quickfix because I've used in the past but it's missing. I don't have a comprehensive list of what I use that's not implemented in K2 specifically, but last time K2 got enabled automatically I realized because it was missing something like convert parameter to function I think.
โž• 1
a
There is
Convert property to function
and it should be available in EAP but not in the other direction. It's already too late (because we are already in the stabilization phase) but it really makes sense to try k2 from time to time and report what features do you miss, the list should not be long anymore
e
Restarted a couple of times and now it looks like it's working as expected. I'll try to keep using it for a couple of days, thanks! Just a question, why
mingwX64
is highlighted in yellow now?
a
I think, it's a dsl marker (should I check?)
e
Just looked and I don't see markers there. Edit: Is it because the containing class is annotated with
@KotlinGradlePluginPublicDsl
?
w
it really makes sense to try k2 from time to time and report what features do you miss, the list should not be long anymore
I enable it every once in a while and I appreciate that it's very stable at this point โ€” I mostly realize it's enabled when a feature is missing at which point I disable it. Frankly I didn't think that reporting missing features is required because I assumed that everything K1 has will eventually be ported to K2, I just need to wait. And I don't switch to K2 full-time because in the end there are some features missing and I use them, and other than that I don't see a perceptible difference (I suppose K1 is slower but not enough to make it a deal breaker)
a
We do not promise to port everything: if something is questionable, we probably rather not
w
I don't think I use questionable intentions ๐Ÿ˜„ But I see how it would make sense to make sure that I report those that I see missing to be sure ๐Ÿ‘ Out of curiosity, is there some milestone planned for when K2 is feature complete โ€” all planned features from K1 are ported?
a
We have a list of the non-migrated stuff. Please vote for your favorites. I think, we won't make full feature parity in 2025 because we have to support new language features, would like to improve spring support, create additional support for coroutines, etc. JIC It's my personal thoughts, no promises
w
Thank you, that's helpful! I upvoted some intentions that stood out, most notably https://youtrack.jetbrains.com/issue/KTIJ-31974/K2-Port-IntroduceImportAliasIntention, and https://youtrack.jetbrains.com/issue/KTIJ-32023/K2-Port-ConvertFunctionTypeParameterToReceiverIntention (if it's about a regular
convert parameter to receiver
intention then I use it constantly)
a
convert parameter to receiver
was ported in 24.3, it's another intention
๐Ÿ‘ 1
e
@Anna Kozlova is there an issue already open for import aliases not being shown in completion?
a
e
Yup that's it, thanks!
@Anna Kozlova ah btw, I had forgotten the primary reason I wasn't using K2: https://youtrack.jetbrains.com/issue/KTIJ-32743 Is that supposed to be working?
๐Ÿ‘€ 1
a
Unfortunately I failed to find the responsible team but on your example, it seems to work for me.
e
Thanks for testing it out! Which version of the Kotlin IDE plugin are you using? I'll check with Artem again once I'm back from vacation. There was an issue with the version of Node.js that was used by Kotlin in combination with a WebStorm bug, so the downgrade that was done might have helped too if you're using a dev build.
a
I've checked with a dev build, K2 mode. But the commit you refer to should be included in 252 EAP since June anyway.
e
Sounds good. I'll try again at some point and update the issue in YT if it's still not working.
thank you color 1