Browse Source

Implement CSharpLanguage.GetTooltip

pull/863/head
Siegfried Pammer 8 years ago
parent
commit
eaa58f186f
  1. 47
      ILSpy/Languages/CSharpLanguage.cs

47
ILSpy/Languages/CSharpLanguage.cs

@ -487,31 +487,30 @@ namespace ICSharpCode.ILSpy
public override string GetTooltip(MemberReference member) public override string GetTooltip(MemberReference member)
{ {
MethodDefinition md = member as MethodDefinition; var decompilerTypeSystem = new DecompilerTypeSystem(member.Module);
PropertyDefinition pd = member as PropertyDefinition; ISymbol symbol;
EventDefinition ed = member as EventDefinition; switch (member) {
FieldDefinition fd = member as FieldDefinition; case MethodReference mr:
if (md != null || pd != null || ed != null || fd != null) { symbol = decompilerTypeSystem.Resolve(mr);
/*AstBuilder b = new AstBuilder(new DecompilerContext(member.Module) { Settings = new DecompilerSettings { UsingDeclarations = false } }); if (symbol == null) return base.GetTooltip(member);
b.DecompileMethodBodies = false; break;
if (md != null) case PropertyReference pr:
b.AddMethod(md); symbol = decompilerTypeSystem.Resolve(pr);
else if (pd != null) if (symbol == null) return base.GetTooltip(member);
b.AddProperty(pd); break;
else if (ed != null) case EventReference er:
b.AddEvent(ed); symbol = decompilerTypeSystem.Resolve(er);
else if (symbol == null) return base.GetTooltip(member);
b.AddField(fd); break;
b.RunTransformations(); case FieldReference fr:
foreach (var attribute in b.SyntaxTree.Descendants.OfType<AttributeSection>()) symbol = decompilerTypeSystem.Resolve(fr);
attribute.Remove(); if (symbol == null) return base.GetTooltip(member);
break;
StringWriter w = new StringWriter(); default:
b.GenerateCode(new PlainTextOutput(w));
return Regex.Replace(w.ToString(), @"\s+", " ").TrimEnd();*/
}
return base.GetTooltip(member); return base.GetTooltip(member);
} }
var flags = ConversionFlags.All & ~ConversionFlags.ShowBody;
return new CSharpAmbience() { ConversionFlags = flags }.ConvertSymbol(symbol);
}
} }
} }

Loading…
Cancel
Save