Example #1
0
        /// <summary>
        /// Is the current selection that of the C# event add pattern?
        /// </summary>
        internal bool IsEventAddSelection(ITextView textView)
        {
            var textSelection = textView.Selection;

            if (textSelection.IsEmpty || textSelection.Mode != TextSelectionMode.Stream)
            {
                return(false);
            }

            var span = textView.Selection.StreamSelectionSpan.SnapshotSpan;

            var lineRange = SnapshotLineRangeUtil.CreateForSpan(span);

            if (lineRange.Count != 1)
            {
                return(false);
            }

            // Include the character after the selection.  Needed to disambiguate a couple
            // of cases
            var endPoint = span.End;

            if (endPoint.Position < lineRange.End.Position)
            {
                endPoint = endPoint.Add(1);
            }

            var beforeSpan = new SnapshotSpan(lineRange.Start, endPoint);

            return(IsPreceededByEventAddSyntax(beforeSpan));
        }
        public void CreateForLineNumberAndCount3()
        {
            Create("hello", "world");
            var opt = SnapshotLineRangeUtil.CreateForLineNumberAndCount(_buffer.CurrentSnapshot, 0, 300);

            Assert.True(opt.IsNone());
        }
Example #3
0
        public void Apply_CountOfOne()
        {
            Create("cat", "dog", "rabbit", "tree");
            var v1 = _textBuffer.GetLineRange(0, 1);
            var v2 = _rangeUtil.ApplyCount(1, v1);

            Assert.AreEqual(SnapshotLineRangeUtil.CreateForLine(_textBuffer.GetLine(1)), v2);
        }
Example #4
0
        public void Lines1()
        {
            Create("a", "b");
            var lineSpan = SnapshotLineRangeUtil.CreateForLineNumberAndCount(_buffer.CurrentSnapshot, 0, 1).Value;

            Assert.AreEqual(0, lineSpan.Lines.First().LineNumber);
            Assert.AreEqual(0, lineSpan.Lines.Last().LineNumber);
        }
        public void CreateForLineAndMaxCount1()
        {
            Create("a", "b");
            var range = SnapshotLineRangeUtil.CreateForLineAndMaxCount(_buffer.GetLine(0), 1);

            Assert.Equal(1, range.Count);
            Assert.Equal(0, range.StartLineNumber);
            Assert.Equal(0, range.LastLineNumber);
        }
Example #6
0
 internal static ModeArgument CreateSubstituteArgument(
     SnapshotSpan span,
     SnapshotLineRange?range = null,
     SubstituteData data     = null)
 {
     range = range ?? SnapshotLineRangeUtil.CreateForSnapshot(span.Snapshot);
     data  = data ?? new SubstituteData("a", "b", SubstituteFlags.None);
     return(ModeArgument.NewSubstitute(span, range.Value, data));
 }
        public void CreateForLine()
        {
            Create("hello", "world");
            var range = SnapshotLineRangeUtil.CreateForLine(_buffer.GetLine(0));

            Assert.Equal("hello", range.Extent.GetText());
            Assert.Equal(1, range.Count);
            Assert.Equal(0, range.StartLineNumber);
            Assert.Equal(0, range.LastLineNumber);
        }
        public void CreateForLineNumberRange1()
        {
            Create("hello", "world");
            var range = SnapshotLineRangeUtil.CreateForLineNumberRange(_buffer.CurrentSnapshot, 0, 0);

            Assert.AreEqual("hello", range.Extent.GetText());
            Assert.AreEqual(1, range.Count);
            Assert.AreEqual(0, range.StartLineNumber);
            Assert.AreEqual(0, range.EndLineNumber);
        }
        public void CreateForLineNumberAndCount2()
        {
            Create("hello", "world");
            var range = SnapshotLineRangeUtil.CreateForLineNumberAndCount(_buffer.CurrentSnapshot, 0, 2).Value;

            Assert.AreEqual("hello" + Environment.NewLine + "world", range.Extent.GetText());
            Assert.AreEqual(2, range.Count);
            Assert.AreEqual(0, range.StartLineNumber);
            Assert.AreEqual(1, range.EndLineNumber);
        }
        public void CreateForLineNumberAndCount1()
        {
            Create("hello", "world");
            var range = SnapshotLineRangeUtil.CreateForLineNumberAndCount(_buffer.CurrentSnapshot, 0, 1).Value;

            Assert.Equal("hello", range.Extent.GetText());
            Assert.Equal(1, range.Count);
            Assert.Equal(0, range.StartLineNumber);
            Assert.Equal(0, range.LastLineNumber);
        }
        public void CreateForLineNumberRange2()
        {
            Create("hello", "world");
            var range = SnapshotLineRangeUtil.CreateForLineNumberRange(_buffer.CurrentSnapshot, 0, 1);

            Assert.Equal("hello" + Environment.NewLine + "world", range.Extent.GetText());
            Assert.Equal(2, range.Count);
            Assert.Equal(0, range.StartLineNumber);
            Assert.Equal(1, range.LastLineNumber);
        }
Example #12
0
 private AsyncBackgroundRequest CreateAsyncBackgroundRequest(
     SnapshotSpan span,
     CancellationTokenSource cancellationTokenSource,
     Task task = null)
 {
     task = task ?? new Task(() => { });
     return(new AsyncBackgroundRequest(
                SnapshotLineRangeUtil.CreateForSpan(span),
                cancellationTokenSource,
                new SingleItemQueue <SnapshotLineRange>(),
                task));
 }
Example #13
0
        internal static ModeArgument CreateSubstituteArgument(
            SnapshotSpan span,
            string search,
            string replace,
            SubstituteFlags?flags   = null,
            SnapshotLineRange?range = null)
        {
            range = range ?? SnapshotLineRangeUtil.CreateForSnapshot(span.Snapshot);
            var data = new SubstituteData(search, replace, flags ?? SubstituteFlags.None);

            return(ModeArgument.NewSubstitute(span, range.Value, data));
        }
Example #14
0
        private ReadOnlyCollection <ITagSpan <IClassificationTag> > GetTags(SnapshotSpan span)
        {
            var lineSpan = SnapshotLineRangeUtil.CreateForSpan(span);
            var snapshot = span.Snapshot;
            var list     = new List <ITagSpan <IClassificationTag> >();

            foreach (var line in lineSpan.Lines)
            {
                if (DirectoryUtil.TryGetDirectorySpan(line, out SnapshotSpan directorySpan))
                {
                    list.Add(new TagSpan <IClassificationTag>(directorySpan, _classificationTag));
                }
            }

            return(list.ToReadOnlyCollectionShallow());
        }
Example #15
0
        public static Result <SnapshotLineRange> GetVisibleLineRange(this ITextView textView)
        {
            try
            {
                var lines = textView.TextViewLines;
                if (lines.Count == 0)
                {
                    return(Result.Error);
                }

                var start = lines[0].Start;
                var end   = lines[lines.Count - 1].EndIncludingLineBreak;
                var span  = new SnapshotSpan(start, end);
                return(SnapshotLineRangeUtil.CreateForSpan(span));
            }
            catch (Exception ex)
            {
                // TextViewLines can throw when the view is being laid out
                return(Result.CreateError(ex));
            }
        }
Example #16
0
        /// <summary>
        /// Is the current selection that of the C# event add pattern?
        /// </summary>
        internal bool IsEventAddSelection(ITextView textView)
        {
            var textSelection = textView.Selection;

            if (textSelection.IsEmpty || textSelection.Mode != TextSelectionMode.Stream)
            {
                return(false);
            }

            var span      = textView.Selection.StreamSelectionSpan.SnapshotSpan;
            var lineRange = SnapshotLineRangeUtil.CreateForSpan(span);

            if (lineRange.Count != 1)
            {
                return(false);
            }

            var beforeSpan = new SnapshotSpan(lineRange.Start, span.End);

            return(IsPreceededByEventAddSyntax(beforeSpan));
        }
Example #17
0
 public static SnapshotLineRange GetLineRange(this ITextSnapshot tss, int startLine, int endLine = -1)
 {
     endLine = endLine >= 0 ? endLine : startLine;
     return(SnapshotLineRangeUtil.CreateForLineNumberRange(tss, startLine, endLine));
 }
Example #18
0
 public static SnapshotLineRange GetLineRange(this ITextBuffer buffer, int startLine, int endLine = -1)
 {
     endLine = endLine >= 0 ? endLine : startLine;
     return(SnapshotLineRangeUtil.CreateForLineNumberRange(buffer.CurrentSnapshot, startLine, endLine));
 }