Exemplo n.º 1
0
        public void IncrementalSearch_Reverse()
        {
            _textView.TextBuffer.SetText("hello world");
            _textView.MoveCaretTo(_textView.GetEndPoint().Position);
            var data        = Process("?world", enter: true).AsComplete().Item;
            var patternData = VimUtil.CreatePatternData("world", Path.Backward);

            Assert.Equal(Motion.NewSearch(patternData), data);
        }
            public void OneTimeDisabled()
            {
                Create("dog cat");
                _vimData.LastSearchData = VimUtil.CreateSearchData("dog");
                _vimData.SuspendDisplayPattern();
                var ret = TryGetTagsPrompt(_textBuffer.GetExtent());

                Assert.Empty(ret);
            }
            public void NotVisible()
            {
                Create("dog cat");
                _vimData.LastSearchData          = VimUtil.CreateSearchData("dog");
                _asyncTaggerSourceRaw._isVisible = false;
                var ret = TryGetTagsPrompt(_textBuffer.GetExtent());

                Assert.Empty(ret);
            }
Exemplo n.º 4
0
            public void OneTimeDisabled()
            {
                Create("dog cat");
                _vimData.LastPatternData = VimUtil.CreatePatternData("dog");
                _vimData.SuspendDisplayPattern();
                var ret = TryGetTagsPrompt(_textBuffer.GetExtent());

                Assert.Equal(0, ret.Count);
            }
Exemplo n.º 5
0
            public void Remove1()
            {
                Create(string.Empty);
                var command1 = VimUtil.CreateNormalBinding("foo", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch));

                _runner.Add(command1);
                _runner.Remove(command1.KeyInputSet);
                Assert.Empty(_runner.Commands);
            }
Exemplo n.º 6
0
        public void LastSearch1()
        {
            Create(" foo bar");
            var data = VimUtil.CreatePatternData("foo", Path.Forward);

            ProcessWithEnter("foo");
            Assert.Equal(data, _vimData.LastPatternData);
            _factory.Verify();
        }
Exemplo n.º 7
0
            public void Add4()
            {
                Create(string.Empty);
                var command1 = VimUtil.CreateNormalBinding("foo", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch));
                var command2 = VimUtil.CreateNormalBinding("foo");

                _runner.Add(command1);
                Assert.Throws <ArgumentException>(() => _runner.Add(command2));
            }
            public void OneTimeDisabled()
            {
                Create("dog cat");
                _vimData.LastPatternData = VimUtil.CreatePatternData("dog");
                _asyncTaggerSourceRaw._oneTimeDisabled = true;
                var ret = TryGetTagsPrompt(_textBuffer.GetExtent());

                Assert.Equal(0, ret.Count);
            }
Exemplo n.º 9
0
            public void CommandMatch2()
            {
                Create(string.Empty);
                var count1 = 0;

                _runner.Add(VimUtil.CreateNormalBinding("a", data => { count1++; return(CommandResult.NewCompleted(ModeSwitch.NoSwitch)); }));
                Run("b");
                Assert.Equal(0, count1);
            }
Exemplo n.º 10
0
 public void Reset1()
 {
     Create("hello world");
     _runner.Add(VimUtil.CreateNormalBinding("abc", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch)));
     Run("a");
     Assert.True(_runner.IsWaitingForMoreInput);
     _runner.ResetState();
     Assert.False(_runner.IsWaitingForMoreInput);
 }
Exemplo n.º 11
0
        public void Equality1()
        {
            var i1 = VimUtil.CreateKeyInput(c: 'c');

            Assert.Equal(i1, VimUtil.CreateKeyInput(c: 'c'));
            Assert.NotEqual(i1, VimUtil.CreateKeyInput(c: 'd'));
            Assert.NotEqual(i1, VimUtil.CreateKeyInput(c: 'c', mod: KeyModifiers.Shift));
            Assert.NotEqual(i1, VimUtil.CreateKeyInput(c: 'c', mod: KeyModifiers.Alt));
        }
Exemplo n.º 12
0
 public void LongCommandPropagateMode()
 {
     Create("hello world");
     _runner.Add(VimUtil.CreateComplexNormalBinding("a", x => true, KeyRemapMode.Language));
     _runner.Run('a');
     Assert.Equal(_runner.KeyRemapMode, KeyRemapMode.Language);
     _runner.Run('b');
     Assert.Equal(_runner.KeyRemapMode, KeyRemapMode.Language);
 }
Exemplo n.º 13
0
 public void InputNo_TwoMatchesInRange()
 {
     Create("cat", "cat", "rabbit", "tree");
     _mode.OnEnter(VimUtil.CreateSubstituteArgument(_textBuffer.GetLine(0).Extent, "cat", "bird"));
     Assert.True(_mode.Process('n').IsHandledNoSwitch());
     Assert.Equal(_textBuffer.GetLine(1).Extent, _mode.CurrentMatch.Value);
     Assert.Equal("cat", _textBuffer.GetLine(0).GetText());
     Assert.Equal("cat", _textBuffer.GetLine(1).GetText());
 }
Exemplo n.º 14
0
        private static MotionResult CreateMotionResult()
        {
            var point = MockObjectFactory.CreateSnapshotPoint(42);

            return(VimUtil.CreateMotionResult(
                       new SnapshotSpan(point, point),
                       true,
                       MotionKind.CharacterWiseInclusive));
        }
Exemplo n.º 15
0
        public void FindNext_IgnoreCaseConflictiong()
        {
            Create("cat dog FISH");
            _globalSettings.IgnoreCase = false;
            var data   = VimUtil.CreateSearchData("fish", options: SearchOptions.ConsiderIgnoreCase);
            var result = _search.FindNext(data, _textBuffer.GetPoint(0), _wordNavigator);

            Assert.True(result.IsNotFound);
        }
Exemplo n.º 16
0
            public void ConsiderIgnoreCase()
            {
                Create("cat dog FISH");
                _globalSettings.IgnoreCase = true;
                var data   = VimUtil.CreateSearchData("fish", options: SearchOptions.ConsiderIgnoreCase);
                var result = _search.FindNext(_textBuffer.GetPoint(0), data, _wordUtil.SnapshotWordNavigator);

                Assert.True(result.IsFound);
            }
Exemplo n.º 17
0
 public void NoMatchingCommand3()
 {
     Create("hello world");
     _runner.Add(VimUtil.CreateNormalBinding("cot", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch)));
     _runner.Add(VimUtil.CreateNormalBinding("cook", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch)));
     Assert.True(_runner.Run('c').IsNeedMoreInput);
     Assert.True(_runner.Run('o').IsNeedMoreInput);
     Assert.True(_runner.Run('b').IsError);
 }
            public void WithMatch()
            {
                Create("foo is the bar");
                _vimData.LastPatternData = VimUtil.CreatePatternData("foo");
                var ret = GetTags(_textBuffer.GetExtent());

                Assert.Equal(1, ret.Count());
                Assert.Equal(new SnapshotSpan(_textBuffer.CurrentSnapshot, 0, 3), ret.Single().Span);
            }
            public void NotVisible()
            {
                Create("dog cat");
                _vimData.LastPatternData         = VimUtil.CreatePatternData("dog");
                _asyncTaggerSourceRaw._isVisible = false;
                var ret = TryGetTagsPrompt(_textBuffer.GetExtent());

                Assert.Equal(0, ret.Count);
            }
Exemplo n.º 20
0
            public void Count4()
            {
                Create(string.Empty);
                var didRun = false;

                _runner.Add(VimUtil.CreateNormalBinding("a", () => { didRun = true; }));
                Assert.True(_runner.Run('0').IsError);
                Assert.False(didRun);
            }
            public void HighlightDisabled()
            {
                Create("dog cat");
                _vimData.LastPatternData        = VimUtil.CreatePatternData("dog");
                _globalSettings.HighlightSearch = false;
                var ret = TryGetTagsPrompt(_textBuffer.GetExtent());

                Assert.Equal(0, ret.Count);
            }
Exemplo n.º 22
0
 public void InputYes_TwoMatchesOnLineAndReplaceAll()
 {
     Create("cat cat", "dog", "rabbit", "tree");
     _mode.OnEnter(VimUtil.CreateSubstituteArgument(_textBuffer.GetSpan(0, 3), "cat", "bird", SubstituteFlags.ReplaceAll, range: _textBuffer.GetLineRange(0)));
     _operations.Setup(x => x.MoveCaretToPointAndEnsureVisible(_textBuffer.GetPoint(5))).Verifiable();
     Assert.True(_mode.Process('y').IsHandledNoSwitch());
     Assert.Equal("bird cat", _textBuffer.GetLine(0).GetText());
     Assert.Equal(_textBuffer.GetSpan(5, 3), _mode.CurrentMatch.Value);
     _factory.Verify();
 }
            public void ZeroLengthResults()
            {
                Create("cat");
                _vimData.LastPatternData = VimUtil.CreatePatternData(@"\|i\>");
                var ret = GetTags(_textBuffer.GetExtent());

                Assert.Equal(
                    new[] { "cat" },
                    ret.Select(x => x.Span.GetText()).ToList());
            }
Exemplo n.º 24
0
        internal static CommandUtil CreateCommandUtil(
            ITextView textView,
            ICommonOperations operations                     = null,
            IMotionUtil motionUtil                           = null,
            IStatusUtil statusUtil                           = null,
            IRegisterMap registerMap                         = null,
            IMarkMap markMap                                 = null,
            IVimData vimData                                 = null,
            IVimLocalSettings localSettings                  = null,
            IUndoRedoOperations undoRedOperations            = null,
            ISmartIndentationService smartIndentationService = null,
            IFoldManager foldManager                         = null,
            IVimHost vimHost                                 = null,
            IMacroRecorder recorder                          = null,
            ISearchService searchService                     = null,
            ITextStructureNavigator wordNavigator            = null,
            IJumpList jumpList                               = null)
        {
            statusUtil              = statusUtil ?? new StatusUtil();
            undoRedOperations       = undoRedOperations ?? VimUtil.CreateUndoRedoOperations(statusUtil);
            localSettings           = localSettings ?? new LocalSettings(new GlobalSettings());
            registerMap             = registerMap ?? CreateRegisterMap(MockObjectFactory.CreateClipboardDevice().Object);
            markMap                 = markMap ?? new MarkMap(new TrackingLineColumnService());
            vimData                 = vimData ?? new VimData();
            motionUtil              = motionUtil ?? CreateTextViewMotionUtil(textView, markMap: markMap, vimData: vimData, settings: localSettings);
            operations              = operations ?? CreateCommonOperations(textView, localSettings, vimData: vimData, statusUtil: statusUtil);
            smartIndentationService = smartIndentationService ?? CreateSmartIndentationService();
            foldManager             = foldManager ?? CreateFoldManager(textView.TextBuffer);
            searchService           = searchService ?? CreateSearchService(localSettings.GlobalSettings);
            wordNavigator           = wordNavigator ?? CreateTextStructureNavigator(textView.TextBuffer, WordKind.NormalWord);
            jumpList                = jumpList ?? CreateJumpList();
            vimHost                 = vimHost ?? new MockVimHost();
            var vim = MockObjectFactory.CreateVim(
                registerMap: registerMap,
                map: markMap,
                host: vimHost,
                vimData: vimData,
                recorder: recorder,
                searchService: searchService);
            var buffer = MockObjectFactory.CreateVimBuffer(
                textView: textView,
                settings: localSettings,
                motionUtil: motionUtil,
                vim: vim.Object,
                wordNavigator: wordNavigator,
                jumpList: jumpList);

            return(new CommandUtil(
                       buffer.Object,
                       operations,
                       statusUtil,
                       undoRedOperations,
                       smartIndentationService,
                       foldManager));
        }
Exemplo n.º 25
0
        private void RunCommand(string command)
        {
            if (command.StartsWith(":"))
            {
                command = command.Substring(1);
            }

            var lineCommand = VimUtil.ParseLineCommand(command);

            _interpreter.RunLineCommand(lineCommand);
        }
Exemplo n.º 26
0
        public void LinkedWithNextChange_Simple()
        {
            Create("hello");
            var runData1 = VimUtil.CreateCommandRunData(flags: CommandFlags.LinkedWithNextCommand | CommandFlags.Repeatable);
            var runData2 = VimUtil.CreateCommandRunData(flags: CommandFlags.Repeatable, command: Command.NewInsertCommand(InsertCommand.NewInsertText("foo")));

            _runner.Raise(x => x.CommandRan += null, (object)null, new CommandRunDataEventArgs(runData1));
            _runner.Raise(x => x.CommandRan += null, (object)null, new CommandRunDataEventArgs(runData2));
            var lastCommnad = _vimData.LastCommand;

            Assert.True(lastCommnad.IsSome(x => x.IsLinkedCommand));
        }
Exemplo n.º 27
0
        private void RunCommand(string command)
        {
            if (command.StartsWith(":"))
            {
                command = command.Substring(1);
            }

            var parseResult = VimUtil.ParseLineCommand(command);

            Assert.True(parseResult.IsSucceeded);
            _interpreter.RunLineCommand(parseResult.AsSucceeded().Item);
        }
Exemplo n.º 28
0
            public void Add2()
            {
                Create(string.Empty);
                var command1 = VimUtil.CreateNormalBinding("foo", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch));
                var command2 = VimUtil.CreateNormalBinding("bar", data => CommandResult.NewCompleted(ModeSwitch.NoSwitch));

                _runner.Add(command1);
                _runner.Add(command2);
                Assert.Equal(2, _runner.Commands.Count());
                Assert.Contains(command1, _runner.Commands);
                Assert.Contains(command2, _runner.Commands);
            }
Exemplo n.º 29
0
        public void LastSearch2()
        {
            Create(" foo bar");

            ProcessWithEnter("foo bar");
            Assert.Equal(VimUtil.CreatePatternData("foo bar", Path.Forward), _vimData.LastPatternData);
            _factory.Verify();

            _textView.MoveCaretTo(0);
            ProcessWithEnter("bar");
            Assert.Equal(VimUtil.CreatePatternData("bar", Path.Forward), _vimData.LastPatternData);
            _factory.Verify();
        }
Exemplo n.º 30
0
            public void 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.Equal(1, count1);
                Assert.Equal(0, count2);
            }