dotnet / project-system

The .NET Project System for Visual Studio
MIT License
968 stars 387 forks source link

Opt-out of Partial Load Mode for the App Designer #5317

Open davidwengier opened 5 years ago

davidwengier commented 5 years ago

Currently the App Designer (project properties) is opted in to being deferred for Partial Load Mode, because the Resources editor, Settings editor, and one or more property pages, need to be deferred.

We want to change the code so that we can opt individual property pages or sub-editors in to waiting for PLM (note: Resources and Settings editor factories are both already opted in), and opt the main App Designer editor factory out so that as much of the UI is accessible as it can be.

Steps:

davkean commented 4 years ago

Triage: This is figuring out what pages don't actually need design-time build results and stop blocking opening the AppDesigner while PLM/operation progress is in progress, and block pages that actually need operation progress.

davidwengier commented 4 years ago

Random notes found while debugging #5858:

davidwengier commented 4 years ago

Re: opting individual pages into defering, letting the shell do it will definitely be the easiest, we just have to come up with a way for that to happen. We can simply create a second PropPageDesignerEditorFactory that opts-in, and have specific property pages use that instead of the current factory, which opts out. The issue is knowing which pages to do it for, as they are deliberately lazy-loaded so its not trivial to read information from them.

A new registry entry under [$RootKey$\PropertyPages\{..page guid..}] for DeferUntilIntellisenseReady=1 might be the easiest way to go.