private void StoreCurrentNode(object sender, CaretPositionChangedEventArgs e) { if(e?.TextView == null) { return; } var textView = e.TextView; var caretPosition = new CaretPositionLineInfo(textView, textView.Caret.Position.BufferPosition); StoreCurrentNode(textView.TextSnapshot.GetText(), caretPosition.LineNumber, caretPosition.LinePosition); }
public void LineNumberIsAdjusted(int lineNumber) { // Arrange const int expectedAdjustment = 1; var textSnapshot = Substitute.For<ITextSnapshot>(); textSnapshot.GetLineNumberFromPosition(Arg.Any<int>()).Returns(lineNumber); var textView = Substitute.For<ITextView>(); textView.TextSnapshot.Returns(textSnapshot); // Act var caretPositionLineInfo = new CaretPositionLineInfo(textView, 0); // Assert Assert.That(caretPositionLineInfo.LineNumber, Is.EqualTo(lineNumber + expectedAdjustment)); }
public void LinePositionIsAdjusted(int caretPosition) { // Arrange const int expectedAdjustment = 1; var textSnapshot = Substitute.For<ITextSnapshot>(); textSnapshot.GetLineNumberFromPosition(Arg.Is(caretPosition)).Returns(0); textSnapshot.Length.Returns(caretPosition); var textView = Substitute.For<ITextView>(); textView.TextSnapshot.Returns(textSnapshot); // Act var caretPositionLineInfo = new CaretPositionLineInfo(textView, caretPosition); // Assert Assert.That(caretPositionLineInfo.LinePosition, Is.EqualTo(caretPosition + expectedAdjustment)); }