public void Initialize(IEventSource eventSource) { eventSource.ErrorRaised += (s, e) => { CompilerError ce = new CompilerError(building) { Cause = new CompilerException(e.Message), FilePath = e.File, IsWarning = false, LocationInFile = new Point(e.ColumnNumber, e.LineNumber), Message = e.Code + ": " + e.Message + " (in project " + e.ProjectFile + ")" + (!String.IsNullOrEmpty(e.HelpKeyword) ? ": " + e.HelpKeyword : String.Empty) }; errors.Add(ce); log.Add(ce); }; eventSource.WarningRaised += (s, e) => { if (Verbosity >= LoggerVerbosity.Minimal) { CompilerError ce = new CompilerError(building) { Cause = new CompilerWarning(e.Message), FilePath = e.File, IsWarning = true, LocationInFile = new Point(e.ColumnNumber, e.LineNumber), Message = e.Code + ": " + e.Message + " (in project " + e.ProjectFile + ")" + (!String.IsNullOrEmpty(e.HelpKeyword) ? ": " + e.HelpKeyword : String.Empty) }; errors.Add(ce); log.Add(ce); } }; #region commented event hooking (except checking if succeeded) eventSource.BuildFinished += (s, e) => { //if (Verbosity >= LoggerVerbosity.Normal) // log.Add("Build finished."); succeeded &= e.Succeeded; }; //eventSource.BuildStarted += (s, e) => //{ // if (Verbosity >= LoggerVerbosity.Normal) // log.Add("Build started."); //}; eventSource.ProjectFinished += (s, e) => { //if (Verbosity >= LoggerVerbosity.Normal) // log.Add("Project " + e.ProjectFile + " finished."); succeeded &= e.Succeeded; }; //eventSource.ProjectStarted += (s, e) => //{ // if (Verbosity >= LoggerVerbosity.Normal) // log.Add("Project " + e.ProjectFile + " started."); //}; eventSource.TargetFinished += (s, e) => { //if (Verbosity >= LoggerVerbosity.Detailed) // log.Add("Target " + e.TargetFile + " (" + e.TargetName + ") finished."); succeeded &= e.Succeeded; }; //eventSource.TargetStarted += (s, e) => //{ // if (Verbosity >= LoggerVerbosity.Detailed) // log.Add("Target " + e.TargetFile + " (" + e.TargetName + ") started."); //}; eventSource.TaskFinished += (s, e) => { //if (Verbosity >= LoggerVerbosity.Diagnostic) // log.Add("Task " + e.TaskFile + " (" + e.TaskName + ") finished."); succeeded &= e.Succeeded; }; //eventSource.TaskStarted += (s, e) => //{ // if (Verbosity >= LoggerVerbosity.Diagnostic) // log.Add("Task " + e.TaskFile + " (" + e.TaskName + ") started."); //}; eventSource.MessageRaised += (s, e) => { if (e.Importance == MessageImportance.Low && Verbosity >= LoggerVerbosity.Diagnostic || e.Importance == MessageImportance.Normal && Verbosity >= LoggerVerbosity.Detailed || e.Importance == MessageImportance.High && Verbosity >= LoggerVerbosity.Normal) log.Add(e.Message); }; eventSource.StatusEventRaised += (s, e) => { if (Verbosity >= LoggerVerbosity.Detailed) log.Add(e.Message); }; #endregion }
static void AddIfNotNull(CompilerError err, List<CompilerError> list) { if (err != null) list.Add(err); }