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();
        }
示例#7
0
        /// <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();
        }
示例#10
0
        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();
        }