Skip to content

Conversation

CyrusNajmabadi
Copy link
Member

@CyrusNajmabadi CyrusNajmabadi commented May 26, 2025

Progression is incredibly slow and has been deprecated by the platform. This moves us to the far simpler, saner, and faster 'IAttachedCollectionXXX' system.

This systems powers the symbol-view in solution explorer, as well as solution explorer search.

@CyrusNajmabadi CyrusNajmabadi requested a review from dibarbet May 30, 2025 10:35
@CyrusNajmabadi
Copy link
Member Author

@dibarbet this is ready for another pass.

{
// This was the first time this node was expanded. Kick off the initial work to
// compute the items for it.
_rootProvider._updateSourcesQueue.AddWork(_hierarchyItem.CanonicalName);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

// We only support C# and VB files for now. This ensures we don't create source providers for
// other types of files we'll never have results for.
var extension = Path.GetExtension(itemName);
if (extension is not ".cs" and not ".vb")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when teh file is renamed, we don't get a new call. but we do get a new CanonicalName for the item.

So is it possible that you have say "file.txt", we skip creating the source (extension doesn't match), but then it gets renamed to "file.cs"? If we don't get a new call here it seems like we'd never have a source for it.

{
// Found a matching item we can use. Remove it from the list of items so we don't reuse it again.
var matchingItem = matchingItems[0];
matchingItems.RemoveAt(0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the only impact of re-using the 'wrong' duplicate in this case would be we might not save the expansion state? That seems fine to me

@CyrusNajmabadi
Copy link
Member Author

So the only impact of re-using the 'wrong' duplicate in this case would be we might not save the expansion state?

Correct.

@CyrusNajmabadi
Copy link
Member Author

So is it possible that you have say "file.txt", we skip creating the source (extension doesn't match), but then it gets renamed to "file.cs"? If we don't get a new call here it seems like we'd never have a source for it.

Yes. This is a bug. Good catch. Handling in followup pr.

@CyrusNajmabadi CyrusNajmabadi merged commit 713cd56 into dotnet:main May 30, 2025
28 checks passed
@CyrusNajmabadi CyrusNajmabadi deleted the removeProgression branch May 30, 2025 18:24
@dotnet-policy-service dotnet-policy-service bot added this to the Next milestone May 30, 2025
@RikkiGibson RikkiGibson modified the milestones: Next, 18.0 P1 Aug 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants