System.Web.Razor.RazorDebugHelpers.WriteDebugTree C# (CSharp) Method

WriteDebugTree() static private method

static private WriteDebugTree ( string sourceFile, System.Web.Razor.Parser.SyntaxTree.Block document, PartialParseResult result, System.Web.Razor.Text.TextChange change, System.Web.Razor.RazorEditorParser parser, bool treeStructureChanged ) : void
sourceFile string
document System.Web.Razor.Parser.SyntaxTree.Block
result PartialParseResult
change System.Web.Razor.Text.TextChange
parser System.Web.Razor.RazorEditorParser
treeStructureChanged bool
return void
        internal static void WriteDebugTree(string sourceFile, Block document, PartialParseResult result, TextChange change, RazorEditorParser parser, bool treeStructureChanged)
        {
            if (!OutputDebuggingEnabled)
            {
                return;
            }

            RunTask(() =>
            {
                string outputFileName = Normalize(sourceFile) + "_tree";
                string outputPath = Path.Combine(Path.GetDirectoryName(sourceFile), outputFileName);

                var treeBuilder = new StringBuilder();
                WriteTree(document, treeBuilder);
                treeBuilder.AppendLine();
                treeBuilder.AppendFormat(CultureInfo.CurrentCulture, "Last Change: {0}", change);
                treeBuilder.AppendLine();
                treeBuilder.AppendFormat(CultureInfo.CurrentCulture, "Normalized To: {0}", change.Normalize());
                treeBuilder.AppendLine();
                treeBuilder.AppendFormat(CultureInfo.CurrentCulture, "Partial Parse Result: {0}", result);
                treeBuilder.AppendLine();
                if (result.HasFlag(PartialParseResult.Rejected))
                {
                    treeBuilder.AppendFormat(CultureInfo.CurrentCulture, "Tree Structure Changed: {0}", treeStructureChanged);
                    treeBuilder.AppendLine();
                }
                if (result.HasFlag(PartialParseResult.AutoCompleteBlock))
                {
                    treeBuilder.AppendFormat(CultureInfo.CurrentCulture, "Auto Complete Insert String: \"{0}\"", parser.GetAutoCompleteString());
                    treeBuilder.AppendLine();
                }
                File.WriteAllText(outputPath, treeBuilder.ToString());
            });
        }

Usage Example

Example #1
0
        private void OnDocumentParseComplete(DocumentParseCompleteEventArgs args)
        {
            Debug.Assert(args != null, "Event arguments cannot be null");
            EventHandler <DocumentParseCompleteEventArgs> handler = DocumentParseComplete;

            if (handler != null)
            {
                handler(this, args);
            }
#if DEBUG
            RazorDebugHelpers.WriteDebugTree(FileName, args.GeneratorResults.Document, PartialParseResult.Rejected, args.SourceChange, this, args.TreeStructureChanged);
            RazorDebugHelpers.WriteGeneratedCode(FileName, args.GeneratorResults.GeneratedCode);
#endif
        }
All Usage Examples Of System.Web.Razor.RazorDebugHelpers::WriteDebugTree