Rider REALLY struggling with Entities.ForEach?

Anyone else use JetBrains Rider and experiencing this? I know this isn’t a “Unity” problem directly, but wondering if anyone else is seeing this. It seems that whenever I am typing out the lambda here Rider really struggles and lags presumably because of the Rosalyn parsing?

2 Likes

Nope.

JobComponentSystem or ComponentSystem?

JobComponentSystem

Me too, so I turn back to VScode…

Yea I get a 1-2 second lag

I have this report open : https://youtrack.jetbrains.com/issue/RIDER-36736

The best fix would be having them hard code exception for a “known” generated overloads. (if they want to up their status as the editor for Unity they will be compelled to do it at some point?) Currently I turn off parameter info popup. A workaround to see parameter info is then to hit go to definition and back or peek it.

3 Likes

My hack fix is to put semicolon ASAP after Entities.ForEach — then it becomes more responsive

2 Likes

Thanks for the YT link. I +1’d it. I’ll also try turning off parameter info.

This is killing me, hopefully we get a fix soon.

Hi all. Matt from JetBrains here. Just to let you know that we’re aware of this issue, and it’s definitely on the radar.

I believe we’ve already made some improvements in this area, so please make sure you’re on the latest version of Rider - 2019.3.1. But there are a number of different scenarios with ForEach, with some overloads being instance methods on EntityQueryBuilder, and others being extension methods, so it might differ by scenario. It would help if someone could come up with some repro steps and/or a screen grab video showing what overloads are being used and how the slowdown is showing.

2 Likes

I am on 2019.3.1. See the blinking caret or mouse in the clip for reference how it is lagging or not lagging (while the caret is not blinking, the editor is completely unresponsive). Repro steps : Try Entities.ForEach inside any system class, and as long as you are still in argument section of the lambda, you cannot wait for more than 1s while editing it because it would fetch all overloads to show a popup what kind of lambdas are possible.

https://www.youtube.com/watch?v=8qZE6dvtihI

(also the balloon’s direction is not helping even if it didn’t lag, often it goes in the same way I am typing to)

Or disable to fix :

5345706--539712--upload_2020-1-7_21-20-2.png

2 Likes

Great video, really useful, thanks! Forwarded it internally to the devs who’ll be tackling this.

As you’ve pointed out, the problem is mainly to do with parameter info. We’re not expecting nearly 200 overloads, and AIUI, we’re being a little naive about collecting, formatting and displaying all parameter infos at once, and that’s causing trouble for this many overloads. We’ll be looking at how we can better handle this, and also if we can present this information in a more useful manner - nobody’s going to browse 200 items in a popup like this, especially given how similar they are.

Just to set expectations, this is currently planned for Rider 2020.1, as it likely requires significant rework in the way we handle parameter info.

7 Likes

+1 to this thread. Really waiting for the fix. 5argon you saved my day, thank you for hint.

1 Like