No code autocompletion for ForEach arguments

Autocompletion doesn’t work for foreach arguments. Interesting… Is that a known issue? My VSCode sees them as Object apparently. Only gets Equals(), GetHashCode(), etc.

1 Like

VSCode doesn’t seem to handle the ecs stuff as elegantly as Rider does right now. I use VSCode on my laptop just because running unity + rider bogs it down so much.

1 Like

@5argon already posted that. It’s omnisharp problem. Rider works fine :slight_smile:

1 Like

Is there anything that can be done about it? (Without switching from VSCode)

Because of this problem I am evaluating Rider now, though I have been with VSCode for many years so this is a hard decision.

I have my evaluation until middle of January to decide for real. Until then I am documenting comparison with VSCode here : Visual Studio Code vs Rider for Unity

1 Like

Thanks. That’s impressively thorough, a summary would be great when you’re done.

I installed Visual Studio bundled with Unity. It works, but I already miss VS Code.

P.S.
I just wrote multiple paragraphs ranting about how bad fuzzy search is in Visual Studio while testing it, until I realized that it doesn’t have one… Only first letters in CamelCase.

Rider doesn’t have it (EDIT: Fuzzy search) as well, right?

Fuzzy search much better in Rider than in VS

In Rider they call it CamelHumps https://www.jetbrains.com/help/rider/Navigation_and_Search__CamelHumps.html

Alright. So I gutted Visual Studio, it looks fine (I’m really into minimalism). I don’t need any features that are not for typing fast, looking good, and seeing code. I’ll miss multiple cursors with Ctrl+D. But VS also has some advantages like Rider it is linked to Unity, triggers compilation, can automatically rename classes.

It would be best if Unity can look into this. I evaluated Rider but don’t see myself using it over vscode.

It does work with older versions of the c# addon. I don’t know when it broke, but using Version 1.21.5 right now and now it autocompletes again.

1 Like

@Wobbers I installed to 1.21.5 and restarted vscode, but code completion inside lambda still doesn’t work for me. =( Everything outside the lambda works fine.

Anyone else having success with an older version of C# extension for vscode?

Damn, that’s good news. I installed 1.21.5 and it works now.

Make sure you give it enough time to download dependencies. Check the output console.

EDIT: 1.21.7 works as well. 1.21.8 is where it broke (25 days ago)

Please submit a report to C# plugin devs, it doesn’t let me post there for some reason.

Thanks @Wobbers @illinar

Probably there’s something else going on in my existing project. New project works fine now with 1.21.7.

I created a bug report for omnisharp here: Code completion no longer work for Unity's JobComponentSystem.Entities.ForEach · Issue #3469 · dotnet/vscode-csharp · GitHub

I have to include the Unity steps in there as I don’t know how to reproduce the issue in a pure C# context. If anyone know how to reproduce it without involving Unity libs, please let me know. It’ll be easier for non-Unity folk to work with.

1 Like

So that’s why I remembered it was working fine sometimes ago… I will try to make a repro dotnet project and add to the issue.

1 Like

I got it. It is just any lambda with overload choice as a delegate with input argument…

2 Likes

Bravo! Thanks for nailing this one.