microsoft / vscode-dotnettools

This is a feedback repository to capture issues logged for the C# Dev Kit and related extensions from Visual Studio Code
Other
210 stars 7 forks source link

[BUG] GTD and GTI not available during solution load #1097

Open webreidi opened 2 months ago

webreidi commented 2 months ago

Describe the Issue

We are receiving many reports that Go to Definition and Go to Implementation are not working and it seems that it is a matter of the fact that these features are not available during solution load. You cannot successfully navigate until the projects have completely loaded and you see a number of projects loaded: image

Can we speed up solution load to make this less of an issue? Can we make awareness better that the Project load indicator is important to having LSP features fully working?

Verbatims from surveys: I think it is missing caching, loading whole project takes a lot of time and sometimes it doesn't succeed. Stuff like go to definition doesn't work at this point.

dibarbet commented 2 months ago

Can we speed up solution load to make this less of an issue? Can we make awareness better that the Project load indicator is important to having LSP features fully working?

From the C# extension perspective, the main possible things we could do here is have some indication that the file is not loaded in a project, e.g. https://github.com/dotnet/vscode-csharp/issues/5788 ? Basically my idea was to have something similar to the VS NavBar that shows project a file is in - if its not in a loaded project it would show 'Miscellaneous Files'.

I don't think VSCode provides the ability for something exactly similar to the navbar however. We could potentially use the status bar to show the current file project? Or add a project top level node to the document outline? image

Could use your thoughts on what might be a good way to indicate that the currently opened file is not loaded - @webreidi

For speeding up project load, this likely needs to be driven by the devkit project side. Possibly a feature like O#'s load projects on demand (load projects visible in the editor first), see https://github.com/dotnet/vscode-csharp/issues/6008 and https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2005174 (internal)