public AddOverload ( MonoDevelop.Ide.CodeCompletion.CompletionData data, |
||
data | MonoDevelop.Ide.CodeCompletion.CompletionData | |
cancelToken | ||
return | Task |
public async Task AddOverload (CompletionData data, CancellationToken cancelToken)
{
try {
var tooltipInformation = await data.CreateTooltipInformation (false, cancelToken);
if (tooltipInformation == null || tooltipInformation.IsEmpty || cancelToken.IsCancellationRequested)
return;
using (var layout = new Pango.Layout (PangoContext)) {
layout.FontDescription = Theme.Font;
layout.SetMarkup (tooltipInformation.SignatureMarkup);
int w, h;
layout.GetPixelSize (out w, out h);
if (w >= Allocation.Width - 10) {
tooltipInformation = await data.CreateTooltipInformation (true, cancelToken);
}
}
if (cancelToken.IsCancellationRequested)
return;
AddOverload (tooltipInformation);
} catch (Exception e) {
LoggingService.LogError ("Error while adding overload : " + data, e);
}
}
TooltipInformationWindow::AddOverload ( MonoDevelop.Ide.CodeCompletion.TooltipInformation tooltipInformation ) : void |
protected override Window CreateTooltipWindow (TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item) { var doc = IdeApp.Workbench.ActiveDocument; if (doc == null) return null; var titem = item.Item as TTI; if (titem == null) return null; var result = new TooltipInformationWindow (); result.ShowArrow = true; foreach(var i in AmbiguousType.TryDissolve(titem.t)) { if (i == null) continue; var tooltipInformation = TooltipInfoGen.Create(i, editor.ColorStyle); if (tooltipInformation != null && !string.IsNullOrEmpty(tooltipInformation.SignatureMarkup)) result.AddOverload(tooltipInformation); } if (result.Overloads < 1) { result.Dispose (); return null; } result.RepositionWindow (); return result; }