private void GenerateCode(SourceGeneratorContext context) { foreach (CodeGenerationConfigBuilder builder in _config.Builders) { if (builder.Input == null || builder.Output == null) { _logger.LogError("Skipping generation", "Input or ouput object is not provided.", null); continue; } foreach (INamedItem @object in _renderEngine.GetMatchedObjects(context, _visitor, builder)) { RenderResultModel renderResult = _renderEngine.RenderMatch(@object, builder); if (renderResult != null) { _generationEngine.AddToCurrentGeneration(renderResult); } else { _logger.LogError("Skipping generation", "File failed to render.", null); continue; } } _generationEngine.PublishGeneration(context); } }