-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Emit host outputs #8242
Emit host outputs #8242
Conversation
We had multiple sets of roslyn references, differing between the compiler and the tooling. This consolidates those versions and updates the compiler references to be inline with the tooling.
…nd EmbeddedAttribute.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One question about the NuGet.config, probably want someone with more compiler knowledge for the important bits.
This is an elegant approach, but it's not going to work for us unfortunately. We need to be able to produce both the design time and runtime documents for hot reload at the same time. Instead, we should fork the graph before emitting and produce both designtime for the host outputs, and runtime for the regular source. That's obviously going to be doing more work, so lets switch it to ImplementationOnlyOutput. Then we can hook that up on the IDE side so that, effectively, the design time only runs in the IDE, the runtime only run in the command line compiler, and both run in hot reload scenarios. Note also this isn't actually going to do anything until we enable it on the IDE side. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need both design time and runtime
cf0ed3f
to
acc14c4
Compare
@chsienki @dotnet/razor-compiler feedback addressed, CI is green. However, we might want to first merge
|
@jjonescz Perf/generator #8212 is targeting |
True, but |
Test insertion link (internal only): https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/460368 |
@chsienki for another look |
New test insertion link (internal only) https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/467451 |
3cda258
to
e3bfb62
Compare
@jjonescz We discussed in the working group about if we want to put this work in a branch or in main behind a flag. I think this work is good for main-behind-a-flag. Can we do something similar to how we suppress the whole generator with the Basically cut out early and do no host output work unless an option in the config is present? That way it'll be off by default but we can opt-in individually for testing? |
a05a140
to
6804dee
Compare
6804dee
to
87cab98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Latest changes LGTM
🥳 |
Making the source generator emit design-time C# and HTML via host outputs.
Based on
Blocked by
GeneratorDriver
roslyn#66570—until that's published, this PR needs to use manually published Roslyn version 4.5.0-2.23107.1,