public DefaultCodeRenderingContext( CodeWriter codeWriter, IntermediateNodeWriter nodeWriter, RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode, RazorCodeGenerationOptions options) { if (codeWriter == null) { throw new ArgumentNullException(nameof(codeWriter)); } if (nodeWriter == null) { throw new ArgumentNullException(nameof(nodeWriter)); } if (codeDocument == null) { throw new ArgumentNullException(nameof(codeDocument)); } if (documentNode == null) { throw new ArgumentNullException(nameof(documentNode)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } CodeWriter = codeWriter; _codeDocument = codeDocument; _documentNode = documentNode; Options = options; _ancestors = new Stack <IntermediateNode>(); Diagnostics = new RazorDiagnosticCollection(); Items = new ItemCollection(); SourceMappings = new List <SourceMapping>(); var diagnostics = _documentNode.GetAllDiagnostics(); for (var i = 0; i < diagnostics.Count; i++) { Diagnostics.Add(diagnostics[i]); } _scopes = new List <ScopeInternal>(); _scopes.Add(new ScopeInternal(nodeWriter)); }
private static void ReadDiagnostic(JsonReader reader, RazorDiagnosticCollection diagnostics) { if (!reader.Read()) { return; } if (reader.TokenType != JsonToken.StartObject) { return; } string id = default; int severity = default; string message = default; SourceSpan sourceSpan = default; reader.ReadProperties(propertyName => { switch (propertyName) { case nameof(RazorDiagnostic.Id): if (reader.Read()) { id = (string)reader.Value; } break; case nameof(RazorDiagnostic.Severity): severity = reader.ReadAsInt32().Value; break; case "Message": if (reader.Read()) { message = (string)reader.Value; } break; case nameof(RazorDiagnostic.Span): sourceSpan = ReadSourceSpan(reader); break; } }); var descriptor = new RazorDiagnosticDescriptor(id, () => message, (RazorDiagnosticSeverity)severity); var diagnostic = RazorDiagnostic.Create(descriptor, sourceSpan); diagnostics.Add(diagnostic); }
public DefaultCodeRenderingContext( CodeWriter codeWriter, IntermediateNodeWriter nodeWriter, RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode, RazorCodeGenerationOptions options) { if (codeWriter == null) { throw new ArgumentNullException(nameof(codeWriter)); } if (nodeWriter == null) { throw new ArgumentNullException(nameof(nodeWriter)); } if (codeDocument == null) { throw new ArgumentNullException(nameof(codeDocument)); } if (documentNode == null) { throw new ArgumentNullException(nameof(documentNode)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } CodeWriter = codeWriter; _codeDocument = codeDocument; _documentNode = documentNode; Options = options; _ancestors = new Stack <IntermediateNode>(); Diagnostics = new RazorDiagnosticCollection(); Items = new ItemCollection(); SourceMappings = new List <SourceMapping>(); var diagnostics = _documentNode.GetAllDiagnostics(); for (var i = 0; i < diagnostics.Count; i++) { Diagnostics.Add(diagnostics[i]); } var newLineString = codeDocument.Items[NewLineString]; if (newLineString != null) { // Set new line character to a specific string regardless of platform, for testing purposes. codeWriter.NewLine = (string)newLineString; } Items[NewLineString] = codeDocument.Items[NewLineString]; Items[SuppressUniqueIds] = codeDocument.Items[SuppressUniqueIds]; _scopes = new List <ScopeInternal>(); _scopes.Add(new ScopeInternal(nodeWriter)); }