public CommandModeTest() { _textView = CreateTextView(); _textBuffer = _textView.TextBuffer; _vimBuffer = CreateVimBuffer(CreateVimBufferData(_textView)); var factory = new MockRepository(MockBehavior.Strict); var commonOperations = CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData); _modeRaw = new CommandMode(_vimBuffer, commonOperations); _mode = _modeRaw; _mode.OnEnter(ModeArgument.None); }
/// <summary> /// Create the IVimBuffer with the given set of lines. Note that we intentionally don't /// set the mode to Insert here because the given commands should work irrespective of the /// mode. There are a few tests that rely on behavior from SelectionChangeTracker so they set /// the mode to Insert. /// </summary> /// <param name="lines"></param> protected virtual void Create(params string[] lines) { _textView = CreateTextView(lines); _textBuffer = _textView.TextBuffer; _vimBuffer = Vim.CreateVimBuffer(_textView); _globalSettings = _vimBuffer.GlobalSettings; _localSettings = _vimBuffer.LocalSettings; var operations = CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData); var motionUtil = new MotionUtil(_vimBuffer.VimBufferData, operations); _insertUtilRaw = new InsertUtil(_vimBuffer.VimBufferData, motionUtil, operations); _insertUtil = _insertUtilRaw; }
private void Create(VisualKind kind, int caretPosition, params string[] lines) { _textView = CreateTextView(lines); _textView.MoveCaretTo(caretPosition); _globalSettings = new GlobalSettings(); var localSettings = new LocalSettings(_globalSettings); var vimTextBuffer = MockObjectFactory.CreateVimTextBuffer(_textView.TextBuffer, localSettings); vimTextBuffer.SetupGet(x => x.UseVirtualSpace).Returns(false); _vimBufferData = MockObjectFactory.CreateVimBufferData(vimTextBuffer.Object, _textView); _incrementalSearch = new Mock <IIncrementalSearch>(MockBehavior.Loose); _commonOperations = CommonOperationsFactory.GetCommonOperations(_vimBufferData); _tracker = new SelectionTracker(_vimBufferData, _commonOperations, _incrementalSearch.Object, kind); _tracker.Start(); }
public CommandMarginControllerIntegrationTest() { _vimBuffer = CreateVimBuffer(); var parentElement = new FrameworkElement(); _control = new CommandMarginControl(); _controller = new CommandMarginController( _vimBuffer, parentElement, _control, VimEditorHost.EditorFormatMapService.GetEditorFormatMap(_vimBuffer.TextView), VimEditorHost.ClassificationFormatMapService.GetClassificationFormatMap(_vimBuffer.TextView), CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData)); }
public MotionCaptureTest() { _textView = CreateTextView(); var vimTextBuffer = Vim.CreateVimTextBuffer(_textView.TextBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); _incrementalSearch = new IncrementalSearch( vimBufferData, CommonOperationsFactory.GetCommonOperations(vimBufferData)); _localSettings = vimTextBuffer.LocalSettings; _captureRaw = new MotionCapture( vimBufferData, _incrementalSearch); _capture = _captureRaw; }
public CommandMarginControllerIntegrationTest() { _vimBuffer = CreateVimBuffer(); _clipboardDevice = (TestableClipboardDevice)CompositionContainer.GetExportedValue <IClipboardDevice>(); var parentElement = new FrameworkElement(); _control = new CommandMarginControl(); _controller = new CommandMarginController( _vimBuffer, parentElement, _control, VimEditorHost.EditorFormatMapService.GetEditorFormatMap(_vimBuffer.TextView), VimEditorHost.ClassificationFormatMapService.GetClassificationFormatMap(_vimBuffer.TextView), CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData), _clipboardDevice); }
public CommandModeTest() { _textView = CreateTextView(); _textBuffer = _textView.TextBuffer; _vimBuffer = CreateVimBuffer(CreateVimBufferData(_textView)); var factory = new MockRepository(MockBehavior.Strict); var commonOperations = CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData); var interpreter = new Interpreter.Interpreter( _vimBuffer, commonOperations, factory.Create <IFoldManager>().Object, factory.Create <IFileSystem>().Object, factory.Create <IBufferTrackingService>().Object); _modeRaw = new CommandMode(_vimBuffer, commonOperations, interpreter); _mode = _modeRaw; }
internal CommandUtil CreateCommandUtil( IVimBufferData vimBufferData, IMotionUtil motionUtil = null, ICommonOperations operations = null, IFoldManager foldManager = null, InsertUtil insertUtil = null) { motionUtil = motionUtil ?? new MotionUtil(vimBufferData, operations); operations = operations ?? CommonOperationsFactory.GetCommonOperations(vimBufferData); foldManager = foldManager ?? VimUtil.CreateFoldManager(vimBufferData.TextView, vimBufferData.StatusUtil); insertUtil = insertUtil ?? new InsertUtil(vimBufferData, operations); return(new CommandUtil( vimBufferData, motionUtil, operations, foldManager, insertUtil, _bulkOperations)); }
protected CommandMarginControllerTest() { _factory = new MockRepository(MockBehavior.Strict); _marginControl = new CommandMarginControl(); _marginControl.CommandLineTextBox.Text = string.Empty; _search = _factory.Create <IIncrementalSearch>(); _search.SetupGet(x => x.HasActiveSession).Returns(false); _search.SetupGet(x => x.InPasteWait).Returns(false); _vimBuffer = new MockVimBuffer { IncrementalSearchImpl = _search.Object, VimImpl = MockObjectFactory.CreateVim(factory: _factory).Object, CommandModeImpl = _factory.Create <ICommandMode>(MockBehavior.Loose).Object }; var textBuffer = CreateTextBuffer(new[] { "" }); _vimBuffer.TextViewImpl = TextEditorFactoryService.CreateTextView(textBuffer); var vimBufferData = CreateVimBufferData(_vimBuffer.TextView); _globalSettings = new Mock <IVimGlobalSettings>(); _vimBuffer.GlobalSettingsImpl = _globalSettings.Object; var editorFormatMap = _factory.Create <IEditorFormatMap>(MockBehavior.Loose); editorFormatMap.Setup(x => x.GetProperties(It.IsAny <string>())).Returns(new ResourceDictionary()); var parentVisualElement = _factory.Create <FrameworkElement>(); _clipboardDevice = (TestableClipboardDevice)CompositionContainer.GetExportedValue <IClipboardDevice>(); _controller = new CommandMarginController( _vimBuffer, parentVisualElement.Object, _marginControl, VimEditorHost.EditorFormatMapService.GetEditorFormatMap(_vimBuffer.TextView), VimEditorHost.ClassificationFormatMapService.GetClassificationFormatMap(_vimBuffer.TextView), CommonOperationsFactory.GetCommonOperations(vimBufferData), _clipboardDevice, false); }
protected virtual void Create(params string[] lines) { _factory = new MockRepository(MockBehavior.Strict); _marginControl = new CommandMarginControl(); _marginControl.CommandLineTextBox.Text = string.Empty; _vimBuffer = CreateVimBuffer(lines); _textBuffer = _vimBuffer.TextBuffer; _textView = _vimBuffer.TextView; _keyboardDevice = new MockKeyboardDevice(); var parentVisualElement = _factory.Create <FrameworkElement>(); _controller = new CommandMarginController( _vimBuffer, parentVisualElement.Object, _marginControl, VimEditorHost.EditorFormatMapService.GetEditorFormatMap(_vimBuffer.TextView), VimEditorHost.ClassificationFormatMapService.GetClassificationFormatMap(_vimBuffer.TextView), CommonOperationsFactory.GetCommonOperations(_vimBuffer.VimBufferData)); }
protected void Create(params string[] lines) { _statusUtil = new TestableStatusUtil(); _vimData = Vim.VimData; _vimBufferData = CreateVimBufferData( CreateTextView(lines), statusUtil: _statusUtil); _vimBuffer = CreateVimBuffer(_vimBufferData); _vimTextBuffer = _vimBufferData.VimTextBuffer; _localSettings = _vimBufferData.LocalSettings; _globalSettings = _localSettings.GlobalSettings; _textBuffer = _vimBufferData.TextBuffer; _textView = _vimBufferData.TextView; _interpreter = new global::Vim.Interpreter.Interpreter( _vimBuffer, CommonOperationsFactory.GetCommonOperations(_vimBufferData), FoldManagerFactory.GetFoldManager(_vimBufferData.TextView), new FileSystem(), BufferTrackingService); _keyMap = Vim.KeyMap; }
private void Create(params string[] lines) { _vimHost = (MockVimHost)Vim.VimHost; _textView = CreateTextView(lines); _globalSettings = Vim.GlobalSettings; _globalSettings.IncrementalSearch = true; _globalSettings.WrapScan = true; var vimTextBuffer = Vim.CreateVimTextBuffer(_textView.TextBuffer); _factory = new MockRepository(MockBehavior.Strict); _statusUtil = _factory.Create<IStatusUtil>(); _statusUtil.Setup(x => x.OnWarning(Resources.Common_SearchBackwardWrapped)); _statusUtil.Setup(x => x.OnWarning(Resources.Common_SearchForwardWrapped)); _vimData = Vim.VimData; var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); var operations = CommonOperationsFactory.GetCommonOperations(vimBufferData); _searchRaw = new IncrementalSearch(vimBufferData, operations); _search = _searchRaw; }
public void Start4() { Create(VisualKind.Character); var view = CreateTextView("foo bar baz"); view.Selection.Select(new SnapshotSpan(view.TextSnapshot, 1, 3), false); var vimTextBuffer = new Mock <IVimTextBuffer>(MockBehavior.Strict); vimTextBuffer.SetupGet(x => x.Vim).Returns(Vim); vimTextBuffer.SetupGet(x => x.UndoRedoOperations).Returns(_vimBufferData.VimTextBuffer.UndoRedoOperations); vimTextBuffer.SetupGet(x => x.WordNavigator).Returns(_vimBufferData.VimTextBuffer.WordNavigator); vimTextBuffer.SetupGet(x => x.WordUtil).Returns(_vimBufferData.VimTextBuffer.WordUtil); vimTextBuffer.SetupGet(x => x.LocalSettings).Returns(_vimBufferData.VimTextBuffer.LocalSettings); vimTextBuffer.SetupGet(x => x.UseVirtualSpace).Returns(false); vimTextBuffer.SetupSet(x => x.LastVisualSelection = It.IsAny <Microsoft.FSharp.Core.FSharpOption <VisualSelection> >()); var vimBufferData = MockObjectFactory.CreateVimBufferData(vimTextBuffer.Object, view); var commonOperations = CommonOperationsFactory.GetCommonOperations(vimBufferData); var tracker = new SelectionTracker(vimBufferData, commonOperations, _incrementalSearch.Object, VisualKind.Character); tracker.Start(); Assert.Equal(view.Selection.AnchorPoint.Position.Position, tracker.AnchorPoint.Position); }
internal CommandUtil CreateCommandUtil( IVimBufferData vimBufferData, IMotionUtil motionUtil = null, ICommonOperations operations = null, IFoldManager foldManager = null, InsertUtil insertUtil = null) { motionUtil = motionUtil ?? new MotionUtil(vimBufferData, operations); operations = operations ?? CommonOperationsFactory.GetCommonOperations(vimBufferData); foldManager = foldManager ?? VimUtil.CreateFoldManager(vimBufferData.TextView, vimBufferData.StatusUtil); insertUtil = insertUtil ?? new InsertUtil(vimBufferData, motionUtil, operations); var lineChangeTracker = new LineChangeTracker(vimBufferData); return new CommandUtil( vimBufferData, motionUtil, operations, foldManager, insertUtil, _vimEditorHost.BulkOperations, MouseDevice, lineChangeTracker); }
private void Create(KeyRemapMode countKeyRemapMode, params string[] lines) { _textView = CreateTextView(lines); _vimTextBuffer = Vim.CreateVimTextBuffer(_textView.TextBuffer); _registerMap = Vim.RegisterMap; var vimBufferData = CreateVimBufferData( _vimTextBuffer, _textView); _commandUtil = CreateCommandUtil(vimBufferData); var incrementalSearch = new IncrementalSearch( vimBufferData, CommonOperationsFactory.GetCommonOperations(vimBufferData)); var motionCapture = new MotionCapture(vimBufferData, incrementalSearch); _runnerRaw = new CommandRunner( vimBufferData, motionCapture, _commandUtil, VisualKind.Character, countKeyRemapMode); _runner = _runnerRaw; }
protected void Create(bool insertMode, params string[] lines) { _factory = new MockRepository(MockBehavior.Strict) { DefaultValue = DefaultValue.Mock }; _textView = CreateTextView(lines); _textBuffer = _textView.TextBuffer; _vim = _factory.Create <IVim>(MockBehavior.Loose); _editorOptions = _factory.Create <IEditorOptions>(MockBehavior.Loose); _textChangeTracker = _factory.Create <ITextChangeTracker>(MockBehavior.Loose); _textChangeTracker.SetupGet(x => x.CurrentChange).Returns(FSharpOption <TextChange> .None); _undoRedoOperations = new UndoRedoOperations(VimHost, new StatusUtil(), FSharpOption <ITextUndoHistory> .None, null); _wordCompletionSessionFactoryService = _factory.Create <IWordCompletionSessionFactoryService>(); var localSettings = new LocalSettings(Vim.GlobalSettings); _vimBuffer = Vim.CreateVimBuffer(_textView); _globalSettings = _vimBuffer.GlobalSettings; var vimTextBuffer = Vim.GetOrCreateVimTextBuffer(_textView.TextBuffer); var vimBufferData = CreateVimBufferData(vimTextBuffer, _textView); _operations = CommonOperationsFactory.GetCommonOperations(vimBufferData); _broker = _factory.Create <IDisplayWindowBroker>(); _broker.SetupGet(x => x.IsCompletionActive).Returns(false); _broker.SetupGet(x => x.IsQuickInfoActive).Returns(false); _broker.SetupGet(x => x.IsSignatureHelpActive).Returns(false); _insertUtil = _factory.Create <IInsertUtil>(); _insertUtil.Setup(x => x.NewUndoSequence()); _motionUtil = _factory.Create <IMotionUtil>(); _commandUtil = _factory.Create <ICommandUtil>(); _capture = _factory.Create <IMotionCapture>(); // Setup the mouse. By default we say it has no buttons down as that's the normal state _mouseDevice = _factory.Create <IMouseDevice>(); _mouseDevice.SetupGet(x => x.IsLeftButtonPressed).Returns(false); // Setup the keyboard. By default we don't say that any button is pressed. Insert mode is usually // only concerned with arrow keys and we will set those up as appropriate for the typing tests _keyboardDevice = _factory.Create <IKeyboardDevice>(); _keyboardDevice.Setup(x => x.IsArrowKeyDown).Returns(false); _modeRaw = new global::Vim.Modes.Insert.InsertMode( _vimBuffer, _operations, _broker.Object, _editorOptions.Object, _undoRedoOperations, _textChangeTracker.Object, _insertUtil.Object, _motionUtil.Object, _commandUtil.Object, _capture.Object, !insertMode, _keyboardDevice.Object, _mouseDevice.Object, _wordCompletionSessionFactoryService.Object); _mode = _modeRaw; _mode.OnEnter(ModeArgument.None); _mode.CommandRan += (sender, e) => { _lastCommandRan = e.CommandRunData; }; }
public void SpecialMarksAreSet() { var s_emptyList = FSharpList <Mark> .Empty; OpenFakeVimBufferTestWindow(""); var interpreter = new VimInterpreter( _vimBuffer, CommonOperationsFactory.GetCommonOperations(_vimBufferData), FoldManagerFactory.GetFoldManager(_vimBufferData.TextView), new FileSystem(), BufferTrackingService); _vimBuffer.ProcessNotation("<ESC>i1<CR>2<CR>3<CR>4<CR>5<CR>6<CR>7<CR>8<CR>9<CR>0<ESC>"); interpreter.RunDisplayMarks(s_emptyList); var expectedMarks = new[] { @"mark line col file/text", @" ' 1 0 VimBufferTest.cs", @" "" 1 0 VimBufferTest.cs", //@" [ 1 0 VimBufferTest.cs", //@" ] 10 1 VimBufferTest.cs", @" ^ 10 1 VimBufferTest.cs", @" . 10 0 VimBufferTest.cs", }; Assert.Equal(string.Join(Environment.NewLine, expectedMarks), _statusUtil.LastStatus); // set an upper and lower mark _vimBuffer.ProcessNotation("kmzkmZ"); _vimBuffer.ProcessNotation("1G"); interpreter.RunDisplayMarks(s_emptyList); expectedMarks = new[] { @"mark line col file/text", @" ' 8 0 VimBufferTest.cs", @" z 9 0 VimBufferTest.cs", @" Z 8 0 VimBufferTest.cs", @" "" 1 0 VimBufferTest.cs", //@" [ 1 0 VimBufferTest.cs", //@" ] 10 1 VimBufferTest.cs", @" ^ 10 1 VimBufferTest.cs", @" . 10 0 VimBufferTest.cs", }; Assert.Equal(string.Join(Environment.NewLine, expectedMarks), _statusUtil.LastStatus); _vimBuffer.ProcessNotation("yy"); interpreter.RunDisplayMarks(s_emptyList); expectedMarks = new[] { @"mark line col file/text", @" ' 8 0 VimBufferTest.cs", @" z 9 0 VimBufferTest.cs", @" Z 8 0 VimBufferTest.cs", @" "" 1 0 VimBufferTest.cs", //@" [ 1 0 VimBufferTest.cs", //@" ] 10 1 VimBufferTest.cs", @" ^ 10 1 VimBufferTest.cs", @" . 10 0 VimBufferTest.cs", }; Assert.Equal(string.Join(Environment.NewLine, expectedMarks), _statusUtil.LastStatus); // set an upper and lower mark _vimBuffer.ProcessNotation("jmajmA2k"); _vimBuffer.ProcessNotation("5jp"); interpreter.RunDisplayMarks(s_emptyList); expectedMarks = new[] { @"mark line col file/text", @" ' 9 0 VimBufferTest.cs", @" a 2 0 VimBufferTest.cs", @" z 10 0 VimBufferTest.cs", @" A 3 0 VimBufferTest.cs", @" Z 9 0 VimBufferTest.cs", @" "" 1 0 VimBufferTest.cs", //@" [ 7 0 VimBufferTest.cs", //@" ] 7 1 VimBufferTest.cs", @" ^ 11 1 VimBufferTest.cs", @" . 7 1 VimBufferTest.cs", }; Assert.Equal(string.Join(Environment.NewLine, expectedMarks), _statusUtil.LastStatus); _vimBuffer.ProcessNotation("kV<ESC>"); interpreter.RunDisplayMarks(s_emptyList); expectedMarks = new[] { @"mark line col file/text", @" ' 9 0 VimBufferTest.cs", @" a 2 0 VimBufferTest.cs", @" z 10 0 VimBufferTest.cs", @" A 3 0 VimBufferTest.cs", @" Z 9 0 VimBufferTest.cs", @" "" 1 0 VimBufferTest.cs", //@" [ 7 0 VimBufferTest.cs", //@" ] 7 1 VimBufferTest.cs", @" ^ 11 1 VimBufferTest.cs", @" . 7 1 VimBufferTest.cs", @" < 6 0 VimBufferTest.cs", @" > 6 1 VimBufferTest.cs", }; Assert.Equal(string.Join(Environment.NewLine, expectedMarks), _statusUtil.LastStatus); }