protected DartAnalysisService CreateTestService() { var service = new DartAnalysisService(SdkFolder, ServerScript); service.SetServerSubscriptions(new[] { ServerService.Status }).Wait(); return(service); }
protected DartAnalysisService CreateTestService() { var service = new DartAnalysisService(SdkFolder, ServerScript); service.SetServerSubscriptions(new[] { ServerService.Status }).Wait(); return service; }
async Task StartTooltipRequestAsync(IQuickInfoSession session, IList <object> quickInfoContent, ITrackingSpan applicableToSpan, SnapshotPoint?triggerPoint, string filePath) { // If this position didn't have a classification, then it's uninteresting, and won't have tooltips. if (applicableToSpan == null) { return; } // Set the position so we know what request is in process. inProgressPosition = triggerPoint.Value.Position; inProgressTooltipData = null; inProgressApplicableToSpan = null; // Put dummy content in tooltip while the request in in-flight. quickInfoContent.Add("Loading..."); // Fire off a request to the service to get the data. DartAnalysisService analysisService = await provider.DartAnalysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false); HoverInformation[] hovers = await analysisService.GetHover(filePath, triggerPoint.Value.Position); // Build the tooltip info if the response was valid. var tooltipData = BuildTooltip(hovers); if (!string.IsNullOrWhiteSpace(tooltipData)) { // Stash the data for the next call, and tell VS to reclaculate now that we have the good info. inProgressTooltipData = tooltipData; inProgressApplicableToSpan = buffer.CurrentSnapshot.CreateTrackingSpan(hovers[0].Offset, hovers[0].Length, SpanTrackingMode.EdgeInclusive); session.Recalculate(); } else { // Otherwise, no valid response, means no tooltip. session.Dismiss(); } }
protected override async Task <IDisposable> SubscribeAsync(Action <AnalysisErrorsNotification> updateSourceData) { DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false); return(analysisService.AnalysisErrorsNotification.Where(en => en.File == textDocument.FilePath).Subscribe(updateSourceData)); }
private async Task <IDisposable> SubscribeAsync() { DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false); return(analysisService.AnalysisOutlineNotification.Where(en => en.File == file).Subscribe(UpdateSourceData)); }
private async Task <IDisposable> SubscribeAsync(DartErrorListProvider errorProvider) { DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false); return(analysisService.AnalysisErrorsNotification.Subscribe(errorProvider.UpdateErrors)); }
public static async Task WaitForAnalysis(this DartAnalysisService service) { await service .ServerStatusNotification .FirstAsync(n => n.Analysis != null && n.Analysis.IsAnalyzing == false); }
private async Task <IDisposable> SubscribeAsync() { DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false); return(analysisService.AnalysisNavigationNotification.Where(en => en.File == textDocument.FilePath).Subscribe(UpdateNavigationData)); }