public void InertTextBuffer_DoesNotCreateSnapshot() { // Arrange var textBuffer = new TestTextBuffer(new StringTextSnapshot(string.Empty)); textBuffer.ChangeContentType(NotInertContentType, editTag: null); using var document = new DefaultLSPDocument(Uri, textBuffer, virtualDocuments: Array.Empty <VirtualDocument>()); var originalSnapshot = document.CurrentSnapshot; textBuffer.ChangeContentType(TestInertContentType.Instance, editTag: null); // Act var edit = textBuffer.CreateEdit(); edit.Insert(0, "New!"); edit.Apply(); // Assert var newSnapshot = document.CurrentSnapshot; Assert.Same(originalSnapshot, newSnapshot); }
public void CurrentSnapshot_ChangesWhenTextBufferChanges() { // Arrange var textBuffer = new TestTextBuffer(new StringTextSnapshot(string.Empty)); textBuffer.ChangeContentType(NotInertContentType, editTag: null); using var document = new DefaultLSPDocument(Uri, textBuffer, virtualDocuments: Array.Empty <VirtualDocument>()); var originalSnapshot = document.CurrentSnapshot; // Act var edit = textBuffer.CreateEdit(); edit.Insert(0, "New!"); edit.Apply(); // Assert var newSnapshot = document.CurrentSnapshot; Assert.NotSame(originalSnapshot, newSnapshot); Assert.Equal(1, originalSnapshot.Version); Assert.Equal(2, newSnapshot.Version); }
public DefaultLSPDocumentManagerTest() { var contentType = Mock.Of <IContentType>(contentType => contentType.IsOfType("inert") == false && contentType.IsOfType("test") == true && contentType.TypeName == "test", MockBehavior.Strict); ChangeListeners = Enumerable.Empty <Lazy <LSPDocumentChangeListener, IContentTypeMetadata> >(); JoinableTaskContext = new JoinableTaskContext(); TextBuffer = new TestTextBuffer(new StringTextSnapshot(string.Empty)); TextBuffer.ChangeContentType(contentType, editTag: null); var snapshot = TextBuffer.CurrentSnapshot; Uri = new Uri("C:/path/to/file.razor"); UriProvider = Mock.Of <FileUriProvider>(provider => provider.GetOrCreate(TextBuffer) == Uri, MockBehavior.Strict); Mock.Get(UriProvider).Setup(p => p.Remove(It.IsAny <ITextBuffer>())).Verifiable(); var testVirtualDocument = new TestVirtualDocument(); var lspDocument = new DefaultLSPDocument(Uri, TextBuffer, new[] { testVirtualDocument }); LSPDocumentSnapshot = lspDocument.CurrentSnapshot; LSPDocument = lspDocument; LSPDocumentFactory = Mock.Of <LSPDocumentFactory>(factory => factory.Create(TextBuffer) == LSPDocument, MockBehavior.Strict); }