public void SwapWithNext_LastNR() { Init(); lines.SetText("line0\nline1\nline2\nline3"); LineIterator iterator = lines.GetLineRange(0, lines.LinesCount); iterator.MoveNext(); iterator.MoveNext(); iterator.MoveNext(); Assert.AreEqual("line2\n", iterator.current.Text); iterator.SwapCurrent(false); AssertText("line0\nline1\nline3\nline2"); }
public void LineIterator_GetNextRange() { Init(4); lines.SetText("0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14"); CollectionAssert.AreEqual(new Line[] { lines[0], lines[1] }, GetLines(lines.GetLineRange(0, 2))); CollectionAssert.AreEqual(new Line[] { lines[1], lines[2] }, GetLines(lines.GetLineRange(1, 2))); CollectionAssert.AreEqual(new Line[] { lines[11], lines[12], lines[13] }, GetLines(lines.GetLineRange(11, 3))); CollectionAssert.AreEqual(new Line[] { lines[12], lines[13], lines[14] }, GetLines(lines.GetLineRange(12, 3))); LineIterator iterator = lines.GetLineRange(2, 10); iterator.MoveNext(); Assert.AreEqual(lines[2], iterator.current); iterator.MoveNext(); Assert.AreEqual(lines[3], iterator.current); CollectionAssert.AreEqual( new Line[] { lines[4], lines[5], lines[6], lines[7], lines[8] }, GetLines(iterator.GetNextRange(5))); }
private List <Line> GetLines(LineIterator iterator) { List <Line> lines = new List <Line>(); while (iterator.MoveNext()) { lines.Add(iterator.current); } return(lines); }
public void SwapLinesWithPrev_SingleBlock() { Init(); lines.SetText("line0\nline1\nline2\nline3"); LineIterator iterator = lines.GetLineRange(0, lines.LinesCount); iterator.MoveNext(); iterator.MoveNext(); Assert.AreEqual("line1\n", iterator.current.Text); iterator.SwapCurrent(true); AssertText("line1\nline0\nline2\nline3"); iterator.MoveNext(); Assert.AreEqual("line2\n", iterator.current.Text); iterator.SwapCurrent(true); AssertText("line1\nline2\nline0\nline3"); }
/// <summary> /// Parses the specified file, adding parsed records to the specified /// repository. /// </summary> /// <param name="info">Contains the information about the file.</param> /// <param name="repository">The repository to add records to.</param> public void Parse(MainfileInfo info, PafRepository repository) { Check.IsNotNull(info, "info"); Check.IsNotNull(repository, "repository"); using (Stream stream = FileSystem.Instance.OpenRead(info.Path)) { var iterator = new LineIterator(stream, info.RecordLength, info.RecordCount); while (iterator.MoveNext()) { this.ParseLine(repository, iterator); } } }
public void GoToTag(Node node) { lastGoToNode = node; Buffer buffer = mainForm.LoadFile(node.path); if (buffer != null) { int index = node.index; LineIterator iterator = buffer.Controller.Lines.GetLineRange(0, buffer.Controller.Lines.LinesCount); while (iterator.MoveNext()) { string text = iterator.current.Text; if (text.StartsWith(node.address) && (node.address.Length == text.Length || node.address.Length == text.Length - 2 && text.EndsWith("\r\n") || node.address.Length == text.Length - 1 && (text.EndsWith("\r") || text.EndsWith("\n")))) { if (index <= 0) { buffer.Controller.PutCursor(new Place(0, iterator.Index), false); buffer.Controller.ViMoveHome(false, true); if (buffer.FullPath != null) { buffer.Controller.ViAddHistoryPosition(true); } buffer.Controller.NeedScrollToCaret(); if (buffer.Frame != null) { buffer.Frame.Focus(); } break; } --index; } } } }