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 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);
        }