Получение параметров функции из API завершения Roslyn - PullRequest
0 голосов
/ 12 февраля 2020

Я пытался использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...