Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/addins/MonoDeveloperExtensions/MonoSolutionItemHandler.cs')
-rw-r--r--main/src/addins/MonoDeveloperExtensions/MonoSolutionItemHandler.cs42
1 files changed, 23 insertions, 19 deletions
diff --git a/main/src/addins/MonoDeveloperExtensions/MonoSolutionItemHandler.cs b/main/src/addins/MonoDeveloperExtensions/MonoSolutionItemHandler.cs
index d43e15eb86..9636ac7e1c 100644
--- a/main/src/addins/MonoDeveloperExtensions/MonoSolutionItemHandler.cs
+++ b/main/src/addins/MonoDeveloperExtensions/MonoSolutionItemHandler.cs
@@ -36,6 +36,7 @@ using MonoDevelop.Core.ProgressMonitoring;
using MonoDevelop.Ide;
using MonoDevelop.Projects;
using MonoDevelop.Projects.Extensions;
+using System.Threading.Tasks;
namespace MonoDeveloper
{
@@ -73,8 +74,9 @@ namespace MonoDeveloper
}
}
- public void Save (MonoDevelop.Core.IProgressMonitor monitor)
+ public Task Save (MonoDevelop.Core.ProgressMonitor monitor)
{
+ return Task.FromResult (0);
}
internal void Read (MonoMakefile mkfile)
@@ -171,7 +173,7 @@ namespace MonoDeveloper
static Regex regexError = new Regex (@"^(\s*(?<file>.*)\((?<line>\d*)(,(?<column>\d*[\+]*))?\)(:|)\s+)*(?<level>\w+)\s*(?<number>.*):\s(?<message>.*)",
RegexOptions.Compiled | RegexOptions.ExplicitCapture);
- public BuildResult RunTarget (MonoDevelop.Core.IProgressMonitor monitor, string target, ConfigurationSelector configuration)
+ public Task<BuildResult> RunTarget (MonoDevelop.Core.ProgressMonitor monitor, string target, ConfigurationSelector configuration)
{
if (target == ProjectService.BuildTarget)
target = "all";
@@ -180,28 +182,30 @@ namespace MonoDeveloper
DotNetProjectConfiguration conf = (DotNetProjectConfiguration) project.GetConfiguration (configuration);
- using (var output = new StringWriter ()) {
- using (var tw = new LogTextWriter ()) {
- tw.ChainWriter (output);
- tw.ChainWriter (monitor.Log);
+ return Task<BuildResult>.Factory.StartNew (delegate {
+ using (var output = new StringWriter ()) {
+ using (var tw = new LogTextWriter ()) {
+ tw.ChainWriter (output);
+ tw.ChainWriter (monitor.Log);
- using (ProcessWrapper proc = Runtime.ProcessService.StartProcess ("make", "PROFILE=" + conf.Id + " " + target, conf.OutputDirectory, monitor.Log, tw, null))
- proc.WaitForOutput ();
+ using (ProcessWrapper proc = Runtime.ProcessService.StartProcess ("make", "PROFILE=" + conf.Id + " " + target, conf.OutputDirectory, monitor.Log, tw, null))
+ proc.WaitForOutput ();
- tw.UnchainWriter (output);
- tw.UnchainWriter (monitor.Log);
+ tw.UnchainWriter (output);
+ tw.UnchainWriter (monitor.Log);
- CompilerResults cr = new CompilerResults (null);
- string[] lines = output.ToString().Split ('\n');
- foreach (string line in lines) {
- CompilerError err = CreateErrorFromString (line);
- if (err != null) cr.Errors.Add (err);
- }
+ CompilerResults cr = new CompilerResults (null);
+ string[] lines = output.ToString ().Split ('\n');
+ foreach (string line in lines) {
+ CompilerError err = CreateErrorFromString (line);
+ if (err != null)
+ cr.Errors.Add (err);
+ }
- return new BuildResult (cr, output.ToString());
+ return new BuildResult (cr, output.ToString ());
+ }
}
- }
-
+ });
}
private CompilerError CreateErrorFromString (string error_string)