private void BuildManyFilesToStdOut(IDiagnosticLogger logger, string[] bicepPaths) { using var writer = new JsonTextWriter(this.outputWriter) { Formatting = Formatting.Indented }; if (bicepPaths.Length > 1) { writer.WriteStartArray(); } foreach (var bicepPath in bicepPaths) { string text = File.ReadAllText(bicepPath); var lineStarts = TextCoordinateConverter.GetLineStarts(text); var compilation = new Compilation(SyntaxFactory.CreateFromText(text)); var emitter = new TemplateEmitter(compilation.GetSemanticModel()); var result = emitter.Emit(writer); foreach (var diagnostic in result.Diagnostics) { logger.LogDiagnostic(bicepPath, diagnostic, lineStarts); } } if (bicepPaths.Length > 1) { writer.WriteEndArray(); } }
private static bool LogDiagnosticsAndCheckSuccess(IDiagnosticLogger logger, Compilation compilation) { var success = true; foreach (var(syntaxTree, diagnostics) in compilation.GetAllDiagnosticsBySyntaxTree()) { foreach (var diagnostic in diagnostics) { logger.LogDiagnostic(syntaxTree.FileUri, diagnostic, syntaxTree.LineStarts); success &= diagnostic.Level != DiagnosticLevel.Error; } } return(success); }
private void LogDiagnostics(Compilation compilation) { if (compilation is null) { throw new Exception("Compilation is null. A compilation must exist before logging the diagnostics."); } foreach (var(syntaxTree, diagnostics) in compilation.GetAllDiagnosticsBySyntaxTree()) { foreach (var diagnostic in diagnostics) { diagnosticLogger.LogDiagnostic(syntaxTree.FileUri, diagnostic, syntaxTree.LineStarts); } } }
private static void BuildSingleFile(IDiagnosticLogger logger, string bicepPath, string outputPath) { string text = File.ReadAllText(bicepPath); var lineStarts = TextCoordinateConverter.GetLineStarts(text); var compilation = new Compilation(SyntaxFactory.CreateFromText(text)); var emitter = new TemplateEmitter(compilation.GetSemanticModel()); var result = emitter.Emit(outputPath); foreach (var diagnostic in result.Diagnostics) { logger.LogDiagnostic(bicepPath, diagnostic, lineStarts); } }
private void BuildSingleFile(IDiagnosticLogger logger, string bicepPath, string outputPath) { string text = ReadFile(bicepPath); var lineStarts = TextCoordinateConverter.GetLineStarts(text); var compilation = new Compilation(resourceTypeProvider, SyntaxFactory.CreateFromText(text)); var emitter = new TemplateEmitter(compilation.GetSemanticModel()); using var outputStream = CreateFileStream(outputPath); var result = emitter.Emit(outputStream); foreach (var diagnostic in result.Diagnostics) { logger.LogDiagnostic(bicepPath, diagnostic, lineStarts); } }