Browse Source

Reuse analyze code. Show event icon on the bar.

pull/219/head
Eusebiu Marcu 14 years ago
parent
commit
fe9b4a841a
  1. 22
      ILSpy/Bookmarks/Commands.cs
  2. 2
      ILSpy/Bookmarks/MemberBookmark.cs
  3. 43
      ILSpy/TreeNodes/Analyzer/AnalyzeContextMenuEntry.cs

22
ILSpy/Bookmarks/Commands.cs

@ -38,26 +38,12 @@ namespace ICSharpCode.ILSpy.Bookmarks @@ -38,26 +38,12 @@ namespace ICSharpCode.ILSpy.Bookmarks
public void Execute(IBookmark[] marks)
{
foreach (var node in marks) {
if (!(node is MemberBookmark))
foreach (var mark in marks) {
if (!(mark is MemberBookmark))
continue;
var member = (node as MemberBookmark).Node.Annotation<MemberReference>();
TypeDefinition type = member as TypeDefinition;
if (type != null)
AnalyzerTreeView.Instance.Show(new AnalyzedTypeTreeNode(type));
FieldDefinition field = member as FieldDefinition;
if (field != null)
AnalyzerTreeView.Instance.Show(new AnalyzedFieldTreeNode(field));
MethodDefinition method = member as MethodDefinition;
if (method != null)
AnalyzerTreeView.Instance.Show(new AnalyzedMethodTreeNode(method));
var propertyAnalyzer = AnalyzedPropertyTreeNode.TryCreateAnalyzer(member);
if (propertyAnalyzer != null)
AnalyzerTreeView.Instance.Show(propertyAnalyzer);
var eventAnalyzer = AnalyzedEventTreeNode.TryCreateAnalyzer(member);
if (eventAnalyzer != null)
AnalyzerTreeView.Instance.Show(eventAnalyzer);
var member = (mark as MemberBookmark).Node.Annotation<MemberReference>();
AnalyzeContextMenuEntry.Analyze(member);
}
}
}

2
ILSpy/Bookmarks/MemberBookmark.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.ILSpy.Bookmarks @@ -44,7 +44,7 @@ namespace ICSharpCode.ILSpy.Bookmarks
if (node is PropertyDeclaration)
return GetMemberOverlayedImage(attrNode, MemberIcon.Property);
if (node is EventDeclaration)
if (node is EventDeclaration || node is CustomEventDeclaration)
return GetMemberOverlayedImage(attrNode, MemberIcon.Event);
if (node is IndexerDeclaration)

43
ILSpy/TreeNodes/Analyzer/AnalyzeContextMenuEntry.cs

@ -35,10 +35,10 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -35,10 +35,10 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
{
foreach (IMemberTreeNode node in selectedNodes) {
if (!(node.Member is TypeDefinition
|| node.Member is FieldDefinition
|| node.Member is MethodDefinition
|| Analyzer.AnalyzedPropertyTreeNode.CanShow(node.Member)
|| Analyzer.AnalyzedEventTreeNode.CanShow(node.Member)))
|| node.Member is FieldDefinition
|| node.Member is MethodDefinition
|| Analyzer.AnalyzedPropertyTreeNode.CanShow(node.Member)
|| Analyzer.AnalyzedEventTreeNode.CanShow(node.Member)))
return false;
}
@ -50,22 +50,27 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -50,22 +50,27 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
// TODO: figure out when equivalent nodes are already present
// and focus those instead.
foreach (IMemberTreeNode node in selectedNodes) {
TypeDefinition type = node.Member as TypeDefinition;
if (type != null)
AnalyzerTreeView.Instance.Show(new AnalyzedTypeTreeNode(type));
FieldDefinition field = node.Member as FieldDefinition;
if (field != null)
AnalyzerTreeView.Instance.Show(new AnalyzedFieldTreeNode(field));
MethodDefinition method = node.Member as MethodDefinition;
if (method != null)
AnalyzerTreeView.Instance.Show(new AnalyzedMethodTreeNode(method));
var propertyAnalyzer = Analyzer.AnalyzedPropertyTreeNode.TryCreateAnalyzer(node.Member);
if (propertyAnalyzer != null)
AnalyzerTreeView.Instance.Show(propertyAnalyzer);
var eventAnalyzer = Analyzer.AnalyzedEventTreeNode.TryCreateAnalyzer(node.Member);
if (eventAnalyzer != null)
AnalyzerTreeView.Instance.Show(eventAnalyzer);
Analyze(node.Member);
}
}
public static void Analyze(MemberReference member)
{
TypeDefinition type = member as TypeDefinition;
if (type != null)
AnalyzerTreeView.Instance.Show(new AnalyzedTypeTreeNode(type));
FieldDefinition field = member as FieldDefinition;
if (field != null)
AnalyzerTreeView.Instance.Show(new AnalyzedFieldTreeNode(field));
MethodDefinition method = member as MethodDefinition;
if (method != null)
AnalyzerTreeView.Instance.Show(new AnalyzedMethodTreeNode(method));
var propertyAnalyzer = Analyzer.AnalyzedPropertyTreeNode.TryCreateAnalyzer(member);
if (propertyAnalyzer != null)
AnalyzerTreeView.Instance.Show(propertyAnalyzer);
var eventAnalyzer = Analyzer.AnalyzedEventTreeNode.TryCreateAnalyzer(member);
if (eventAnalyzer != null)
AnalyzerTreeView.Instance.Show(eventAnalyzer);
}
}
}

Loading…
Cancel
Save