public void TestVirtualColumnDesiredColumnCaretUp() { var data = CreateData(); data.Document.Text = "12345\n\n12345\n"; CaretMoveActions.Down(data); CaretMoveActions.Right(data); CaretMoveActions.Left(data); Assert.AreEqual(DocumentLocation.MinColumn, data.Caret.Column); Assert.AreEqual(DocumentLocation.MinColumn, data.Caret.DesiredColumn); CaretMoveActions.Right(data); CaretMoveActions.Up(data); CaretMoveActions.Down(data); int indentColumn = data.IndentationTracker.GetVirtualIndentationColumn(2, 1); Assert.AreEqual(indentColumn, data.Caret.Column); Assert.AreEqual(data.LogicalToVisualLocation(2, indentColumn).Column, data.Caret.DesiredColumn); }
public void TestCaretUpCase2() { var data = Create( @"AAAAAAAA AAAAAAAA AA+[AAAAAABBBBBBB AAAAAAAABBBBBBBBBB AAAAAAAABBBBBBBBBB AAAAAAAABBBBBBBBBB AAAAAAAABBBBBBBBBB] AAAAAAAA$ "); data.Document.UpdateFoldSegments(GetFoldSegments(data.Document)); Assert.AreEqual(new DocumentLocation(8, 9), data.Caret.Location); CaretMoveActions.Up(data); Assert.AreEqual(true, data.Document.FoldSegments.First().IsCollapsed); Assert.AreEqual(new DocumentLocation(3, 3), data.Caret.Location); }
public static void Left(TextEditorData editor) { if (!Platform.IsMac) { if (DocumentLocation.MinColumn < editor.Caret.Column) { CaretMoveActions.Left(editor); } } else { using (var undo = editor.OpenUndoGroup()) { if (editor.Caret.Column > DocumentLocation.MinColumn) { editor.Caret.Column = editor.Caret.Column - 1; } } } }
public void TestVirtualColumnDesiredColumnCaretDown() { var data = CreateData("12345\n\n12345\n"); var segs = new List <FoldSegment> (); segs.Add(new FoldSegment("", 5, 5, FoldingType.Region)); data.Document.UpdateFoldSegments(segs); CaretMoveActions.Down(data); CaretMoveActions.Right(data); CaretMoveActions.Left(data); Assert.AreEqual(DocumentLocation.MinColumn, data.Caret.Column); Assert.AreEqual(DocumentLocation.MinColumn, data.Caret.DesiredColumn); CaretMoveActions.Right(data); CaretMoveActions.Down(data); CaretMoveActions.Up(data); int indentColumn = data.GetVirtualIndentationColumn(2, 1); Assert.AreEqual(indentColumn, data.Caret.Column); Assert.AreEqual(data.LogicalToVisualLocation(2, indentColumn).Column, data.Caret.DesiredColumn); }
public void TestCaretDown() { var data = Create( @"AAAAAAAA AAAAAAAA$ AAAAAAAA+[BBBBBBB AAAAAAAABBBBBBBBBB AAAAAAAABBBBBBBBBB AAAAAAAABBBBBBBBBB AAAAAAAABBBBBBBBBB] AAAAAAAA "); data.Document.UpdateFoldSegments(GetFoldSegments(data.Document)); Assert.AreEqual(new DocumentLocation(2, 9), data.Caret.Location); CaretMoveActions.Down(data); CaretMoveActions.Down(data); Assert.AreEqual(true, data.Document.FoldSegments.First().IsFolded); Assert.AreEqual(new DocumentLocation(8, 9), data.Caret.Location); }
public static void Right(TextEditorData editor) { if (!Platform.IsMac) { if (editor.Caret.Offset < editor.GetLine(editor.Caret.Line).EndOffset) { CaretMoveActions.Right(editor); } } else { using (var undo = editor.OpenUndoGroup()) { DocumentLine line = editor.GetLine(editor.Caret.Line); if (editor.Caret.Column < line.Length) { editor.Caret.Column = editor.Caret.Column + 1; } } } }
public void TestDesiredColumnBeyondEOL() { var data = Create(@" IEnumerable<string> GetFileExtensions (string filename) { int lastSeparator = filename.Length; do { fi$lename.LastIndexOf ('.', 0, lastSeparator); } " ); CaretMoveActions.Up(data); Check(data, @" IEnumerable<string> GetFileExtensions (string filename) { int lastSeparator = filename.Length; do {$ filename.LastIndexOf ('.', 0, lastSeparator); } "); }
public void TestPageUp() { var data = Create(@"1 2 3 $4 5 6"); data.VAdjustment = new Gtk.Adjustment( 0, 0, data.LineCount * data.LineHeight, data.LineHeight, 2 * data.LineHeight, 2 * data.LineHeight); CaretMoveActions.PageUp(data); Check(data, @"1 $2 3 4 5 6"); }
static bool GotoLine(ViBuilderContext ctx) { ctx.RunAction((ViEditor e) => ViEditorActions.CaretToLineNumber(ctx.Multiplier, e)); ctx.RunAction((ViEditor e) => CaretMoveActions.LineFirstNonWhitespace(e.Data)); return(true); }
protected override void Deactivate() { CaretMoveActions.Left(Editor); }
protected override void Run() { CaretMoveActions.Right(Editor); RequestedMode = Mode.Insert; }
public static void LineEnd(TextEditorData editor) { CaretMoveActions.LineEnd(editor); }
public static void Down(TextEditorData editor) { CaretMoveActions.Down(editor); }
public static void Up(TextEditorData editor) { CaretMoveActions.Up(editor); }