public void AugmentQuickInfoSession(IQuickInfoSession session, System.Collections.Generic.IList <object> quickInfoContent, out ITrackingSpan applicableToSpan) { if (_curSession != null && !_curSession.IsDismissed) { _curSession.Dismiss(); _curSession = null; } _curSession = session; _curSession.Dismissed += CurSessionDismissed; if (_provider._PublicFunctionProvider != null) { _provider._PublicFunctionProvider.SetFilename(_textBuffer.GetFilePath()); } if (_provider._DatabaseInfoProvider != null) { _provider._DatabaseInfoProvider.SetFilename(_textBuffer.GetFilePath()); } var vars = _textBuffer.CurrentSnapshot.AnalyzeExpression( session.CreateTrackingSpan(_textBuffer), false, _provider._PublicFunctionProvider, _provider._DatabaseInfoProvider, _provider._ProgramFileProvider ); AugmentQuickInfoWorker(session, _textBuffer, _viewAdapter, vars, quickInfoContent, out applicableToSpan); }
private ExpressionAnalysis AnalyzeExpression(IQuickInfoSession session) { return VsProjectAnalyzer.AnalyzeExpression( _textBuffer.CurrentSnapshot, session.CreateTrackingSpan(_textBuffer), false ); }
private ExpressionAnalysis AnalyzeExpression(IQuickInfoSession session) { return(VsProjectAnalyzer.AnalyzeExpression( _textBuffer.CurrentSnapshot, session.CreateTrackingSpan(_textBuffer), false )); }
public void AugmentQuickInfoSession(IQuickInfoSession session, System.Collections.Generic.IList<object> quickInfoContent, out ITrackingSpan applicableToSpan) { var textBuffer = session.TextView.TextBuffer; var vars = _provider._Analyzer.AnalyzeExpression( textBuffer.CurrentSnapshot, textBuffer, session.CreateTrackingSpan(textBuffer) ); applicableToSpan = vars.Span; if (String.IsNullOrEmpty(vars.Expression)) { return; } bool first = true; var result = new StringBuilder(); int count = 0; List<IAnalysisValue> listVars = new List<IAnalysisValue>(vars.Values); HashSet<string> descriptions = new HashSet<string>(); bool multiline = false; foreach (var v in listVars) { string description = null; if (listVars.Count == 1) { if (v.Description != null) { description = v.Description; } } else { if (v.ShortDescription != null) { description = v.ShortDescription; } } if (descriptions.Add(description)) { if (first) { first = false; } else { if (result.Length == 0 || result[result.Length - 1] != '\n') { result.Append(", "); } else { multiline = true; } } result.Append(description); count++; } } if (multiline) { result.Insert(0, vars.Expression + ": " + Environment.NewLine); } else { result.Insert(0, vars.Expression + ": "); } quickInfoContent.Add(result.ToString()); }
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); }
public void AugmentQuickInfoSession(IQuickInfoSession session, System.Collections.Generic.IList<object> quickInfoContent, out ITrackingSpan applicableToSpan) { if (_curSession != null && !_curSession.IsDismissed) { _curSession.Dismiss(); _curSession = null; } _curSession = session; _curSession.Dismissed += CurSessionDismissed; var vars = _textBuffer.CurrentSnapshot.AnalyzeExpression( session.CreateTrackingSpan(_textBuffer), false ); AugmentQuickInfoWorker(vars, quickInfoContent, out applicableToSpan); }
public void AugmentQuickInfoSession(IQuickInfoSession session, System.Collections.Generic.IList <object> quickInfoContent, out ITrackingSpan applicableToSpan) { if (_curSession != null && !_curSession.IsDismissed) { _curSession.Dismiss(); _curSession = null; } _curSession = session; _curSession.Dismissed += CurSessionDismissed; var vars = _textBuffer.CurrentSnapshot.AnalyzeExpression( _provider._serviceProvider, session.CreateTrackingSpan(_textBuffer), false ); AugmentQuickInfoWorker(vars, quickInfoContent, out applicableToSpan); }
public void AugmentQuickInfoSession(IQuickInfoSession session, System.Collections.Generic.IList <object> quickInfoContent, out ITrackingSpan applicableToSpan) { var vars = _textBuffer.CurrentSnapshot.AnalyzeExpression( session.CreateTrackingSpan(_textBuffer), false ); applicableToSpan = vars.Span; if (applicableToSpan == null || String.IsNullOrWhiteSpace(vars.Expression)) { return; } bool first = true; var result = new StringBuilder(); int count = 0; List <IAnalysisValue> listVars = new List <IAnalysisValue>(vars.Values); HashSet <string> descriptions = new HashSet <string>(); bool multiline = false; foreach (var v in listVars) { string description = null; if (listVars.Count == 1) { if (v.Description != null) { description = v.Description; } } else { if (v.ShortDescription != null) { description = v.ShortDescription; } } if (descriptions.Add(description)) { if (first) { first = false; } else { if (result.Length == 0 || result[result.Length - 1] != '\n') { result.Append(", "); } else { multiline = true; } } result.Append(description); count++; } } if (multiline) { result.Insert(0, vars.Expression + ": " + Environment.NewLine); } else { result.Insert(0, vars.Expression + ": "); } quickInfoContent.Add(result.ToString()); }