public string GetQuickInfoTargetFullName() { IWpfTextView wpfTextView; if (_textBuffer.Properties.TryGetProperty <IWpfTextView>(typeof(IWpfTextView), out wpfTextView)) { if (_provider._PublicFunctionProvider != null) { _provider._PublicFunctionProvider.SetFilename(_textBuffer.GetFilePath()); } if (_provider._DatabaseInfoProvider != null) { _provider._DatabaseInfoProvider.SetFilename(_textBuffer.GetFilePath()); } ExpressionAnalysis expression = null; if (_curSession == null) { var trackingSpan = wpfTextView.Caret.Position.CreateTrackingSpan(_textBuffer); expression = _textBuffer.CurrentSnapshot.AnalyzeExpression( trackingSpan, false, _provider._PublicFunctionProvider, _provider._DatabaseInfoProvider, _provider._ProgramFileProvider ); } else { expression = _textBuffer.CurrentSnapshot.AnalyzeExpression( _curSession.CreateTrackingSpan(_textBuffer), false, _provider._PublicFunctionProvider, _provider._DatabaseInfoProvider, _provider._ProgramFileProvider ); } if (expression != null && expression.Span != null) { return(expression.Span.GetSpan(_textBuffer.CurrentSnapshot).GetText()); } } return(null); }
internal static void AugmentQuickInfoWorker(IQuickInfoSession session, ITextBuffer subjectBuffer, IVsTextView viewAdapter, ExpressionAnalysis exprAnalysis, System.Collections.Generic.IList <object> quickInfoContent, out ITrackingSpan applicableToSpan) { applicableToSpan = exprAnalysis.Span; if (applicableToSpan == null || String.IsNullOrWhiteSpace(exprAnalysis.Expression)) { return; } bool first = true; var result = new StringBuilder(); int count = 0; IAnalysisResult val = exprAnalysis.Value; if (val != null) { DTE dte = (DTE)VSGeneroPackage.Instance.GetPackageService(typeof(DTE)); if (dte.Debugger.CurrentMode != dbgDebugMode.dbgBreakMode || !val.CanGetValueFromDebugger) { quickInfoContent.Add(val.Documentation); } else { string qiText; if (TryGetQuickInfoFromDebugger(session, applicableToSpan.GetSpan(subjectBuffer.CurrentSnapshot), viewAdapter, out qiText)) { quickInfoContent.Add(qiText); } } } }