Browse Source

Fixed bug: "Run Tests in Debugger" / "Run with NCover" / etc fail with warnings.

Fixed code-completion in anonymous methods when anonymous method was used as initializer in variable declaration.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1120 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
b89b1c599f
  1. 11
      src/AddIns/Misc/UnitTesting/Src/RunTestCommands.cs
  2. 2
      src/Libraries/NRefactory/Project/Src/Parser/Visitors/LookupTableVisitor.cs
  3. 26
      src/Main/Base/Project/Src/Commands/BuildCommands.cs
  4. 11
      src/Main/Base/Project/Src/Project/MSBuildEngine.cs

11
src/AddIns/Misc/UnitTesting/Src/RunTestCommands.cs

@ -14,6 +14,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Project.Commands;
namespace ICSharpCode.UnitTesting namespace ICSharpCode.UnitTesting
{ {
@ -31,13 +32,13 @@ namespace ICSharpCode.UnitTesting
if (project == null) { if (project == null) {
throw new ArgumentNullException("project"); throw new ArgumentNullException("project");
} }
MSBuildEngineCallback callback = delegate(System.CodeDom.Compiler.CompilerResults results) { BuildProject build = new BuildProject(project);
if (results.Errors.Count > 0) { build.BuildComplete += delegate {
return; if (MSBuildEngine.LastErrorCount == 0) {
RunTests(project, fixture, test);
} }
RunTests(project, fixture, test);
}; };
project.Build(callback); build.Run();
} }
protected abstract void RunTests(IProject project, IClass fixture, IMember test); protected abstract void RunTests(IProject project, IClass fixture, IMember test);

2
src/Libraries/NRefactory/Project/Src/Parser/Visitors/LookupTableVisitor.cs

@ -115,7 +115,7 @@ namespace ICSharpCode.NRefactory.Parser
(blockStack.Count == 0) ? new Point(-1, -1) : blockStack.Peek().EndLocation, (blockStack.Count == 0) ? new Point(-1, -1) : blockStack.Peek().EndLocation,
(localVariableDeclaration.Modifier & Modifier.Const) == Modifier.Const); (localVariableDeclaration.Modifier & Modifier.Const) == Modifier.Const);
} }
return data; return base.Visit(localVariableDeclaration, data);
} }
public override object Visit(AnonymousMethodExpression anonymousMethodExpression, object data) public override object Visit(AnonymousMethodExpression anonymousMethodExpression, object data)

26
src/Main/Base/Project/Src/Commands/BuildCommands.cs

@ -96,18 +96,32 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
public abstract class AbstractProjectBuildMenuCommand : AbstractBuildMenuCommand public abstract class AbstractProjectBuildMenuCommand : AbstractBuildMenuCommand
{ {
protected IProject targetProject;
protected IProject ProjectToBuild {
get {
return targetProject ?? ProjectService.CurrentProject;
}
}
public override bool CanRunBuild { public override bool CanRunBuild {
get { get {
return base.CanRunBuild return base.CanRunBuild && this.ProjectToBuild != null;
&& ProjectService.CurrentProject!=null;
} }
} }
} }
public class BuildProject : AbstractProjectBuildMenuCommand public class BuildProject : AbstractProjectBuildMenuCommand
{ {
public BuildProject()
{
}
public BuildProject(IProject targetProject)
{
this.targetProject = targetProject;
}
public override void StartBuild() public override void StartBuild()
{ {
ProjectService.CurrentProject.Build(CallbackMethod); this.ProjectToBuild.Build(CallbackMethod);
} }
public override void AfterBuild() public override void AfterBuild()
@ -120,7 +134,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{ {
public override void StartBuild() public override void StartBuild()
{ {
ProjectService.CurrentProject.Rebuild(CallbackMethod); this.ProjectToBuild.Rebuild(CallbackMethod);
} }
} }
@ -128,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{ {
public override void StartBuild() public override void StartBuild()
{ {
ProjectService.CurrentProject.Clean(CallbackMethod); this.ProjectToBuild.Clean(CallbackMethod);
} }
} }
@ -136,7 +150,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{ {
public override void StartBuild() public override void StartBuild()
{ {
ProjectService.CurrentProject.Publish(CallbackMethod); this.ProjectToBuild.Publish(CallbackMethod);
} }
} }

11
src/Main/Base/Project/Src/Project/MSBuildEngine.cs

@ -149,6 +149,7 @@ namespace ICSharpCode.SharpDevelop.Project
{ {
if (isRunning) { if (isRunning) {
CompilerResults results = new CompilerResults(null); CompilerResults results = new CompilerResults(null);
results.NativeCompilerReturnValue = -42;
results.Errors.Add(new CompilerError(null, 0, 0, null, "MSBuild is already running!")); results.Errors.Add(new CompilerError(null, 0, 0, null, "MSBuild is already running!"));
callback(results); callback(results);
} else { } else {
@ -161,7 +162,7 @@ namespace ICSharpCode.SharpDevelop.Project
class ThreadStarter class ThreadStarter
{ {
CompilerResults results = new CompilerResults(null); CompilerResults results;
string buildFile; string buildFile;
string[] targets; string[] targets;
MSBuildEngine engine; MSBuildEngine engine;
@ -169,6 +170,8 @@ namespace ICSharpCode.SharpDevelop.Project
public ThreadStarter(string buildFile, string[] targets, MSBuildEngine engine, MSBuildEngineCallback callback) public ThreadStarter(string buildFile, string[] targets, MSBuildEngine engine, MSBuildEngineCallback callback)
{ {
results = new CompilerResults(null);
results.NativeCompilerReturnValue = -1;
this.buildFile = buildFile; this.buildFile = buildFile;
this.targets = targets; this.targets = targets;
this.engine = engine; this.engine = engine;
@ -200,8 +203,12 @@ namespace ICSharpCode.SharpDevelop.Project
Microsoft.Build.BuildEngine.Project project = engine.CreateNewProject(); Microsoft.Build.BuildEngine.Project project = engine.CreateNewProject();
try { try {
project.Load(buildFile); project.Load(buildFile);
engine.BuildProject(project, targets); if (engine.BuildProject(project, targets))
results.NativeCompilerReturnValue = 0;
else
results.NativeCompilerReturnValue = 1;
} catch (InvalidProjectFileException ex) { } catch (InvalidProjectFileException ex) {
results.NativeCompilerReturnValue = -2;
results.Errors.Add(new CompilerError(ex.ProjectFile, ex.LineNumber, ex.ColumnNumber, ex.ErrorCode, ex.Message)); results.Errors.Add(new CompilerError(ex.ProjectFile, ex.LineNumber, ex.ColumnNumber, ex.ErrorCode, ex.Message));
} }

Loading…
Cancel
Save