Open
Description
Right now the IDE configures the compiler by:
- Passing in a
RazorCongfiguration
which has various properties - Calling some compiler methods to do some pre-canned configuration
- Passing in some extra data through extension methods
- and adding compiler features directly to a builder
This has all generally been a bug farm in the past, makes it easy for things to be missed, and means there is no good way for someone working in the compiler to know if they will need IDE support for their work, nor someone working in the IDE know what they need to provide the compiler in order to get a coherent experience.
If we could centralise on a single strongly typed API that contained everything the Razor compiler needs from the IDE, it should make these issues go away. The simplest idea, from an IDE perspective, would be to add more parameters to the RazorConfiguration
constructor, and get rid of the configure
lambda entirely, and have that be the contract. Open to all thoughts.