Exemple #1
0
        protected DartAnalysisService CreateTestService()
        {
            var service = new DartAnalysisService(SdkFolder, ServerScript);

            service.SetServerSubscriptions(new[] { ServerService.Status }).Wait();

            return(service);
        }
Exemple #2
0
		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();
            }
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        private async Task <IDisposable> SubscribeAsync()
        {
            DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false);

            return(analysisService.AnalysisOutlineNotification.Where(en => en.File == file).Subscribe(UpdateSourceData));
        }
Exemple #6
0
        private async Task <IDisposable> SubscribeAsync(DartErrorListProvider errorProvider)
        {
            DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false);

            return(analysisService.AnalysisErrorsNotification.Subscribe(errorProvider.UpdateErrors));
        }
Exemple #7
0
 public static async Task WaitForAnalysis(this DartAnalysisService service)
 {
     await service
     .ServerStatusNotification
     .FirstAsync(n => n.Analysis != null && n.Analysis.IsAnalyzing == false);
 }
Exemple #8
0
        private async Task <IDisposable> SubscribeAsync()
        {
            DartAnalysisService analysisService = await analysisServiceFactory.GetAnalysisServiceAsync().ConfigureAwait(false);

            return(analysisService.AnalysisNavigationNotification.Where(en => en.File == textDocument.FilePath).Subscribe(UpdateNavigationData));
        }