internal static Task <ITrackingSpan> AugmentQuickInfoSessionAsync(this QuickInfoSource quickInfoSource, AstRoot ast, int caretPosition, IQuickInfoSession quickInfoSession, IList <object> quickInfoContent) { var tcs = new TaskCompletionSource <ITrackingSpan>(); ITrackingSpan applicableSpan; var ready = quickInfoSource.AugmentQuickInfoSession(ast, caretPosition, quickInfoSession, quickInfoContent, out applicableSpan, (o, p) => { ITrackingSpan result; quickInfoSource.AugmentQuickInfoSession(ast, caretPosition, quickInfoSession, quickInfoContent, out result, null, p); tcs.TrySetResult(result); }, null); if (ready) { tcs.TrySetResult(applicableSpan); } return(tcs.Task); }
internal static Task <ITrackingSpan> AugmentQuickInfoSessionAsync( this QuickInfoSource quickInfoSource , AstRoot ast , ITextBuffer textBuffer , int position , IQuickInfoSession quickInfoSession , IList <object> quickInfoContent) { var tcs = new TaskCompletionSource <ITrackingSpan>(); var ready = quickInfoSource.AugmentQuickInfoSession(ast, textBuffer, position, quickInfoSession, quickInfoContent, out ITrackingSpan applicableSpan, (infos, o) => { QuickInfoSource.GetCachedSignatures(quickInfoContent, textBuffer, position, infos, out ITrackingSpan result); tcs.TrySetResult(result); }); if (ready) { tcs.TrySetResult(applicableSpan); } return(tcs.Task); }