public void WriteTo(ObjectWriter writer) { writer.WriteString(SerializationFormat); writer.WriteBoolean(_isCaseSensitive); writer.WriteInt32(_hashFunctionCount); _bitArray.WriteTo(writer); }
public override void WriteTo(CompilationOptions options, ObjectWriter writer, CancellationToken cancellationToken) { WriteCompilationOptionsTo(options, writer, cancellationToken); var csharpOptions = (CSharpCompilationOptions)options; writer.WriteValue(csharpOptions.Usings.ToArray()); writer.WriteBoolean(csharpOptions.AllowUnsafe); }
public void SerializeDocumentSnapshotInfo(DocumentChecksumObjectInfo info, ObjectWriter writer, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); SerializeDocumentId(info.Id, writer, cancellationToken); writer.WriteString(info.Name); writer.WriteValue(info.Folders.ToArray()); writer.WriteInt32((int)info.SourceCodeKind); writer.WriteString(info.FilePath); writer.WriteBoolean(info.IsGenerated); }
protected void WriteCompilationOptionsTo(CompilationOptions options, ObjectWriter writer, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); writer.WriteInt32((int)options.OutputKind); writer.WriteBoolean(options.ReportSuppressedDiagnostics); writer.WriteString(options.ModuleName); writer.WriteString(options.MainTypeName); writer.WriteString(options.ScriptClassName); writer.WriteInt32((int)options.OptimizationLevel); writer.WriteBoolean(options.CheckOverflow); // REVIEW: is it okay this being not part of snapshot? writer.WriteString(options.CryptoKeyContainer); writer.WriteString(options.CryptoKeyFile); writer.WriteValue(options.CryptoPublicKey.ToArray()); writer.WriteBoolean(options.DelaySign.HasValue); if (options.DelaySign.HasValue) { writer.WriteBoolean(options.DelaySign.Value); } writer.WriteInt32((int)options.Platform); writer.WriteInt32((int)options.GeneralDiagnosticOption); writer.WriteInt32(options.WarningLevel); // REVIEW: I don't think there is a guarantee on ordering of elements in the immutable dictionary. // unfortunately, we need to sort them to make it deterministic writer.WriteInt32(options.SpecificDiagnosticOptions.Count); foreach (var kv in options.SpecificDiagnosticOptions.OrderBy(o => o.Key)) { writer.WriteString(kv.Key); writer.WriteInt32((int)kv.Value); } writer.WriteBoolean(options.ConcurrentBuild); writer.WriteBoolean(options.Deterministic); writer.WriteBoolean(options.PublicSign); // REVIEW: What should I do with these. we probably need to implement either out own one // or somehow share these as service.... // // XmlReferenceResolver xmlReferenceResolver // SourceReferenceResolver sourceReferenceResolver // MetadataReferenceResolver metadataReferenceResolver // AssemblyIdentityComparer assemblyIdentityComparer // StrongNameProvider strongNameProvider }
public void WriteTo(ObjectWriter writer) { Id.WriteTo(writer); // TODO: figure out a way to send version info over as well // info.Version.WriteTo(writer); writer.WriteString(Name); writer.WriteString(AssemblyName); writer.WriteString(Language); writer.WriteString(FilePath); writer.WriteString(OutputFilePath); writer.WriteBoolean(IsSubmission); writer.WriteBoolean(HasAllInformation); // TODO: once CompilationOptions, ParseOptions, ProjectReference, MetadataReference, AnalyzerReference supports // serialization, we should include those here as well. }
private void WriteTo(MetadataReferenceProperties properties, ObjectWriter writer, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); writer.WriteInt32((int)properties.Kind); writer.WriteValue(properties.Aliases.ToArray()); writer.WriteBoolean(properties.EmbedInteropTypes); }
private void WriteTo(Stream stream, ImmutableArray<DiagnosticData> items, CancellationToken cancellationToken) { using (var writer = new ObjectWriter(stream, cancellationToken: cancellationToken)) { writer.WriteInt32(FormatVersion); AnalyzerVersion.WriteTo(writer); Version.WriteTo(writer); writer.WriteInt32(items.Length); foreach (var item in items) { cancellationToken.ThrowIfCancellationRequested(); writer.WriteString(item.Id); writer.WriteString(item.Category); writer.WriteString(item.Message); writer.WriteString(item.ENUMessageForBingSearch); writer.WriteString(item.Title); writer.WriteString(item.Description); writer.WriteString(item.HelpLink); writer.WriteInt32((int)item.Severity); writer.WriteInt32((int)item.DefaultSeverity); writer.WriteBoolean(item.IsEnabledByDefault); writer.WriteBoolean(item.IsSuppressed); writer.WriteInt32(item.WarningLevel); if (item.HasTextSpan) { // document state writer.WriteInt32(item.TextSpan.Start); writer.WriteInt32(item.TextSpan.Length); } else { // project state writer.WriteInt32(0); writer.WriteInt32(0); } WriteTo(writer, item.DataLocation, cancellationToken); WriteTo(writer, item.AdditionalLocations, cancellationToken); writer.WriteInt32(item.CustomTags.Count); foreach (var tag in item.CustomTags) { writer.WriteString(tag); } writer.WriteInt32(item.Properties.Count); foreach (var property in item.Properties) { writer.WriteString(property.Key); writer.WriteString(property.Value); } } } }
private static void WriteTo(ObjectWriter writer, DiagnosticDataLocation item, CancellationToken cancellationToken) { if (item == null) { writer.WriteBoolean(false); return; } else { writer.WriteBoolean(true); } if (item.SourceSpan.HasValue) { writer.WriteBoolean(true); writer.WriteInt32(item.SourceSpan.Value.Start); writer.WriteInt32(item.SourceSpan.Value.Length); } else { writer.WriteBoolean(false); } writer.WriteString(item.OriginalFilePath); writer.WriteInt32(item.OriginalStartLine); writer.WriteInt32(item.OriginalStartColumn); writer.WriteInt32(item.OriginalEndLine); writer.WriteInt32(item.OriginalEndColumn); writer.WriteString(item.MappedFilePath); writer.WriteInt32(item.MappedStartLine); writer.WriteInt32(item.MappedStartColumn); writer.WriteInt32(item.MappedEndLine); writer.WriteInt32(item.MappedEndColumn); }
public void SerializeProjectReference(ProjectReference reference, ObjectWriter writer, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); reference.ProjectId.WriteTo(writer); writer.WriteValue(reference.Aliases.ToArray()); writer.WriteBoolean(reference.EmbedInteropTypes); }
public void WriteTo(ObjectWriter writer) { Id.WriteTo(writer); writer.WriteString(Name); writer.WriteValue(Folders.ToArray()); writer.WriteInt32((int)SourceCodeKind); writer.WriteString(FilePath); writer.WriteBoolean(IsGenerated); }
protected virtual void WriteTo(ObjectWriter writer) { writer.WriteValue(this.messageProvider); writer.WriteCompressedUInt((uint)this.errorCode); writer.WriteBoolean(this.isWarningAsError); int count = (this.arguments != null) ? arguments.Length : 0; writer.WriteCompressedUInt((uint)count); if (count > 0) { foreach (var arg in this.arguments) { writer.WriteString(arg.ToString()); } } }
public void WriteTo(ObjectWriter writer) { writer.WriteString(SerializationFormat); _version.WriteTo(writer); writer.WriteInt32(_nodes.Count); foreach (var node in _nodes) { writer.WriteString(node.Name); writer.WriteInt32(node.ParentIndex); } if (_lazySpellChecker.IsValueCreated) { writer.WriteBoolean(true); _lazySpellChecker.Value.WriteTo(writer); } else { writer.WriteBoolean(false); } }