public BuildToolsServer(
            IProject project,
            ICommunicationChannel channel,
            IOutputWindowManager outputWindow,
            IBuildErrorProcessor errorProcessor,
            IProjectSourceManager projectSources,
            UnconfiguredProject unconfiguredProject)
        {
            _project        = project;
            _channel        = channel;
            _outputWindow   = outputWindow;
            _errorProcessor = errorProcessor;
            _projectSources = projectSources;

            // Build integration is not implemented for VisualC projects
            if (unconfiguredProject?.Capabilities?.Contains("VisualC") != true)
            {
                _project.RunWhenLoaded((_) =>
                {
                    _serverLoopCts = new CancellationTokenSource();
                    VSPackage.TaskFactory.RunAsyncWithErrorHandling(RunServerLoopAsync);
                });
                _project.Unloaded += () => _serverLoopCts.Cancel();
            }

            _projectName = unconfiguredProject != null?Path.GetFileName(unconfiguredProject.FullPath) : "";
        }
 public BuildErrorProcessor(IProjectSourceManager sourceManager)
 {
     _sourceManager = sourceManager;
 }