|
|
|
@ -56,13 +56,13 @@ namespace ICSharpCode.ILSpy
@@ -56,13 +56,13 @@ namespace ICSharpCode.ILSpy
|
|
|
|
|
if (node is EventTreeNode eventNode && (!eventNode.IsPublicAPI || !IsAccessible(eventNode.EventDefinition))) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
if (node is FieldTreeNode fieldNode && (!fieldNode.IsPublicAPI || !IsAccessible(fieldNode.FieldDefinition))) |
|
|
|
|
if (node is FieldTreeNode fieldNode && (!fieldNode.IsPublicAPI || !IsAccessible(fieldNode.FieldDefinition) || IsDelegateOrEnumMember(fieldNode.FieldDefinition))) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
if (node is PropertyTreeNode propertyNode && (!propertyNode.IsPublicAPI || !IsAccessible(propertyNode.PropertyDefinition))) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
if (node is MethodTreeNode methodNode && (!methodNode.IsPublicAPI || !IsAccessible(methodNode.MethodDefinition))) |
|
|
|
|
if (node is MethodTreeNode methodNode && (!methodNode.IsPublicAPI || !IsAccessible(methodNode.MethodDefinition) || IsDelegateOrEnumMember(methodNode.MethodDefinition))) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
if (node is NamespaceTreeNode namespaceNode && string.IsNullOrEmpty(namespaceNode.Name)) |
|
|
|
@ -87,6 +87,20 @@ namespace ICSharpCode.ILSpy
@@ -87,6 +87,20 @@ namespace ICSharpCode.ILSpy
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool IsDelegateOrEnumMember(IMember member) |
|
|
|
|
{ |
|
|
|
|
if (member.DeclaringTypeDefinition == null) |
|
|
|
|
return false; |
|
|
|
|
switch (member.DeclaringTypeDefinition.Kind) |
|
|
|
|
{ |
|
|
|
|
case TypeKind.Delegate: |
|
|
|
|
case TypeKind.Enum: |
|
|
|
|
return true; |
|
|
|
|
default: |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void Execute(TextViewContext context) |
|
|
|
|
{ |
|
|
|
|
if (context.SelectedTreeNodes != null) |
|
|
|
@ -102,19 +116,16 @@ namespace ICSharpCode.ILSpy
@@ -102,19 +116,16 @@ namespace ICSharpCode.ILSpy
|
|
|
|
|
{ |
|
|
|
|
var address = string.Empty; |
|
|
|
|
|
|
|
|
|
var namespaceNode = node as NamespaceTreeNode; |
|
|
|
|
if (namespaceNode != null) |
|
|
|
|
if (node is NamespaceTreeNode namespaceNode) |
|
|
|
|
{ |
|
|
|
|
address = string.Format(msdnAddress, namespaceNode.Name); |
|
|
|
|
|
|
|
|
|
if (node is IMemberTreeNode memberNode) |
|
|
|
|
} |
|
|
|
|
else if (node is IMemberTreeNode memberNode) |
|
|
|
|
{ |
|
|
|
|
var member = memberNode.Member; |
|
|
|
|
var memberName = string.Empty; |
|
|
|
|
|
|
|
|
|
if (member.DeclaringType == null) |
|
|
|
|
memberName = member.FullName; |
|
|
|
|
else |
|
|
|
|
memberName = string.Format("{0}.{1}", member.DeclaringType.FullName, member.Name); |
|
|
|
|
var memberName = member.ReflectionName.Replace('`', '-').Replace('+', '.'); |
|
|
|
|
if (memberName.EndsWith("..ctor", System.StringComparison.Ordinal)) |
|
|
|
|
memberName = memberName.Substring(0, memberName.Length - 5) + "-ctor"; |
|
|
|
|
|
|
|
|
|
address = string.Format(msdnAddress, memberName); |
|
|
|
|
} |
|
|
|
|