Browse Source

Fixed forum-8965: "+=" code completion for events did not work if delegate was declared in source code.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3793 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
f0c3caffd7
  1. 14
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs
  2. 4
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/SystemTypes.cs
  3. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

14
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs

@ -6,6 +6,7 @@
// </file> // </file>
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
@ -328,16 +329,9 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary> /// </summary>
void DeleteChildNodes() void DeleteChildNodes()
{ {
if (Nodes.Count == 0) return; foreach (FileNode fileNode in Nodes.OfType<FileNode>().ToList()) {
fileNode.DeleteChildNodes(); // delete recursively
foreach (TreeNode node in Nodes) { FileService.RemoveFile(fileNode.FileName, false);
FileNode fileNode = node as FileNode;
if (fileNode != null) {
fileNode.DeleteChildNodes(); // delete recursively
FileService.RemoveFile(fileNode.FileName, false);
} else {
LoggingService.Warn("FileNode.DeleteChildren. Child is not a FileNode.");
}
} }
} }
} }

4
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/SystemTypes.cs

@ -15,6 +15,7 @@ namespace ICSharpCode.SharpDevelop.Dom
public readonly IReturnType Void; public readonly IReturnType Void;
public readonly IReturnType Object; public readonly IReturnType Object;
public readonly IReturnType Delegate; public readonly IReturnType Delegate;
public readonly IReturnType MulticastDelegate;
public readonly IReturnType ValueType; public readonly IReturnType ValueType;
public readonly IReturnType Enum; public readonly IReturnType Enum;
@ -39,6 +40,7 @@ namespace ICSharpCode.SharpDevelop.Dom
Void = new VoidReturnType(pc); Void = new VoidReturnType(pc);
Object = CreateFromName("System.Object"); Object = CreateFromName("System.Object");
Delegate = CreateFromName("System.Delegate"); Delegate = CreateFromName("System.Delegate");
MulticastDelegate = CreateFromName("System.MulticastDelegate");
ValueType = CreateFromName("System.ValueType"); ValueType = CreateFromName("System.ValueType");
Enum = CreateFromName("System.Enum"); Enum = CreateFromName("System.Enum");
@ -53,7 +55,7 @@ namespace ICSharpCode.SharpDevelop.Dom
Exception = CreateFromName("System.Exception"); Exception = CreateFromName("System.Exception");
AsyncCallback = CreateFromName("System.AsyncCallback"); AsyncCallback = CreateFromName("System.AsyncCallback");
IAsyncResult = CreateFromName("System.IAsyncResult"); IAsyncResult = CreateFromName("System.IAsyncResult");
IAsyncResult = CreateFromName("System.IDisposable"); IDisposable = CreateFromName("System.IDisposable");
} }
IReturnType CreateFromName(string name) IReturnType CreateFromName(string name)

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -472,7 +472,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
void CreateDelegate(DefaultClass c, string name, AST.TypeReference returnType, IList<AST.TemplateDefinition> templates, IList<AST.ParameterDeclarationExpression> parameters) void CreateDelegate(DefaultClass c, string name, AST.TypeReference returnType, IList<AST.TemplateDefinition> templates, IList<AST.ParameterDeclarationExpression> parameters)
{ {
c.BaseTypes.Add(c.ProjectContent.SystemTypes.Delegate); c.BaseTypes.Add(c.ProjectContent.SystemTypes.MulticastDelegate);
if (currentClass.Count > 0) { if (currentClass.Count > 0) {
DefaultClass cur = GetCurrentClass(); DefaultClass cur = GetCurrentClass();
cur.InnerClasses.Add(c); cur.InnerClasses.Add(c);

Loading…
Cancel
Save