I'm looking to construct a new project type, for a custom language which I am building integration for. In the course of providing features such as code completion and syntax highlighting, I am loading the user's files from the disk, parsing them, etc. It would be quite wasteful to repeat this work every time the user attempts to build.
Is it possible for a custom project type to re-use the data I already have when the user attempts to build it using MSBuild? I know that I can replace MSBuild if I need to with some custom system that probably could handle this, but I would rather avoid that if possible.