public void TextProvider_IndexOf1() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.IndexOf("fox", 0, true).Should().Be(12); }
public void TextProvider_IndexOf2() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.IndexOf("o", new TextRange(3, 7), true).Should().Be(8); }
public void TextProvider_GetText() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.GetText(9, 5).Should().Be("wn fo"); }
public void TextProvider_GetCharAt() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); for (int i = 0; i < text.Length; i++) { textProvider[i].Should().Be(text[i]); } }
public void TextProvider_IndexOf_Range1() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.IndexOf("uick", new TextRange(1, 4), true).Should().Be(1); textProvider.IndexOf("uick", new TextRange(1, 5), true).Should().Be(1); textProvider.IndexOf("uick", new TextRange(1, 3), false).Should().Be(-1); textProvider.IndexOf("uick", new TextRange(1, 0), false).Should().Be(-1); }
public void TextProvider_CompareTo() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.CompareTo(text.Length - 8, 4, "laZy", true).Should().BeTrue(); textProvider.CompareTo(text.Length - 8, 3, "laZy", true).Should().BeFalse(); textProvider.CompareTo(text.Length - 9, 4, "laZy", true).Should().BeFalse(); textProvider.CompareTo(text.Length - 3, 3, "dog", false).Should().BeTrue(); textProvider.CompareTo(text.Length - 3, 3, "dOg", false).Should().BeFalse(); textProvider.CompareTo(text.Length - 2, 3, "dog", true).Should().BeFalse(); }
/// <summary> /// Converts list of text changes in a text buffer to a collection of /// changes that are relative one to another. /// </summary> /// <param name="changes">Sorted collection of changes</param> /// <returns>Collection of relative changes</returns> public static IReadOnlyList<TextChangeEventArgs> ConvertToRelative(this TextContentChangedEventArgs changeInfo) { IList<ITextChange> changes = changeInfo.Changes; var list = new List<TextChangeEventArgs>(changes.Count); ITextChange previousChange = null; TextProvider oldText = new TextProvider(changeInfo.Before, true); TextProvider newText = new TextProvider(changeInfo.After, true); for (int i = 0; i < changes.Count; i++) { var change = changes[i]; if (previousChange != null) { if (previousChange.OldEnd > change.OldPosition || previousChange.NewEnd > change.NewPosition) throw new ArgumentException("List of changes must not overlap", "changes"); } var textChange = new TextChangeEventArgs(change.NewPosition, change.OldPosition, change.OldLength, change.NewLength, oldText, newText); list.Add(textChange); previousChange = change; } return list; }
public void TextProvider_Boundary1() { var text = "Quick brown fox jumps over the lazy dog"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.CompareTo(text.Length, 4, "laZy", true).Should().BeFalse(); textProvider.CompareTo(text.Length - 1, 4, "laZy", true).Should().BeFalse(); textProvider.CompareTo(0, 3, new string('c', 100), true).Should().BeFalse(); textProvider.CompareTo(0, 0, "", true).Should().BeTrue(); textProvider.CompareTo(0, 2, string.Empty, true).Should().BeFalse(); textProvider.CompareTo(text.Length - 2, 3, "dog", true).Should().BeFalse(); }
public void TextProvider_Boundary3() { var text = "ab"; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.CompareTo(text.Length, 4, "fooo", true).Should().BeFalse(); textProvider.CompareTo(0, 3, new string('c', 100), true).Should().BeFalse(); textProvider.CompareTo(0, 1, "a", true).Should().BeTrue(); textProvider.CompareTo(0, 2, "ab", true).Should().BeTrue(); textProvider.CompareTo(0, 2, "abc", true).Should().BeFalse(); textProvider.CompareTo(1, 0, string.Empty, true).Should().BeTrue(); textProvider.CompareTo(2, 0, string.Empty, true).Should().BeTrue(); }
public void TextProvider_Boundary2() { var text = string.Empty; var textBuffer = new TextBufferMock(text, "text"); var textProvider = new TextProvider(textBuffer.CurrentSnapshot, 10); textProvider.CompareTo(text.Length, 4, "laZy", true).Should().BeFalse(); textProvider.CompareTo(0, 3, new string('c', 100), true).Should().BeFalse(); textProvider.CompareTo(0, 0, "", true).Should().BeTrue(); textProvider.CompareTo(0, 2, string.Empty, true).Should().BeFalse(); }