Пример #1
0
        protected override async Task <CompletionDescription> GetDescriptionWorkerAsync(Document document, CompletionItem item, CancellationToken cancellationToken)
        {
            var lspClient = _roslynLspClientServiceFactory.ActiveLanguageServerClient;

            if (lspClient == null)
            {
                return(await base.GetDescriptionWorkerAsync(document, item, cancellationToken).ConfigureAwait(false));
            }

            if (!item.Properties.TryGetValue("ResolveData", out var serializedItem))
            {
                return(await base.GetDescriptionWorkerAsync(document, item, cancellationToken).ConfigureAwait(false));
            }

            var completionItem         = JToken.Parse(serializedItem).ToObject <RoslynCompletionItem>();
            var request                = new LspRequest <RoslynCompletionItem, RoslynCompletionItem>(LSP.Methods.TextDocumentCompletionResolveName);
            var resolvedCompletionItem = await lspClient.RequestAsync(request, completionItem, cancellationToken).ConfigureAwait(false);

            if (resolvedCompletionItem?.Description == null)
            {
                return(await base.GetDescriptionWorkerAsync(document, item, cancellationToken).ConfigureAwait(false));
            }

            var parts = resolvedCompletionItem.Description.Select(tt => tt.ToTaggedText()).AsImmutable();

            return(CompletionDescription.Create(parts));
        }
 public override async Task <CompletionDescription> GetDescriptionAsync(Document document, CompletionItem item, CancellationToken cancellationToken)
 {
     return(CompletionDescription.Create(ImmutableArray.Create(new TaggedText[] {
         new TaggedText(TextTags.Text, "Just a shortcut for the "),
         new TaggedText(TextTags.Class, "Task"),
         new TaggedText(TextTags.Method, ".ConfigureAwait"),
         new TaggedText(TextTags.Text, " method.")
     })));
 }
Пример #3
0
        public override Task <CompletionDescription> GetDescriptionAsync(Document document, CompletionItem item, CancellationToken cancellationToken)
        {
            if (!item.Properties.TryGetValue(DescriptionKey, out var description))
            {
                return(SpecializedTasks.Default <CompletionDescription>());
            }

            return(Task.FromResult(CompletionDescription.Create(
                                       ImmutableArray.Create(new TaggedText(TextTags.Text, description)))));
        }
        public override Task <CompletionDescription> GetDescriptionAsync(Document document, CompletionItem item, CancellationToken cancellationToken)
        {
            List <TaggedText> taggedTexts = new List <TaggedText>();

            for (int i = 1; i < item.Tags.Length; i = 2 + i)
            {
                taggedTexts.Add(new TaggedText(item.Tags[i], item.Tags[i + 1]));
            }
            return(Task.FromResult(CompletionDescription.Create(ImmutableArray.Create(taggedTexts.ToArray()))));
        }
Пример #5
0
        /// <inheritdoc />
        public override Task <CompletionDescription> GetDescriptionAsync(
            Document document, CompletionItem item, CancellationToken cancellationToken)
        {
            if (!item.Properties.TryGetValue(nameof(CommentsElement.Description), out string description))
            {
                return(Task.FromResult(CompletionDescription.Empty));
            }

            return(Task.FromResult(CompletionDescription.Create(ImmutableArray.Create(new TaggedText[] {
                new TaggedText(TextTags.Text, description)
            }))));
        }
        public override Task <CompletionDescription> GetDescriptionAsync(Document document, CompletionItem item, CancellationToken cancellationToken)
        {
            if (document == null)
            {
                throw new ArgumentNullException(nameof(document));
            }

            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var descriptionContent = new List <TaggedText>();

            if (item.Properties.TryGetValue(DescriptionKey, out var directiveDescription))
            {
                var descriptionText = new TaggedText(TextTags.Text, directiveDescription);
                descriptionContent.Add(descriptionText);
            }

            var completionDescription = CompletionDescription.Create(descriptionContent.ToImmutableArray());

            return(Task.FromResult(completionDescription));
        }