Exemplo n.º 1
0
        public void OnAction(ConsoleAction action)
        {
            switch (action)
            {
            case ConsoleAction.DeletePreviousChar:
                if (_input.Selection.HasSelection)
                {
                    _input.Remove(_input.Selection.SelectionStart, _input.Selection.SelectionLength);
                }
                else if (_input.Length > 0 && _input.CaretIndex > 0)
                {
                    _input.Remove(Math.Max(0, _input.CaretIndex - 1), 1);
                }
                break;

            case ConsoleAction.DeleteCurrentChar:
                if (_input.Selection.HasSelection)
                {
                    _input.Remove(_input.Selection.SelectionStart, _input.Selection.SelectionLength);
                }
                else if (_input.Length > _input.CaretIndex)
                {
                    _input.Remove(_input.CaretIndex, 1);
                }
                break;
            }
        }
Exemplo n.º 2
0
        public void OnAction(ConsoleAction action)
        {
            switch (action)
            {
            case ConsoleAction.Cut:
                if (_input.Selection.HasSelection)
                {
                    Native.SetClipboardText(_input.Selection.SelectionValue);
                    _input.Remove(_input.Selection.SelectionStart, _input.Selection.SelectionLength);
                }
                break;

            case ConsoleAction.Copy:
                if (_input.Selection.HasSelection)
                {
                    Native.SetClipboardText(_input.Selection.SelectionValue);
                }
                break;

            case ConsoleAction.Paste:
                // Clear any selected input.
                if (_input.Selection.HasSelection)
                {
                    _input.Remove(_input.Selection.SelectionStart, _input.Selection.SelectionLength);
                }

                string clipboardVal = Native.GetClipboardText().Replace("\n", _input.Console.NewlineSymbol);
                clipboardVal           = clipboardVal.Replace("\t", _input.Console.TabSymbol);
                _singleElementArray[0] = _input.Console.NewlineSymbol;
                string[] newlineSplits = clipboardVal.Split(_singleElementArray, StringSplitOptions.None);
                if (newlineSplits.Length > 1)
                {
                    for (int i = 0; i < newlineSplits.Length - 1; i++)
                    {
                        string entry = newlineSplits[i];
                        if (i == 0)
                        {
                            entry = _input.Substring(0, _input.Caret.Index) + entry;
                        }

                        _input.Console.ConsoleOutput.AddCommandEntry(entry);
                    }
                    _input.Remove(0, _input.Caret.Index);
                }
                _input.Append(newlineSplits[newlineSplits.Length - 1]);
                break;
            }
        }
Exemplo n.º 3
0
        public void RemoveTab()
        {
            bool   isTab     = true;
            int    counter   = 0;
            string tabSymbol = _input.Console.TabSymbol;

            for (int i = _input.Caret.Index - 1; i >= 0; i--)
            {
                if (counter >= tabSymbol.Length)
                {
                    break;
                }
                if (_input[i] != tabSymbol[tabSymbol.Length - counter++ - 1])
                {
                    isTab = false;
                    break;
                }
            }
            int numToRemove = counter;

            if (isTab)
            {
                _input.Remove(Math.Max(0, _input.Caret.Index - tabSymbol.Length), numToRemove);
            }
        }