private void UpdateBuffer(Document document, SpanChange spanSource, out SourceTextContainer container, out Document documentBackedByTextBuffer) { if (_previewWorkspace != null) { _previewWorkspace.CloseDocument(_currentDocument, _previewWorkspace.CurrentSolution.GetDocument(_currentDocument).GetTextAsync().Result); // Put the new document into the current preview solution var updatedSolution = _previewWorkspace.CurrentSolution.WithDocumentText(document.Id, document.GetTextAsync().Result); var updatedDocument = updatedSolution.GetDocument(document.Id); ApplyDocumentToBuffer(updatedDocument, spanSource, out container, out documentBackedByTextBuffer); _previewWorkspace.TryApplyChanges(documentBackedByTextBuffer.Project.Solution); _previewWorkspace.OpenDocument(document.Id); _currentDocument = document.Id; } else { _currentDocument = document.Id; ApplyDocumentToBuffer(document, spanSource, out container, out documentBackedByTextBuffer); _previewWorkspace = new PreviewDialogWorkspace(documentBackedByTextBuffer.Project.Solution); _previewWorkspace.OpenDocument(document.Id); } }
private void UpdateBuffer(TextDocument document, SpanChange spanSource, out SourceTextContainer container, out TextDocument documentBackedByTextBuffer) { if (_previewWorkspace != null) { var currentDocument = _previewWorkspace.CurrentSolution.GetTextDocument(_currentDocument); var currentDocumentText = currentDocument.GetTextAsync().Result; _previewWorkspace.CloseDocument(currentDocument, currentDocumentText); // Put the new document into the current preview solution. var updatedSolution = _previewWorkspace.CurrentSolution.WithTextDocumentText(document.Id, document.GetTextAsync().Result); var updatedDocument = updatedSolution.GetTextDocument(document.Id); ApplyDocumentToBuffer(updatedDocument, spanSource, out container, out documentBackedByTextBuffer); _previewWorkspace.TryApplyChanges(documentBackedByTextBuffer.Project.Solution); _previewWorkspace.OpenDocument(document.Id); _currentDocument = document.Id; } else { _currentDocument = document.Id; ApplyDocumentToBuffer(document, spanSource, out container, out documentBackedByTextBuffer); _previewWorkspace = new PreviewDialogWorkspace(documentBackedByTextBuffer.Project.Solution); _previewWorkspace.OpenDocument(document.Id); } }