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); }
public void OneTimeDisabled() { Create("dog cat"); _vimData.LastPatternData = VimUtil.CreatePatternData("dog"); _vimData.SuspendDisplayPattern(); var ret = TryGetTagsPrompt(_textBuffer.GetExtent()); Assert.Equal(0, ret.Count); }
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); }
public void LastSearch1() { Create(" foo bar"); var data = VimUtil.CreatePatternData("foo", Path.Forward); ProcessWithEnter("foo"); Assert.Equal(data, _vimData.LastPatternData); _factory.Verify(); }
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); }
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); }
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); }
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)); }
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); }
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()); }
private static MotionResult CreateMotionResult() { var point = MockObjectFactory.CreateSnapshotPoint(42); return(VimUtil.CreateMotionResult( new SnapshotSpan(point, point), true, MotionKind.CharacterWiseInclusive)); }
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); }
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); }
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); }
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); }
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()); }
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)); }
private void RunCommand(string command) { if (command.StartsWith(":")) { command = command.Substring(1); } var lineCommand = VimUtil.ParseLineCommand(command); _interpreter.RunLineCommand(lineCommand); }
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)); }
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); }
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); }
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(); }
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); }