Commit Graph

5 Commits

Author SHA1 Message Date
Travis Parks 11b73b696e Pop Context When Exiting Tag
I was not removing context when I was leaving a tag. This caused the
context to grow indefinitely, which is not a valid representation of
where the placeholder was located in the template.
2013-04-25 08:46:03 -04:00
Travis Parks 42463a888f Provide context when placeholders found.
It could be useful to know the context when discovering a placeholder.
I also renamed MissingKeyEventArgs to KeyNotFoundEventArgs.
I created a new event KeyFoundEventArgs.
2013-04-24 21:21:00 -04:00
Travis Parks 790f856b44 Optimized text generation.
The way the code was implemented before, each block of text was
generating a string which was then being added to a StringBuilder. This
only improved performance within a block itself. Needing to then copy
the results of that builder into the parent tag's builder was wasteful.
Now, a single TextWriter is used for all tags. If a block needs to be
processed after-the-fact, the tag can indicate that it wants to provide
a new text writer and that it wants to consolidate the text.
2013-01-16 15:10:25 -05:00
Travis Parks f848d63d9a Handle Unknown Tags
I added code to detect unknown tags and throw an exception. I also
provided a default implementation so tags are in the global scope by
default.
2013-01-12 20:22:31 -05:00
Travis Parks 7d75c7a2e4 Implemented better custom tag handling.
I needed to make it easier to handle scopes and define custom tags,
including context-sensitive tags.
2013-01-12 14:53:12 -05:00