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.") }))); }
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())))); }
/// <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)); }