public void DisplayDeferredTargetStartedEvent()

in TeamCity.MSBuild.Logger/DeferredMessageWriter.cs [115:198]


        public void DisplayDeferredTargetStartedEvent(BuildEventContext e)
        {
            if (_context.Parameters.ShowOnlyErrors || _context.Parameters.ShowOnlyWarnings)
            {
                return;
            }

            var targetStartedEvent = _buildEventManager.GetTargetStartedEvent(e);
            if (targetStartedEvent == null || targetStartedEvent.ShowTargetFinishedEvent)
            {
                return;
            }

            targetStartedEvent.ShowTargetFinishedEvent = true;
            DisplayDeferredStartedEvents(targetStartedEvent.TargetBuildEventContext);
            var projectStartedEvent = _buildEventManager.GetProjectStartedEvent(e);
            if (projectStartedEvent == null)
            {
                throw new InvalidOperationException("Project Started should not be null in deferred target started");
            }

            var projectFile = projectStartedEvent.ProjectFile ?? string.Empty;
            string targetName;
            var shortTargetName = $"Target \"{targetStartedEvent.TargetName}\"";
            if (_context.IsVerbosityAtLeast(LoggerVerbosity.Diagnostic) || (_context.Parameters.ShowEventId ?? false))
            {
                targetName = _stringService.FormatResourceString("TargetMessageWithId", targetStartedEvent.TargetName, targetStartedEvent.TargetBuildEventContext.TargetId);
            }
            else
            {
                targetName = targetStartedEvent.TargetName;
            }

            if (_context.IsVerbosityAtLeast(LoggerVerbosity.Detailed))
            {
                if (string.Equals(projectFile, targetStartedEvent.TargetFile, StringComparison.OrdinalIgnoreCase))
                {
                    if (!string.IsNullOrEmpty(targetStartedEvent.ParentTarget))
                    {
                        _hierarchicalMessageWriter.StartBlock(shortTargetName);

                        _messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
                        _logWriter.SetColor(Color.BuildStage);
                        _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedProjectDepends", targetName, projectFile, targetStartedEvent.ParentTarget), true);
                    }
                    else
                    {
                        _hierarchicalMessageWriter.StartBlock(shortTargetName);

                        _messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
                        _logWriter.SetColor(Color.BuildStage);
                        _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedProjectEntry", targetName, projectFile), true);
                    }
                }
                else 
                    if (!string.IsNullOrEmpty(targetStartedEvent.ParentTarget))
                    {
                        _hierarchicalMessageWriter.StartBlock(shortTargetName);

                        _messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
                        _logWriter.SetColor(Color.BuildStage);
                        _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedFileProjectDepends", targetName, targetStartedEvent.TargetFile, projectFile, targetStartedEvent.ParentTarget), true);
                    }
                    else
                    {
                        _hierarchicalMessageWriter.StartBlock(shortTargetName);

                        _messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
                        _logWriter.SetColor(Color.BuildStage);
                        _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedFileProjectEntry", targetName, targetStartedEvent.TargetFile, projectFile), true);
                    }
            }
            else
            {
                _hierarchicalMessageWriter.StartBlock(shortTargetName);

                _messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
                _logWriter.SetColor(Color.BuildStage);
                _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedFileProjectEntry", targetName, targetStartedEvent.TargetFile, projectFile), true);
            }

            _logWriter.ResetColor();
            ShownBuildEventContext(e);
        }