Я пытался использовать API завершения для создания функции автозаполнения. Результаты приходят правильно, но я не могу получить подписи метода. Например: если я наберу "string." , API вернет мне все методы, такие как "Format" , "Compare" , но после строки " .Format (" не возвращает все возможные сигнатуры методов, такие как Format (String, Object), Format (String, Object []) et c. Может кто-нибудь помочь мне в достижении этого
var expression = "String.";
var code = String.Format(CultureInfo.InvariantCulture,
@"
Imports System
Sub Main(args As String[])
Dim typeUnderInvestigation As String = {0}
End sub
", expression);
var projectInfo = ProjectInfo.Create(ProjectId.CreateNewId(), VersionStamp.Create(), "MyProject", "MyProject", LanguageNames.VisualBasic)
.WithMetadataReferences(new[]
{
MetadataReference.CreateFromFile(typeof(object).Assembly.Location)
});
var project = workspace.AddProject(projectInfo);
var document = workspace.AddDocument(project.Id, "MyFile.cs", SourceText.From(code));
// position is the last occurrence of "Guid." in our test code
// in real life scenarios the editor surface should inform us
// about the current cursor position
var position = code.LastIndexOf(expression, StringComparison.InvariantCulture) + expression.Length;
var completionService = CompletionService.GetService(document);
var results = await completionService.GetCompletionsAsync(document, position);