コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }