Beispiel #1
0
        protected override void Run()
        {
            int wordOffset = StringUtils.NextWordOffset(Editor.Text, Editor.Caret.Offset);

            Editor.SetSelection(Editor.Caret.Offset, wordOffset);
            ClipboardActions.Cut(Editor);
        }
Beispiel #2
0
        protected override void Run()
        {
            var range = _selector();

            DeleteRange(range);
            if (range != CommandRange.Empty)
            {
                // Make sure there is no more than one newline left inside block
                int del1 = NewLine.GetDelimiterLength(Editor.Text[range.Start - 1], Editor.Text[range.Start]);
                if (del1 > 0)
                {
                    int del2Start = range.Start - 1 + del1;
                    int del2      = NewLine.GetDelimiterLength(Editor.Text[del2Start],
                                                               Editor.Text[del2Start + 1]);
                    if (del2 > 0)
                    {
                        Editor.SetSelection(del2Start, del2Start + del2);
                        ClipboardActions.Cut(Editor);
                        // put caret on closingChar
                        int caret = Editor.Caret.Offset;
                        while (Char.IsWhiteSpace(Editor.Text[caret]))
                        {
                            caret++;
                        }
                        Editor.Caret.Offset = caret;
                    }
                }
            }
        }
Beispiel #3
0
        protected void ChangeInside(char start, char end)
        {
            if (Editor.Text[Editor.Caret.Offset] != start)
            {
                return;
            }

            // FIXME: should not be restricted inside a line
            // FIXME: should find the *matching* character, not next
            int offset = StringUtils.FindNextInLine(Editor.Text, Editor.Caret.Offset, end);

            if (offset <= 0)
            {
                return;
            }

            CaretMoveActions.Right(Editor);
            if (Editor.Caret.Offset < offset)
            {
                Editor.SetSelection(Editor.Caret.Offset, offset);
                ClipboardActions.Cut(Editor);
            }

            RequestedMode = Mode.Insert;
        }
Beispiel #4
0
        protected override void Run()
        {
            var count = Math.Min(Math.Max(Count, 1), Editor.GetLine(Editor.Caret.Line).EndOffset - Editor.Caret.Offset);

            Editor.SetSelection(Editor.Caret.Offset, Editor.Caret.Offset + count);
            ClipboardActions.Cut(Editor);
        }
        public void TestPasteBlockSelection()
        {
            var data = Create(
                @"1234567890
1234<-567890
1234567890
1234567890
1234->$567890
1234567890");

            data.MainSelection = data.MainSelection.WithSelectionMode(SelectionMode.Block);

            Clipboard clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "hello";

            ClipboardActions.Paste(data);

            Check(data, @"1234567890
1234hello567890
1234hello567890
1234hello567890
1234hello$567890
1234567890");
        }
Beispiel #6
0
        protected override void Run()
        {
            var line = Editor.GetLine(Editor.Caret.Line);

            Editor.SetSelection(Editor.Caret.Offset, line.EndOffset);
            ClipboardActions.Cut(Editor);
        }
Beispiel #7
0
        protected bool DeleteInside(char start, char end)
        {
            Tuple <int, int> offsets;

            if (start == end)
            {
                offsets = StringUtils.FindMatchingOffsetsInLine(Editor.Text, Editor.Caret.Offset, start);
            }
            else
            {
                offsets = StringUtils.FindMatchingOffsets(Editor.Text, Editor.Caret.Offset, start, end);
            }

            if (offsets.Item1 < 0 || offsets.Item2 < 0)
            {
                return(false);
            }

            if (offsets.Item1 < offsets.Item2 - 1)
            {
                Editor.SetSelection(offsets.Item1 + 1, offsets.Item2);
                ClipboardActions.Cut(Editor);
            }
            else
            {
                Editor.Caret.Offset = offsets.Item2;
            }

            return(true);
        }
 protected void DeleteRange(CommandRange range)
 {
     if (range.Length > 0)
     {
         Editor.SetSelection(range.Start, range.End);
         ClipboardActions.Cut(Editor);
     }
 }
        protected override void Run()
        {
            var startOffset = Editor.SelectionAnchor;

            ClipboardActions.Copy(Editor);
            Editor.Caret.Offset = startOffset;
            RequestedMode       = Mode.Normal;
        }
Beispiel #10
0
        protected override void Run()
        {
            int start = Editor.Caret.Offset;

            CaretMoveActions.LineEnd(Editor);
            Editor.SetSelection(start, Editor.Caret.Offset);
            ClipboardActions.Cut(Editor);
            RequestedMode = Mode.Insert;
        }
Beispiel #11
0
        protected override void Run()
        {
            var range = _selector();

            if (range.Length > 0)
            {
                Editor.SetSelection(range.Start, range.End);
                ClipboardActions.Cut(Editor);
                RequestedMode = Mode.Insert;
            }
        }
Beispiel #12
0
 /// <summary>
 /// The Past menu item handler
 /// </summary>
 /// <param name="sender">The sending object</param>
 /// <param name="e">The event arguments</param>
 private void OnPaste(object sender, EventArgs e)
 {
     try
     {
         ClipboardActions.Paste(textEditor.TextArea.GetTextEditorData());
     }
     catch (Exception err)
     {
         ShowError(err);
     }
 }
Beispiel #13
0
        protected override void Run()
        {
            int offset = Editor.Caret.Offset;

            for (int i = 0; i < Count && offset < Editor.Length; i++)
            {
                offset = StringUtils.NextWordOffset(Editor.Text, offset);
            }

            Editor.SetSelection(Editor.Caret.Offset, offset);
            ClipboardActions.Cut(Editor);
        }
        protected override void Run()
        {
            var lineOffset = Editor.GetLine(Editor.Caret.Line).Offset;
            var count      = Math.Min(Math.Max(Count, 1), Editor.Caret.Offset - Editor.GetLine(Editor.Caret.Line).Offset);

            if (Editor.Caret.Column == 1 || count > Editor.Caret.Offset)
            {
                return;
            }
            Editor.SetSelection(Editor.Caret.Offset - (count), Editor.Caret.Offset);
            ClipboardActions.Cut(Editor);
        }
        protected override void Run()
        {
            var count = Math.Min(Math.Max(Count, 1), Editor.GetLine(Editor.Caret.Line).EndOffset - Editor.Caret.Offset);

            Editor.SetSelection(Editor.Caret.Offset, Editor.Caret.Offset + count);
            ClipboardActions.Copy(Editor);
            var stuff   = ClipboardActions.GetClipboardContent();
            var swapped = new string(stuff.Select(c => char.IsLetter(c) ? char.IsUpper(c) ?
                                                  char.ToLower(c) : char.ToUpper(c) : c).ToArray());

            Editor.SetSelection(Editor.Caret.Offset, Editor.Caret.Offset + count);
            Editor.InsertAtCaret(swapped);
        }
Beispiel #16
0
        public void TestPasteDoesntInsertVirtualIndent()
        {
            var data = VirtualIndentModeTests.CreateData("");

            data.Caret.Location = new DocumentLocation(1, data.IndentationTracker.GetVirtualIndentationColumn(1, 1));
            var clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "\n\n";

            ClipboardActions.Paste(data);

            Assert.AreEqual("\n\n", data.Document.Text);
        }
        public void TestTextPasteHandler()
        {
            var data = Create(
                @"$");

            Clipboard clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "hello";

            data.TextPasteHandler = this;

            ClipboardActions.Paste(data);

            Check(data, @"Hello World$");
        }
        public void TestBug615196()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "\n\nHello World\n";
            data.Caret.Offset  = 1;            // 2nd.Line
            data.Caret.AllowCaretBehindLineEnd = true;
            data.Caret.Column = DocumentLocation.MinColumn + 4;
            Clipboard clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "Test";

            ClipboardActions.Paste(data);

            Assert.AreEqual("\n    Test\nHello World\n", data.Document.Text);
        }
        public void TestBug7012()
        {
            var data = CreateData("\n\t\tthrow new NotImplementedException();");
            var loc1 = new DocumentLocation(1, data.IndentationTracker.GetVirtualIndentationColumn(1, 1));
            var loc2 = new DocumentLocation(3, data.GetLine(2).Length);

            data.Caret.Location = loc2;
            data.SetSelection(loc1, loc2);
            var clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "Console.WriteLine(\"Hello\");";

            ClipboardActions.Paste(data);

            Assert.AreEqual("\t\tConsole.WriteLine(\"Hello\");", data.Document.Text);
        }
        protected override void Run()
        {
            for (int i = 0; i < Count; i++)
            {
                int start = Editor.Caret.Offset;
                var end   = StringUtils.FindNextInLine(Editor.Text, Editor.Caret.Offset, Argument);
                if (end <= 0)
                {
                    return;
                }

                end += findResultShift;

                Editor.SetSelection(start, end);
                ClipboardActions.Cut(Editor);
            }
        }
Beispiel #21
0
        protected override void Run()
        {
            // hack for last line, it doesn't actually cut the line though
            if (Editor.Caret.Offset == Editor.Text.Length)
            {
                var line = Editor.GetLine(Editor.Caret.Line);
                if (line.Offset == line.EndOffset)
                {
                    DeleteActions.Backspace(Editor);
                    return;
                }
            }

            Motion.SetSelectLines(Editor, Editor.Caret.Line, Editor.Caret.Line + Count + (Count > 0 ? -1 : 0));
            ClipboardActions.Cut(Editor);
            Motion.LineStart(Editor);
        }
        public void TestUndoSteps_WithoutFormattingStep()
        {
            var data = Create(
                @"$");

            data.Options.GenerateFormattingUndoStep = false;
            Clipboard clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "hello";

            data.TextPasteHandler = this;

            ClipboardActions.Paste(data);

            Check(data, @"Hello World$");
            MiscActions.Undo(data);
            Check(data, @"$");
        }
Beispiel #23
0
 bool ClipboardContainsSelection()
 {
     return(textEditor.SelectedText == ClipboardActions.GetClipboardContent());
 }
Beispiel #24
0
 /// <summary>
 /// The Past menu item handler
 /// </summary>
 /// <param name="sender">The sending object</param>
 /// <param name="e">The event arguments</param>
 private void OnPaste(object sender, EventArgs e)
 {
     ClipboardActions.Paste(textEditor.TextArea.GetTextEditorData());
 }
 protected override void Run()
 {
     ClipboardActions.Cut(Editor);
     RequestedMode = Mode.Insert;
 }
 bool IEditorOperations.Paste()
 {
     return(ClipboardActions.PasteWithResult(TextEditor.GetTextEditorData()));
 }
Beispiel #27
0
 public void CutText(object obj, EventArgs args)
 {
     ClipboardActions.Cut(this.editor.GetTextEditorData());
 }
 protected override void Run()
 {
     ClipboardActions.Copy(Editor);
     RequestedMode = Mode.Normal;
 }
Beispiel #29
0
 protected override void Run()
 {
     Motion.SetSelectLines(Editor, Editor.Caret.Line, Editor.Caret.Line + Count - 1);
     ClipboardActions.Copy(Editor);
     Editor.ClearSelection();
 }
Beispiel #30
0
 protected override void Run()
 {
     Editor.SetSelection(Editor.Caret.Offset, StringUtils.NextWordOffset(Editor.Text, Editor.Caret.Offset));
     ClipboardActions.Cut(Editor);
     RequestedMode = Mode.Insert;
 }