Browse Source

Show type arguments in tooltip for TypeResolveResult.

newNRvisualizers
Daniel Grunwald 14 years ago
parent
commit
9598176ffd
  1. 8
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  2. 23
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/XmlDoc/XmlDocTooltipProvider.cs

8
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin

@ -154,9 +154,9 @@ @@ -154,9 +154,9 @@
<CSharpContextAction id = "GenerateGetter"
displayName = "Generate getter"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateGetter" />
<!--<CSharpContextAction id = "GenerateProperty"
<CSharpContextAction id = "GenerateProperty"
displayName = "Generate property"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateProperty" />-->
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateProperty" />
<CSharpContextAction id = "GenerateSwitchLabels"
displayName = "Generate switch labels"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateSwitchLabels" />
@ -175,9 +175,9 @@ @@ -175,9 +175,9 @@
<CSharpContextAction id = "RemoveBraces"
displayName = "Remove braces"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBraces" />
<!--<CSharpContextAction id = "RemoveRegion"
<CSharpContextAction id = "RemoveRegion"
displayName = "Remove #region"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRegion" />-->
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRegion" />
<CSharpContextAction id = "ReplaceEmptyString"
displayName = "Use string.Empty"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceEmptyString" />

23
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/XmlDoc/XmlDocTooltipProvider.cs

@ -25,7 +25,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.XmlDoc @@ -25,7 +25,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.XmlDoc
MemberResolveResult mrr = e.ResolveResult as MemberResolveResult;
LocalResolveResult lrr = e.ResolveResult as LocalResolveResult;
if (trr != null && trr.Type.GetDefinition() != null) {
e.SetToolTip(CreateTooltip(trr.Type.GetDefinition()));
e.SetToolTip(CreateTooltip(trr.Type));
} else if (mrr != null) {
e.SetToolTip(CreateTooltip(mrr.Member));
} else if (lrr != null) {
@ -64,6 +64,27 @@ namespace ICSharpCode.AvalonEdit.AddIn.XmlDoc @@ -64,6 +64,27 @@ namespace ICSharpCode.AvalonEdit.AddIn.XmlDoc
}
}
object CreateTooltip(IType type)
{
var ambience = AmbienceService.GetCurrentAmbience();
ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
string header = ambience.ConvertType(type);
ITypeDefinition entity = type.GetDefinition();
if (entity != null) {
var documentation = XmlDocumentationElement.Get(entity);
if (documentation != null) {
ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
DocumentationUIBuilder b = new DocumentationUIBuilder(ambience);
b.AddCodeBlock(header, keepLargeMargin: true);
foreach (var child in documentation.Children) {
b.AddDocumentationElement(child);
}
return new FlowDocumentTooltip(b.FlowDocument);
}
}
return header;
}
object CreateTooltip(IEntity entity)
{
var ambience = AmbienceService.GetCurrentAmbience();

Loading…
Cancel
Save