public UIElement?GetUIElement(Completion itemToRender, ICompletionSession context, UIElementType elementType) { if (elementType != UIElementType.Tooltip) { return(null); } if (lastAsyncToolTipContentWeakReference?.Target is AsyncToolTipContent lastAsyncToolTipContent && lastAsyncToolTipContent.Session == context) { lastAsyncToolTipContent.Cancel(); lastAsyncToolTipContentWeakReference = null; } var roslynCompletion = itemToRender as RoslynCompletion; if (roslynCompletion is null) { return(null); } var roslynCollection = context.SelectedCompletionSet as RoslynCompletionSet; Debug.Assert(!(roslynCollection is null)); if (roslynCollection is null) { return(null); } const bool colorize = true; var result = new AsyncToolTipContent(this, roslynCollection, roslynCompletion, context, taggedTextElementProviderService, colorize); lastAsyncToolTipContentWeakReference = result.IsDisposed ? null : new WeakReference(result); return(result); }
public UIElement GetUIElement(Completion itemToRender, ICompletionSession context, UIElementType elementType) { if (elementType != UIElementType.Tooltip) { return(null); } var lastAsyncToolTipContent = lastAsyncToolTipContentWeakReference?.Target as AsyncToolTipContent; if (lastAsyncToolTipContent?.Session == context) { lastAsyncToolTipContent.Cancel(); lastAsyncToolTipContentWeakReference = null; } var roslynCompletion = itemToRender as RoslynCompletion; if (roslynCompletion == null) { return(null); } var roslynCollection = context.SelectedCompletionCollection as RoslynCompletionCollection; Debug.Assert(roslynCollection != null); if (roslynCollection == null) { return(null); } var result = new AsyncToolTipContent(this, roslynCollection, roslynCompletion, context, taggedTextElementProviderService, themeClassificationTypeService); lastAsyncToolTipContentWeakReference = result.IsDisposed ? null : new WeakReference(result); return(result); }