Open davidwengier opened 5 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.
Random notes found while debugging #5858:
DeferUntilIntellisenseIsReady()
[here](http://index/?query=%60DeferUntilIntellisenseIsReady()&rightProject=VS(Repo)&file=src%5Cenv%5Cmsenv%5Ccore%5Cvsshlsvc.cpp&line=7749) return true?)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.
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:
ProvideEditorFactory
attribute