private static void ViReplaceToBeforeChar(char keyChar, ConsoleKeyInfo?key = null, object arg = null)
 {
     _singleton._groupUndoHelper.StartGroup(ReplaceChar, arg);
     ViCharacterSearcher.Set(keyChar, isBackward: false, isBackoff: true);
     if (ViCharacterSearcher.SearchDelete(keyChar, arg, backoff: true, instigator: (_key, _arg) => ViReplaceToBeforeChar(keyChar, _key, _arg)))
     {
         ViInsertMode(key, arg);
     }
 }
        private static void ViReplaceToChar(char keyChar, ConsoleKeyInfo?key = null, object arg = null)
        {
            int initialCurrent = _singleton._current;

            _singleton._groupUndoHelper.StartGroup(ReplaceChar, arg);
            ViCharacterSearcher.Set(keyChar, isBackward: false, isBackoff: false);
            if (ViCharacterSearcher.SearchDelete(keyChar, arg, backoff: false, instigator: (_key, _arg) => ViReplaceToChar(keyChar, _key, _arg)))
            {
                if (_singleton._current < initialCurrent || _singleton._current >= _singleton._buffer.Length)
                {
                    ViInsertWithAppend(key, arg);
                }
                else
                {
                    ViInsertMode(key, arg);
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// Deletes until given character.
 /// </summary>
 public static void ViDeleteToBeforeChar(char keyChar, ConsoleKeyInfo?key = null, object arg = null)
 {
     ViCharacterSearcher.Set(keyChar, isBackward: false, isBackoff: true);
     ViCharacterSearcher.SearchDelete(keyChar, arg, backoff: true, instigator: (_key, _arg) => ViDeleteToBeforeChar(keyChar, _key, _arg));
 }