Open davkean opened 7 years ago
The way this works is like follows:
OverrideGenerator
that is added to extension section of a generator that represents the ProgId of the override generator.OverrideGenerator
if it's generator matches the default generator. For example, in the following, XAML files marked with MSBuild::Compile are considered as using the XamlIntelliSenseFileGenerator single file generator.The last one suspects that we might need to write a custom data source for the CustomTool property instead of just swapping at the point we go to create it.
This works now, via CPS in src\Microsoft.VisualStudio.ProjectSystem.VS.Implementation\CodeGenerators\WpfCodeGeneratorOverriderProvider.cs but probably needs to move to VsGeneratorsCacheService and be read from the registry
To speed up code generation when switching tabs in the XAML designer, the XAML "overrides" the MSBuild::Compile generator and replaces it with the XAML single file generator. We need to make official support for this, especially as build is out-of-proc and XAML won't be able to register a host object to get unsaved changes.
See CLangFileNode::GetXamlOverrideGenerator for more information.