Browse Source

Merge pull request #2343 from yyjdelete/msdn

Fix url of SearchMsdn when do search with generic types and .ctor methods
pull/2344/head
Siegfried Pammer 4 years ago committed by GitHub
parent
commit
24ddd7bf8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 35
      ILSpy/Commands/SearchMsdnContextMenuEntry.cs

35
ILSpy/Commands/SearchMsdnContextMenuEntry.cs

@ -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);
}

Loading…
Cancel
Save