コード例 #1
0
        private static void WriteRazorDirective(RazorDirectiveSyntax node, StringBuilder builder)
        {
            if (node.DirectiveDescriptor == null)
            {
                return;
            }

            builder.Append("Directive:{");
            builder.Append(node.DirectiveDescriptor.Directive);
            builder.Append(";");
            builder.Append(node.DirectiveDescriptor.Kind);
            builder.Append(";");
            builder.Append(node.DirectiveDescriptor.Usage);
            builder.Append("}");

            var diagnostics = node.GetDiagnostics();

            if (diagnostics.Length > 0)
            {
                builder.Append(" [");
                var ids = string.Join(", ", diagnostics.Select(diagnostic => $"{diagnostic.Id}{diagnostic.Span}"));
                builder.Append(ids);
                builder.Append("]");
            }

            builder.Append(" - ");
        }
コード例 #2
0
        private void WriteRazorDirective(RazorDirectiveSyntax node)
        {
            if (node.DirectiveDescriptor == null)
            {
                return;
            }

            var builder = new StringBuilder("Directive:{");

            builder.Append(node.DirectiveDescriptor.Directive);
            builder.Append(';');
            builder.Append(node.DirectiveDescriptor.Kind);
            builder.Append(';');
            builder.Append(node.DirectiveDescriptor.Usage);
            builder.Append('}');

            var diagnostics = node.GetDiagnostics();

            if (diagnostics.Length > 0)
            {
                builder.Append(" [");
                var ids = string.Join(", ", diagnostics.Select(diagnostic => $"{diagnostic.Id}{diagnostic.Span}"));
                builder.Append(ids);
                builder.Append(']');
            }

            WriteSeparator();
            Write(builder.ToString());
        }
コード例 #3
0
            public override void VisitRazorDirective(RazorDirectiveSyntax node)
            {
                IntermediateNode directiveNode;
                var descriptor = node.DirectiveDescriptor;

                if (descriptor != null)
                {
                    var diagnostics = node.GetDiagnostics();

                    // This is an extensible directive.
                    if (IsMalformed(diagnostics))
                    {
                        directiveNode = new MalformedDirectiveIntermediateNode()
                        {
                            DirectiveName = descriptor.Directive,
                            Directive     = descriptor,
                            Source        = BuildSourceSpanFromNode(node),
                        };
                    }
                    else
                    {
                        directiveNode = new DirectiveIntermediateNode()
                        {
                            DirectiveName = descriptor.Directive,
                            Directive     = descriptor,
                            Source        = BuildSourceSpanFromNode(node),
                        };
                    }

                    for (var i = 0; i < diagnostics.Length; i++)
                    {
                        directiveNode.Diagnostics.Add(diagnostics[i]);
                    }

                    _builder.Push(directiveNode);
                }

                Visit(node.Body);

                if (descriptor != null)
                {
                    _builder.Pop();
                }
            }