IntelliJ Scala 3 support

I am afraid this will perhaps sound a bit harsh. I am daily IntelliJ user and in spite of all shortcomings I still consider IDEA IDE to be the best for my purpose. That said, the image conveyed by the words above does not reflect the reality which is: Scala 3 support is seriously lacking in IntelliJ, esp. the highlighting and type inference is inferior compared to excellent Scala 2 support I have been used to.

Besides of named tuples there are opaque types, extensions and givens, which are older and more fundamental features, in my opinion. I have reported more than 10 issues regarding those features - most of them cause my project sources being significantly red.

I understand this takes a lot of effort and I do not expect this to be solved immediately, I understand the JetBrains team may have different priorities, but at least I would like the problem to be acknowledged.

I do not pretend to know the solution, but acting like a problem does not exist is certainly not a solution.

3 Likes

Another thing is better Java 21 interoperation support, Java 25 is the next LTS.

To help others, can you provide links to the issues you mention…?

Whole collection at your disposal: https://youtrack.jetbrains.com/issues/SCL?q=by:%20ospanel%20%20sort%20by:%20created%20desc%20State:%20Open (dynamic view, may change as/if some issues are closed or added)

Some selected issues:
https://youtrack.jetbrains.com/issue/SCL-23232/Good-code-red-given-not-resolved-for-opaque-type-extension
https://youtrack.jetbrains.com/issue/SCL-23227/Method-of-underlying-type-used-instead-of-opaque-type-one
https://youtrack.jetbrains.com/issue/SCL-23233/Good-code-red-given-not-resolved-with-opaque-type-parameter
https://youtrack.jetbrains.com/issue/SCL-23236/Good-code-red-Incorrect-extension-resolution-for-opaque-types-with-type-bounds
https://youtrack.jetbrains.com/issue/SCL-23226/Opaque-type-method-not-resolved-properly-in-presence-of-type-alias
https://youtrack.jetbrains.com/issue/SCL-23225/Methods-from-underlying-type-of-opaque-type-accessible
https://youtrack.jetbrains.com/issue/SCL-23204/Scala-3-summon-not-inferred-with-ClassTag

2 Likes

I just reported one issue too:
https://youtrack.jetbrains.com/issue/SCL-23334/Highlighting-error-in-Scala-code-using-Java-16-records

I mostly using Scala with Java 21

1 Like

It seems IntelliJ CE 2024.3.1.1 with Scala plugin 2024.3.23 had no support for SIP-64, which changes context bound and given clause syntaxes. See this thread for details. I’ve opened a JetBrains ticket https://youtrack.jetbrains.com/issue/SCL-23372/Fails-to-recognize-SIP-64-syntax.

1 Like

https://youtrack.jetbrains.com/issue/SCL-22899/scala-3-support-multiple-mixed-using-clauses

and all related