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);
        }
Exemple #2
0
        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;
             }
         }
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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");
        }
Exemple #9
0
 static bool GotoLine(ViBuilderContext ctx)
 {
     ctx.RunAction((ViEditor e) => ViEditorActions.CaretToLineNumber(ctx.Multiplier, e));
     ctx.RunAction((ViEditor e) => CaretMoveActions.LineFirstNonWhitespace(e.Data));
     return(true);
 }
Exemple #10
0
 protected override void Deactivate()
 {
     CaretMoveActions.Left(Editor);
 }
Exemple #11
0
 protected override void Run()
 {
     CaretMoveActions.Right(Editor);
     RequestedMode = Mode.Insert;
 }
 public static void LineEnd(TextEditorData editor)
 {
     CaretMoveActions.LineEnd(editor);
 }
Exemple #13
0
 public static void Down(TextEditorData editor)
 {
     CaretMoveActions.Down(editor);
 }
Exemple #14
0
 public static void Up(TextEditorData editor)
 {
     CaretMoveActions.Up(editor);
 }