Обновление документа roslyn - PullRequest
0 голосов
/ 28 апреля 2020

Итак, я создаю текстовый редактор с использованием Scintill aNET и использую Roslyn. У меня есть документ, и я хотел бы знать, эффективно ли использование Document.WithText. Есть ли лучший способ обновления документа каждый раз, когда пользователь вводит? Спасибо.

РЕДАКТИРОВАТЬ Хорошо, сейчас я сохраняю объект документа, и когда мне нужно показать автозаполнение, я просто делаю это:

private Document document;

if (document == null)
{
    var host = MefHostServices.Create(MefHostServices.DefaultAssemblies);
    var workspace = new AdhocWorkspace(host);
    var projectInfo = ProjectInfo.Create(ProjectId.CreateNewId(), VersionStamp.Create(), "Test", "Test", LanguageNames.CSharp).
       WithMetadataReferences(new[]
       {
   MetadataReference.CreateFromFile(typeof(object).Assembly.Location)
       });
    var project = workspace.AddProject(projectInfo);
    document = workspace.AddDocument(project.Id, "Test.cs", SourceText.From(editor.Text));
}
else
{
    document = document.WithText(SourceText.From(editor.Text));
}
...