[svn] r7674: vs-plugin/trunk/Nemerle.VsIntegration/Project: NemerleIdeBuildLogger.cs NemerleProjectNode.cs

VladD2 svnadmin at nemerle.org
Sun May 13 06:54:39 CEST 2007


Log:
Improve build output.

Author: VladD2
Date: Sun May 13 06:54:37 2007
New Revision: 7674

Modified:
   vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleIdeBuildLogger.cs
   vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs

Modified: vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleIdeBuildLogger.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleIdeBuildLogger.cs	(original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleIdeBuildLogger.cs	Sun May 13 06:54:37 2007
@@ -274,6 +274,8 @@
 				task.Line, task.Column, task.Line, task.Column);
 		}
 
+		System.Diagnostics.Stopwatch _timer;
+
 		/// <summary>
 		/// This is the delegate for BuildStartedHandler events.
 		/// </summary>
@@ -284,6 +286,8 @@
 
 			// Remove all errors and warnings since we are rebuilding
 			_taskProvider.Tasks.Clear();
+
+			_timer = System.Diagnostics.Stopwatch.StartNew();
 		}
 
 		/// <summary>
@@ -294,8 +298,30 @@
 		private void BuildFinishedHandler(object sender, BuildFinishedEventArgs buildEvent)
 		{
 			LogEvent(sender, buildEvent);
+			if (OutputWindowPane != null && !String.IsNullOrEmpty(buildEvent.Message))
+			{
+				StringBuilder msg = new StringBuilder(_currentIndent + buildEvent.Message.Length + 1);
+				if (_currentIndent > 0)
+					msg.Append('\t', _currentIndent);
+
+				msg.Append(_buildTargetName ?? "Build");
+				msg.Append(buildEvent.Succeeded ? " succeeded -- " : " failed -- ");
+
+				if (!buildEvent.Succeeded)
+					msg.Append(TaskCount(TaskErrorCategory.Error) + "errors, ");
+
+				msg.AppendLine(TaskCount(TaskErrorCategory.Warning) + " warnings. Build took: "
+					+ _timer.Elapsed + ".");
+
+				OutputWindowPane.OutputStringThreadSafe(msg.ToString());
+			}
 		}
 
+		public string BuildTargetName
+		{
+			get { return _buildTargetName; } set { _buildTargetName = value; }
+		}
+		string _buildTargetName;
 
 		/// <summary>
 		/// This is the delegate for ProjectStartedHandler events.
@@ -421,16 +447,16 @@
 		private void LogEvent(object sender, BuildEventArgs buildEvent)
 		{
 			// Fill in the Message text
-			if (OutputWindowPane != null && !String.IsNullOrEmpty(buildEvent.Message))
+			if (OutputWindowPane != null && !String.IsNullOrEmpty(buildEvent.Message)
+				&& LogAtImportance(MessageImportance.Low))
 			{
 				StringBuilder msg = new StringBuilder(_currentIndent + buildEvent.Message.Length + 1);
 				if (_currentIndent > 0)
 					msg.Append('\t', _currentIndent);
 
-				string txt = buildEvent.Message.TrimEnd('.');
+				string txt = buildEvent.Message;
 
-				msg.AppendLine(txt + " -- " + TaskCount(TaskErrorCategory.Error) + " errors, "
-					+ TaskCount(TaskErrorCategory.Warning) + " warnings");
+				msg.AppendLine(txt);
 
 				OutputWindowPane.OutputStringThreadSafe(msg.ToString());
 			}

Modified: vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs	(original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs	Sun May 13 06:54:37 2007
@@ -185,6 +185,12 @@
 
 		#region Overridden Methods
 
+		protected override MSBuildResult InvokeMsBuild(string target)
+		{
+			((NemerleIdeBuildLogger)BuildLogger).BuildTargetName = target;
+			return base.InvokeMsBuild(target);
+		}
+
 		/// <summary>
 		/// Gets the automation object for the project node.
 		/// </summary>



More information about the svn mailing list