Roslyn GetDescriptionAsync дает неполное описание
Я пытаюсь изучить службу завершения кода Roslyn. Я могу получить список завершения, но когда я пытаюсь получить описание, он возвращает только модификаторы типа и доступа, но не фактическое описание (например, функция, используемая для печати на консоли).
Вот как я пытался получить описание:
var code = @"using System;
using TestDll;
public class MyClass
{
public static void MyMethod(int value)
{
Test.
}
}";
var projectInfo = ProjectInfo.Create(ProjectId.CreateNewId(), VersionStamp.Create(), "MyProject", "MyProject", LanguageNames.CSharp).
WithMetadataReferences(new[] { MetadataReference.CreateFromFile("TestDll.dll", documentation: XmlDocumentationProvider.CreateFromFile("TestDLL.xml")) });
var project = workspace.AddProject(projectInfo);
var document = workspace.AddDocument(project.Id, "MyFile.cs", SourceText.From(code));
await PrintCompletionResults(document, code.LastIndexOf("Test.") + 5);
Метод завершения печати
private static async Task PrintCompletionResults(Document document, int position)
{
var completionService = CompletionService.GetService(document);
var results = await completionService.GetCompletionsAsync(document, position);
foreach (var i in results.Items)
{
Console.WriteLine(i.DisplayText);
var desc = completionService.GetDescriptionAsync(document, i).Result; // returns for example "interface Test.DebugPrint()"
Console.WriteLine(desc.Text);
foreach (var prop in i.Properties)
{
Console.Write($"{prop.Key}:{prop.Value} ");
}
Console.WriteLine();
foreach (var tag in i.Tags)
{
Console.Write($"{tag} ");
}
Console.WriteLine();
Console.WriteLine();
}
}