Move off of Progression for solution explorer.#78714
Move off of Progression for solution explorer.#78714CyrusNajmabadi merged 161 commits intodotnet:mainfrom
Conversation
src/Workspaces/Core/Portable/FindSymbols/Shared/AbstractSyntaxIndex_Persistence.cs
Outdated
Show resolved
Hide resolved
…Index_Persistence.cs
…/roslyn into removeProgression
|
@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); |
| // 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") |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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
Correct. |
Yes. This is a bug. Good catch. Handling in followup pr. |
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.