예제 #1
0
 /// <summary>
 /// This is not technically a Mock but often we want to create it with mocked
 /// backing values
 /// </summary>
 /// <returns></returns>
 public static IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IJumpList jumpList     = null,
     IStatusUtil statusUtil = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimWindowSettings windowSettings      = null,
     IWordUtil wordUtil     = null,
     MockRepository factory = null)
 {
     factory            = factory ?? new MockRepository(MockBehavior.Strict);
     statusUtil         = statusUtil ?? factory.Create <IStatusUtil>().Object;
     undoRedoOperations = undoRedoOperations ?? factory.Create <IUndoRedoOperations>().Object;
     jumpList           = jumpList ?? factory.Create <IJumpList>().Object;
     wordUtil           = wordUtil ?? factory.Create <IWordUtil>().Object;
     windowSettings     = windowSettings ?? factory.Create <IVimWindowSettings>().Object;
     return(new VimBufferData(
                vimTextBuffer,
                textView,
                windowSettings,
                jumpList,
                statusUtil,
                undoRedoOperations,
                wordUtil));
 }
예제 #2
0
 internal static IMotionUtil CreateTextViewMotionUtil(
     ITextView textView,
     IMarkMap markMap                  = null,
     IVimLocalSettings settings        = null,
     ISearchService search             = null,
     ITextStructureNavigator navigator = null,
     IJumpList jumpList                = null,
     IStatusUtil statusUtil            = null,
     IVimData vimData                  = null)
 {
     markMap    = markMap ?? new MarkMap(new TrackingLineColumnService());
     settings   = settings ?? new LocalSettings(new GlobalSettings(), textView);
     search     = search ?? CreateSearchService(settings.GlobalSettings);
     navigator  = navigator ?? CreateTextStructureNavigator(textView.TextBuffer);
     jumpList   = jumpList ?? CreateJumpList();
     statusUtil = statusUtil ?? new StatusUtil();
     vimData    = vimData ?? new VimData();
     return(new MotionUtil(
                textView,
                markMap,
                settings,
                search,
                navigator,
                jumpList,
                statusUtil,
                vimData));
 }
예제 #3
0
        internal static IIncrementalSearch CreateIncrementalSearch(
            ITextView textView,
            IVimLocalSettings settings,
            IVimData vimData,
            ISearchService search = null,
            IOutliningManager outliningManager = null,
            IStatusUtil statusUtil             = null)
        {
            vimData    = vimData ?? new VimData();
            search     = search ?? CreateSearchService(settings.GlobalSettings);
            statusUtil = statusUtil ?? new StatusUtil();
            var nav        = CreateTextStructureNavigator(textView.TextBuffer);
            var operations = CreateCommonOperations(
                textView: textView,
                localSettings: settings,
                outlining: outliningManager,
                vimData: vimData,
                searchService: search);

            return(new IncrementalSearch(
                       operations,
                       settings,
                       nav,
                       statusUtil,
                       vimData));
        }
예제 #4
0
 /// <summary>
 /// This is not technically a Mock but often we want to create it with mocked
 /// backing values
 /// </summary>
 /// <returns></returns>
 public static IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IJumpList jumpList                 = null,
     IStatusUtil statusUtil             = null,
     IVimWindowSettings windowSettings  = null,
     ICaretRegisterMap caretRegisterMap = null,
     ISelectionUtil selectionUtil       = null,
     MockRepository factory             = null)
 {
     factory          = factory ?? new MockRepository(MockBehavior.Strict);
     statusUtil       = statusUtil ?? factory.Create <IStatusUtil>().Object;
     jumpList         = jumpList ?? factory.Create <IJumpList>().Object;
     windowSettings   = windowSettings ?? factory.Create <IVimWindowSettings>().Object;
     caretRegisterMap = caretRegisterMap ?? factory.Create <ICaretRegisterMap>().Object;
     selectionUtil    = selectionUtil ?? new SingleSelectionUtil(textView);
     return(new VimBufferData(
                vimTextBuffer,
                textView,
                windowSettings,
                jumpList,
                statusUtil,
                selectionUtil,
                caretRegisterMap));
 }
예제 #5
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));
        }
예제 #6
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     ITextView textView,
     IStatusUtil statusUtil            = null,
     IJumpList jumpList                = null,
     IVimWindowSettings windowSettings = null)
 {
     return(CreateVimBufferData(
                Vim.GetOrCreateVimTextBuffer(textView.TextBuffer),
                textView,
                statusUtil,
                jumpList,
                windowSettings));
 }
예제 #7
0
파일: VimUtil.cs 프로젝트: zhutoulwz/VsVim
        public static IFoldManager CreateFoldManager(
            ITextView textView,
            IStatusUtil statusUtil             = null,
            IOutliningManager outliningManager = null)
        {
            statusUtil = statusUtil ?? new StatusUtil();
            var option = FSharpOption.CreateForReference(outliningManager);

            return(new FoldManager(
                       textView,
                       new FoldData(textView.TextBuffer),
                       statusUtil,
                       option));
        }
예제 #8
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     ITextView textView,
     IStatusUtil statusUtil             = null,
     IJumpList jumpList                 = null,
     IVimWindowSettings windowSettings  = null,
     ICaretRegisterMap caretRegisterMap = null,
     ISelectionUtil selectionUtil       = null)
 {
     return(CreateVimBufferData(
                Vim.GetOrCreateVimTextBuffer(textView.TextBuffer),
                textView,
                statusUtil,
                jumpList,
                windowSettings,
                caretRegisterMap,
                selectionUtil));
 }
예제 #9
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IStatusUtil statusUtil            = null,
     IJumpList jumpList                = null,
     IVimWindowSettings windowSettings = null)
 {
     jumpList       = jumpList ?? new JumpList(textView, BufferTrackingService);
     statusUtil     = statusUtil ?? new StatusUtil();
     windowSettings = windowSettings ?? new WindowSettings(vimTextBuffer.GlobalSettings);
     return(new VimBufferData(
                vimTextBuffer,
                textView,
                windowSettings,
                jumpList,
                statusUtil));
 }
예제 #10
0
        internal static ICommonOperations CreateCommonOperations(
            ITextView textView,
            IVimLocalSettings localSettings,
            IOutliningManager outlining            = null,
            IStatusUtil statusUtil                 = null,
            ISearchService searchService           = null,
            IUndoRedoOperations undoRedoOperations = null,
            IVimData vimData = null,
            IVimHost vimHost = null,
            ITextStructureNavigator navigator = null,
            IClipboardDevice clipboardDevice  = null,
            IFoldManager foldManager          = null)
        {
            var editorOperations = EditorUtil.GetOperations(textView);
            var editorOptions    = EditorUtil.FactoryService.EditorOptionsFactory.GetOptions(textView);
            var jumpList         = new JumpList(new TrackingLineColumnService());
            var keyMap           = new KeyMap();

            foldManager        = foldManager ?? new FoldManager(textView.TextBuffer);
            statusUtil         = statusUtil ?? new StatusUtil();
            searchService      = searchService ?? CreateSearchService(localSettings.GlobalSettings);
            undoRedoOperations = undoRedoOperations ??
                                 new UndoRedoOperations(statusUtil, FSharpOption <ITextUndoHistory> .None, editorOperations);
            vimData         = vimData ?? new VimData();
            vimHost         = vimHost ?? new MockVimHost();
            navigator       = navigator ?? CreateTextStructureNavigator(textView.TextBuffer);
            clipboardDevice = clipboardDevice ?? new MockClipboardDevice();
            var operationsData = new OperationsData(
                editorOperations,
                editorOptions,
                foldManager,
                jumpList,
                keyMap,
                localSettings,
                outlining != null ? FSharpOption.Create(outlining) : FSharpOption <IOutliningManager> .None,
                CreateRegisterMap(clipboardDevice),
                searchService,
                statusUtil,
                textView,
                undoRedoOperations,
                vimData,
                vimHost,
                navigator);

            return(new CommonOperations(operationsData));
        }
예제 #11
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     ITextView textView,
     IStatusUtil statusUtil = null,
     IJumpList jumpList     = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimWindowSettings windowSettings      = null,
     IWordUtil wordUtil = null)
 {
     return(CreateVimBufferData(
                Vim.GetOrCreateVimTextBuffer(textView.TextBuffer),
                textView,
                statusUtil,
                jumpList,
                undoRedoOperations,
                windowSettings,
                wordUtil));
 }
예제 #12
0
파일: VimUtil.cs 프로젝트: rride/VsVim
 internal static ICommonOperations CreateCommonOperations(
     ITextView textView,
     IVimLocalSettings localSettings,
     IOutliningManager outlining = null,
     IStatusUtil statusUtil = null,
     ISearchService searchService = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimData vimData = null,
     IVimHost vimHost = null,
     ITextStructureNavigator navigator = null,
     IClipboardDevice clipboardDevice = null,
     IFoldManager foldManager = null)
 {
     var editorOperations = EditorUtil.GetOperations(textView);
     var editorOptions = EditorUtil.FactoryService.EditorOptionsFactory.GetOptions(textView);
     var jumpList = new JumpList(new TrackingLineColumnService());
     var keyMap = new KeyMap();
     foldManager = foldManager ?? new FoldManager(textView.TextBuffer);
     statusUtil = statusUtil ?? new StatusUtil();
     searchService = searchService ?? CreateSearchService(localSettings.GlobalSettings);
     undoRedoOperations = undoRedoOperations ??
                          new UndoRedoOperations(statusUtil, FSharpOption<ITextUndoHistory>.None);
     vimData = vimData ?? new VimData();
     vimHost = vimHost ?? new MockVimHost();
     navigator = navigator ?? CreateTextStructureNavigator(textView.TextBuffer);
     clipboardDevice = clipboardDevice ?? new MockClipboardDevice();
     var operationsData = new OperationsData(
         editorOperations,
         editorOptions,
         foldManager,
         jumpList,
         keyMap,
         localSettings,
         outlining != null ? FSharpOption.Create(outlining) : FSharpOption<IOutliningManager>.None,
         CreateRegisterMap(clipboardDevice),
         searchService,
         EditorUtil.FactoryService.SmartIndentationService,
         statusUtil,
         textView,
         undoRedoOperations,
         vimData,
         vimHost,
         navigator);
     return new CommonOperations(operationsData);
 }
예제 #13
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IStatusUtil statusUtil = null,
     IJumpList jumpList     = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimWindowSettings windowSettings      = null,
     IWordUtil wordUtil = null)
 {
     jumpList           = jumpList ?? new JumpList(textView, _bufferTrackingService);
     statusUtil         = statusUtil ?? new StatusUtil();
     undoRedoOperations = undoRedoOperations ?? CreateUndoRedoOperations(statusUtil);
     windowSettings     = windowSettings ?? new WindowSettings(vimTextBuffer.GlobalSettings);
     wordUtil           = wordUtil ?? WordUtilFactory.GetWordUtil(vimTextBuffer.TextBuffer);
     return(new VimBufferData(
                vimTextBuffer,
                textView,
                windowSettings,
                jumpList,
                statusUtil,
                undoRedoOperations,
                wordUtil));
 }
예제 #14
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IStatusUtil statusUtil             = null,
     IJumpList jumpList                 = null,
     IVimWindowSettings windowSettings  = null,
     ICaretRegisterMap caretRegisterMap = null,
     ISelectionUtil selectionUtil       = null)
 {
     jumpList         = jumpList ?? new JumpList(textView, BufferTrackingService);
     statusUtil       = statusUtil ?? CompositionContainer.GetExportedValue <IStatusUtilFactory>().GetStatusUtilForView(textView);
     windowSettings   = windowSettings ?? new WindowSettings(vimTextBuffer.GlobalSettings);
     caretRegisterMap = caretRegisterMap ?? new CaretRegisterMap(Vim.RegisterMap);
     selectionUtil    = selectionUtil ?? new SingleSelectionUtil(textView);
     return(new VimBufferData(
                vimTextBuffer,
                textView,
                windowSettings,
                jumpList,
                statusUtil,
                selectionUtil,
                caretRegisterMap));
 }
예제 #15
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to 
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     ITextView textView,
     IStatusUtil statusUtil = null,
     IJumpList jumpList = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimWindowSettings windowSettings = null,
     IWordUtil wordUtil = null)
 {
     return CreateVimBufferData(
         Vim.GetOrCreateVimTextBuffer(textView.TextBuffer),
         textView,
         statusUtil,
         jumpList,
         undoRedoOperations,
         windowSettings,
         wordUtil);
 }
예제 #16
0
 /// <summary>
 /// Create an IUndoRedoOperations instance with the given IStatusUtil
 /// </summary>
 protected virtual IUndoRedoOperations CreateUndoRedoOperations(IStatusUtil statusUtil = null)
 {
     statusUtil = statusUtil ?? new StatusUtil();
     return new UndoRedoOperations(statusUtil, FSharpOption<ITextUndoHistory>.None, null);
 }
예제 #17
0
 /// <summary>
 /// Create an IUndoRedoOperations instance with the given IStatusUtil
 /// </summary>
 protected virtual IUndoRedoOperations CreateUndoRedoOperations(IStatusUtil statusUtil = null)
 {
     statusUtil = statusUtil ?? new StatusUtil();
     return(new UndoRedoOperations(statusUtil, FSharpOption <ITextUndoHistory> .None, null));
 }
예제 #18
0
 protected override IUndoRedoOperations CreateUndoRedoOperations(IStatusUtil statusUtil = null)
 {
     _undoRedoOperations = new Mock<IUndoRedoOperations>(MockBehavior.Strict);
     return _undoRedoOperations.Object;
 }
예제 #19
0
파일: VimUtil.cs 프로젝트: rride/VsVim
 internal static IIncrementalSearch CreateIncrementalSearch(
     ITextView textView,
     IVimLocalSettings settings,
     IVimData vimData,
     ISearchService search = null,
     IOutliningManager outliningManager = null,
     IStatusUtil statusUtil = null)
 {
     search = search ?? new SearchService(EditorUtil.FactoryService.TextSearchService, settings.GlobalSettings);
     statusUtil = statusUtil ?? new StatusUtil();
     var nav = CreateTextStructureNavigator(textView.TextBuffer);
     var operations = CreateCommonOperations(
         textView: textView,
         localSettings: settings,
         outlining: outliningManager,
         vimData: vimData);
     return new IncrementalSearch(
         operations,
         settings,
         nav,
         search,
         statusUtil,
         vimData);
 }
예제 #20
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to 
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IStatusUtil statusUtil = null,
     IJumpList jumpList = null,
     IVimWindowSettings windowSettings = null,
     IWordUtil wordUtil = null)
 {
     jumpList = jumpList ?? new JumpList(textView, BufferTrackingService);
     statusUtil = statusUtil ?? new StatusUtil();
     windowSettings = windowSettings ?? new WindowSettings(vimTextBuffer.GlobalSettings);
     wordUtil = wordUtil ?? WordUtil;
     return new VimBufferData(
         vimTextBuffer,
         textView,
         windowSettings,
         jumpList,
         statusUtil,
         wordUtil);
 }
예제 #21
0
 /// <summary>
 /// Create a new instance of VimBufferData.  Centralized here to make it easier to 
 /// absorb API changes in the Unit Tests
 /// </summary>
 protected IVimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IStatusUtil statusUtil = null,
     IJumpList jumpList = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimWindowSettings windowSettings = null,
     IWordUtil wordUtil = null)
 {
     jumpList = jumpList ?? new JumpList(textView, _bufferTrackingService);
     statusUtil = statusUtil ?? new StatusUtil();
     undoRedoOperations = undoRedoOperations ?? CreateUndoRedoOperations(statusUtil);
     windowSettings = windowSettings ?? new WindowSettings(vimTextBuffer.GlobalSettings);
     wordUtil = wordUtil ?? WordUtilFactory.GetWordUtil(vimTextBuffer.TextBuffer);
     return new VimBufferData(
         vimTextBuffer,
         textView,
         windowSettings,
         jumpList,
         statusUtil,
         undoRedoOperations,
         wordUtil);
 }
예제 #22
0
 /// <summary>
 /// This is not technically a Mock but often we want to create it with mocked 
 /// backing values
 /// </summary>
 /// <returns></returns>
 public static VimBufferData CreateVimBufferData(
     IVimTextBuffer vimTextBuffer,
     ITextView textView,
     IJumpList jumpList = null,
     IStatusUtil statusUtil = null,
     IUndoRedoOperations undoRedoOperations = null,
     IVimWindowSettings windowSettings = null,
     IWordUtil wordUtil = null,
     MockRepository factory = null)
 {
     factory = factory ?? new MockRepository(MockBehavior.Strict);
     statusUtil = statusUtil ?? factory.Create<IStatusUtil>().Object;
     undoRedoOperations = undoRedoOperations ?? factory.Create<IUndoRedoOperations>().Object;
     jumpList = jumpList ?? factory.Create<IJumpList>().Object;
     wordUtil = wordUtil ?? factory.Create<IWordUtil>().Object;
     windowSettings = windowSettings ?? factory.Create<IVimWindowSettings>().Object;
     return new VimBufferData(
         jumpList,
         textView,
         statusUtil,
         undoRedoOperations,
         vimTextBuffer,
         windowSettings,
         wordUtil);
 }
예제 #23
0
파일: VimUtil.cs 프로젝트: zhoutao929/VsVim
 internal static UndoRedoOperations CreateUndoRedoOperations(IStatusUtil statusUtil = null, IVimHost vimHost = null)
 {
     statusUtil = statusUtil ?? new StatusUtil();
     vimHost    = vimHost ?? new MockVimHost();
     return(new UndoRedoOperations(vimHost, statusUtil, FSharpOption <ITextUndoHistory> .None, null));
 }