public async Task Write(IApiNodeComparison apiComparison, TextWriter file, CancellationToken cancellationToken, int indentLevel = 0) { await WriteLineStart(apiComparison, file, indentLevel); await m_ApiNodeWriter.Write(apiComparison.Get(n => n), file, cancellationToken, false); var orderedMembers = MembersInCanonicalOrder(apiComparison); foreach (var member in orderedMembers) { await Write(member, file, cancellationToken, indentLevel + 1); } }
public async Task WriteHumanReadable(IEnumerable <IApiNode> nodes, FileInfo outputFile, CancellationToken cancellationToken) { using (var file = new StreamWriter(outputFile.FullName, false)) { file.WriteLine("This autogenerated file contains the binary-compatibility API. It can be checked into your VCS to help track changes."); file.WriteLine("- Edits and removals from this file are caused by binary-incompatible changes"); file.WriteLine("- Additions to this file are binary-compatible in most cases."); file.WriteLine("For more information, see: https://github.com/GrahamTheCoder/Semver-AssemblyCompatibility"); foreach (var node in nodes.OrderBy(n => n.Name)) { await m_ApiNodeWriter.Write(node, file, cancellationToken); } } }