private static void WriteRuleHasNoChanges(IProjectLoggerBatch logger)
 {
     logger.WriteLine("No changes.");
 }
 private static void WriteRuleFooter(IProjectLoggerBatch logger, string ruleName)
 {
     logger.IndentLevel--;
 }
 private void WriteFooter(IProjectLoggerBatch logger, IProjectVersionedValue <IProjectSubscriptionUpdate> update)
 {
     logger.IndentLevel--;
     logger.WriteLine();
     logger.WriteLine("Finished language service changes for '{0}' [{1}]", _project.FullPath, update.Value.ProjectConfiguration.Name);
 }
 private static void WriteRuleHeader(IProjectLoggerBatch logger, string ruleName)
 {
     logger.WriteLine();
     logger.WriteLine("Processing rule '{0}'...", ruleName);
     logger.IndentLevel++;
 }
 private static void LogProperties(IProjectLoggerBatch logger, string heading, ProjectProperties projectProperties)
 {
     IEnumerable<string> properties = projectProperties.Cast<ProjectProperty>()
             .Select(prop => $"{prop.Name}:{prop.Value}");
     logger.WriteLine($"{heading} -- ({string.Join(" | ", properties)})");
 }