Beispiel #1
0
        public void Run_CommandMatch7()
        {
            Create("foo bar");
            var count1 = 0;

            _runner.Add(VimUtil.CreateMotionBinding("aa", data => { count1++; return(NormalCommand.NewYank(data)); }));
            var count2 = 0;

            _runner.Add(VimUtil.CreateNormalBinding("aab", data => { count2++; return(CommandResult.NewCompleted(ModeSwitch.NoSwitch)); }));
            Run("aaw");
            Assert.AreEqual(1, count1);
            Assert.AreEqual(0, count2);
        }
Beispiel #2
0
        public void Run_CommandMatch4()
        {
            Create(String.Empty);
            var count1 = 0;

            _runner.Add(VimUtil.CreateNormalBinding("ab", data => { count1++; return(CommandResult.NewCompleted(ModeSwitch.NoSwitch)); }));
            var count2 = 0;

            _runner.Add(VimUtil.CreateNormalBinding("b", data => { count2++; return(CommandResult.NewCompleted(ModeSwitch.NoSwitch)); }));
            Run("ab");
            Assert.AreEqual(1, count1);
            Assert.AreEqual(0, count2);
        }
Beispiel #3
0
        public void Run_Register3()
        {
            Create(String.Empty);
            var didRun = false;

            _runner.Add(VimUtil.CreateNormalBinding("a", data =>
            {
                Assert.AreSame(_registerMap.GetRegister('d'), data.GetRegister(_registerMap));
                didRun = true;
                return(CommandResult.NewCompleted(ModeSwitch.NoSwitch));
            }));
            Run("\"da");
            Assert.IsTrue(didRun);
        }
Beispiel #4
0
        public void Run_Register1()
        {
            Create(String.Empty);
            var didRun = false;

            _runner.Add(VimUtil.CreateNormalBinding("a", data =>
            {
                Assert.AreEqual(RegisterName.Unnamed, data.RegisterNameOrDefault);
                didRun = true;
                return(CommandResult.NewCompleted(ModeSwitch.NoSwitch));
            }));
            Run("a");
            Assert.IsTrue(didRun);
        }
Beispiel #5
0
        public void Run_Count1()
        {
            Create(String.Empty);
            var didRun = false;

            _runner.Add(VimUtil.CreateNormalBinding("a", data =>
            {
                Assert.IsTrue(data.Count.IsNone());
                didRun = true;
                return(CommandResult.NewCompleted(ModeSwitch.NoSwitch));
            }));
            Run("a");
            Assert.IsTrue(didRun);
        }
Beispiel #6
0
        public void CommandRan3()
        {
            Create("hello world");
            var didSee   = false;
            var command1 = VimUtil.CreateNormalBinding("cat", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch));

            _runner.Add(command1);
            _runner.CommandRan += (notUsed, tuple) =>
            {
                didSee = true;
            };
            _runner.Run('c');
            _runner.Run(KeyInputUtil.EscapeKey);
            Assert.IsFalse(didSee);
        }
Beispiel #7
0
        public void CommandRan2()
        {
            Create("hello world");
            var didSee   = false;
            var command1 = VimUtil.CreateNormalBinding("c", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch));

            _runner.Add(command1);
            _runner.CommandRan += (notUsed, tuple) =>
            {
                Assert.AreSame(command1, tuple.CommandBinding);
                didSee = true;
            };
            _runner.Run('2');
            _runner.Run('c');
            Assert.IsTrue(didSee);
        }
Beispiel #8
0
        public void NestedRun_DontAllowRunDuringBind()
        {
            Create("hello world");
            _runner.Add(VimUtil.CreateNormalBinding("b"));
            _runner.Add(VimUtil.CreateComplexNormalBinding(
                            "a",
                            _ =>
            {
                var res = _runner.Run(KeyInputUtil.CharToKeyInput('b'));
                Assert.IsTrue(res.IsError);
            }));

            var res2 = _runner.Run("ab");

            Assert.IsTrue(res2.IsComplete);
        }
Beispiel #9
0
        public void NestedRun_AllowMultipleRuns()
        {
            Create("");
            var ran1 = false;
            var ran2 = false;

            _runner.Add(VimUtil.CreateNormalBinding("a", command: VimUtil.CreatePing(
                                                        _ =>
            {
                ran1 = true;
                Assert.IsTrue(_runner.Run('b').IsComplete);
            })));
            _runner.Add(VimUtil.CreateNormalBinding("b", command: VimUtil.CreatePing(
                                                        _ =>
            {
                ran2 = true;
            })));
            Assert.IsTrue(_runner.Run('a').IsComplete);
            Assert.IsTrue(ran1);
            Assert.IsTrue(ran2);
        }
Beispiel #10
0
 public void Run_NoMatchingCommand1()
 {
     Create("hello world");
     _runner.Add(VimUtil.CreateNormalBinding("cat", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch)));
     Assert.IsTrue(_runner.Run('b').IsError);
 }