public void NamespaceQuickInfo() { string testGd = @"NAMESPACE Pharmatechnik.Apotheke.XTplus.Verkauf.GUI "; var syntax = SyntaxFactory.ParseNamespaceSectionBeginSyntax(testGd); Assert.That(syntax.SyntaxTree, Is.Not.Null); Assert.That(syntax.SyntaxTree.Diagnostics.Length, Is.EqualTo(0)); var qiDef = QuickInfoProvider.GetQuickInfoDefinition(syntax.SyntaxTree, 0); Assert.That(qiDef, Is.Null); qiDef = QuickInfoProvider.GetQuickInfoDefinition(syntax.SyntaxTree, 12); Assert.That(qiDef, Is.Null); qiDef = QuickInfoProvider.GetQuickInfoDefinition(syntax.SyntaxTree, 13); Assert.That(qiDef, Is.Not.Null); Assert.That(qiDef.Glyph, Is.EqualTo(Glyph.Namespace)); Assert.That(qiDef.Content.JoinText(), Is.EqualTo("NAMESPACE Pharmatechnik.Apotheke.XTplus.Verkauf.GUI")); qiDef = QuickInfoProvider.GetQuickInfoDefinition(syntax.SyntaxTree, 27); Assert.That(qiDef, Is.Not.Null); qiDef = QuickInfoProvider.GetQuickInfoDefinition(syntax.SyntaxTree, 54); Assert.That(qiDef, Is.Not.Null); qiDef = QuickInfoProvider.GetQuickInfoDefinition(syntax.SyntaxTree, 55); Assert.That(qiDef, Is.Null); }
public async Task <QuickInfoItem> GetQuickInfoItemAsync(IAsyncQuickInfoSession session, CancellationToken cancellationToken) { await Task.Yield().ConfigureAwait(false); if (cancellationToken.IsCancellationRequested) { return(null); } var syntaxTreeAndSnapshot = ParserService.SyntaxTreeAndSnapshot; if (syntaxTreeAndSnapshot == null) { return(null); } // Map the trigger point down to our buffer. SnapshotPoint?triggerPoint = session.GetTriggerPoint(syntaxTreeAndSnapshot.Snapshot); if (triggerPoint == null) { return(null); } var qiInfo = QuickInfoProvider.GetQuickInfoDefinition(syntaxTreeAndSnapshot.SyntaxTree, triggerPoint.Value.Position); if (qiInfo == null) { return(null); } var applicableToSpan = syntaxTreeAndSnapshot.Snapshot.CreateTrackingSpan( qiInfo.ApplicableToExtent.Start, qiInfo.ApplicableToExtent.Length, SpanTrackingMode.EdgeExclusive); await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var qiContent = _textBlockBuilderService.ToTextBlock(qiInfo.Content); var controlControl = new SymbolQuickInfoControl { CrispImage = { Moniker = GdImageMonikers.GetMoniker(qiInfo.Glyph) }, TextContent = { Content = qiContent } }; var qiItem = new QuickInfoItem(applicableToSpan: applicableToSpan, item: controlControl ); return(qiItem); }