<?xml version="1.0" encoding="utf-8" ?> 
<tipOfTheDay>
	<tip>That you can use CTRL-SHIFT-M to collapse all template code blocks.  This is useful to quickly see all static template content.</tip>
	<tip>That you can use CTRL-] when the cursor is located on a highlighted bracket to move to the matching bracket.</tip>
	<tip>That you can use CTRL-SHIFT-] when the cursor is located on a highlighted bracket to select the entire content between the matching brackets.</tip>
	<tip>That you can use CTRL-I to do an incremental search.</tip>
	<tip>That you can use cs.exe to generate code in the console or in a batch process.</tip>
	<tip>There is a batch mode in the console client that enables generation of multiple files at a time.</tip>
	<tip>That the PreserveRegions merge strategy lets you preserve custom code regions within a file while regenerating the rest of the file contents.</tip>
	<tip>That the InsertRegion merge strategy lets you take the result of a template execution and insert it into a named region within a file while preserving the rest of the file contents.</tip>
	<tip>That you can right-click on the property grid and save your template property settings to a property set XML file.</tip>
	<tip>That you can find hundreds of sample templates in the CodeSmith template share forum.</tip>
	<tip>That you can turn current line highlighting on in the options dialog.</tip>
	<tip>That you can set the default output file name of a template by overriding the GetFileName method.</tip>
	<tip>That there are several template event methods that you can override like OnInit, OnPreRender, OnPostRender to add custom logic.</tip>
	<tip>That the DbDocumenter sample templates are a great way to document your database schema.</tip>
	<tip>That the StoredProcedures.cst template can generate all of your standard create, retrieve, update, and delete stored procedures for a given table instantly.</tip>
	<tip>That you can use the Progress object to report template execution progress on long running templates.</tip>
	<tip>That you can use Trace.WriteLine to output messages to the Debug output window.</tip>
	<tip>That you can use Debugger.Break in your template to step through your template code.</tip>
	<tip>That the XmlProperty directive makes working with XML metadata a breeze.</tip>
	<tip>That CodeSmith can be extended in many ways including creating your own metadata property types and custom schema providers for SchemaExplorer.</tip>
	<tip>That you can reference sub-templates using the Register directive.</tip>
	<tip>That you can have as many source files as you want dynamically compiled with the template using the Assembly directive's Src attribute.</tip>
	<tip>That you can reference any assembly and import any namespace using the Assembly and Import directives.</tip>
	<tip>That you can create custom base classes for your templates to share common functionality and have multiple templates derive from the same base class.</tip>
	<tip>That you can use the CodeSmith.BaseTemplates.StringUtility.ToPlural() and CodeSmith.BaseTemplates.StringUtility.ToSingular() methods to change word forms of most words.</tip>
	<tip>That you can use the CodeSmith.Engine.PropertySerializerAttribute to designate the property serializer type for a custom property.</tip>
	<tip>That you can use the CodeSmith API to programmatically render templates.</tip>
</tipOfTheDay>