Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reason for PR
Wanting to move a project over from MSBuild.Full and
Microsoft.TextTemplating
, but needed to useT4ParameterValues
.Outline of key changes
T4.Build
to take in one or many--variable
arguments, using"Include=Value"
format.BuildTemplateGenerator
to enable support for a preprocessingFunc<>
, which is called between input file validation, and processing of template content.TemplateGenerator
methods, I had to pull that code into this class. Ideally,TemplateGenerator
could expose these asprotected
/virtual
, so that they can be overridden by implementers.StringBuilder
for preprocessing replacement (reduced allocations) so that we don't load up aStringBuilder
, and then have it generate the same string, if there are no variables to replace.Ancillary changes
build/common.targets
Item
types to search for transform files; better aligns withMicrosoft.TextTemplating
MSBuild.Microsoft.TextTemplating.targets
uses the exact list as added, and I was working on a separate project where the TT file was added asContent
, notNone
. Given that the sameGenerator
guard is used, this seemed safe.T4.Build/.gitignore
T4.Build/tools/*
files.Reference
and directImport
from another project to test and use these changes, and needed to directory junctionT4.Build/tools/
toT4.Build\bin\Debug\netcoreapp3.1\
so that the import/targets pathing aligned. Can remove if you don't like it.