Beispiel #1
0
        internal BlockCaret(
            IVimBufferData vimBufferData,
            IClassificationFormatMap classificationFormatMap,
            IEditorFormatMap formatMap,
            IAdornmentLayer layer,
            IControlCharUtil controlCharUtil,
            IProtectedOperations protectedOperations)
        {
            _vimBufferData           = vimBufferData;
            _textView                = (IWpfTextView)_vimBufferData.TextView;
            _selectionUtil           = _vimBufferData.SelectionUtil;
            _editorFormatMap         = formatMap;
            _adornmentLayer          = layer;
            _protectedOperations     = protectedOperations;
            _classificationFormatMap = classificationFormatMap;
            _controlCharUtil         = controlCharUtil;

            _textView.LayoutChanged              += OnCaretEvent;
            _textView.GotAggregateFocus          += OnCaretEvent;
            _textView.LostAggregateFocus         += OnCaretEvent;
            _textView.Selection.SelectionChanged += OnCaretPositionOrSelectionChanged;
            _textView.Closed += OnTextViewClosed;

            _blinkTimer = CreateBlinkTimer(protectedOperations, OnCaretBlinkTimer);
        }
Beispiel #2
0
        public static void SetLocalMark(this IMarkMap markMap, char c, IVimBufferData vimBufferData, int line, int column)
        {
            var letter = Letter.OfChar(c).Value;
            var mark   = Mark.NewLocalMark(LocalMark.NewLetter(letter));

            markMap.SetMark(mark, vimBufferData, line, column);
        }
Beispiel #3
0
 protected void OpenFakeVimBufferTestWindow(params string[] lines)
 {
     _textView = CreateTextView(lines);
     _textView.MoveCaretTo(0);
     _textView.TextBuffer.Properties.AddProperty(Mock.MockVimHost.FileNameKey, "VimBufferTest.cs");
     _vimBufferData = CreateVimBufferData(_textView, statusUtil: _statusUtil);
     _vimBuffer     = CreateVimBuffer(_vimBufferData);
     _vimBuffer.SwitchMode(ModeKind.Command, ModeArgument.None);
 }
Beispiel #4
0
 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);
     _vimBufferData = MockObjectFactory.CreateVimBufferData(vimTextBuffer.Object, _textView);
     _incrementalSearch = new Mock<IIncrementalSearch>(MockBehavior.Loose);
     _tracker = new SelectionTracker(_vimBufferData, _incrementalSearch.Object, kind);
     _tracker.Start();
 }
Beispiel #5
0
        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);

            _vimBufferData     = MockObjectFactory.CreateVimBufferData(vimTextBuffer.Object, _textView);
            _incrementalSearch = new Mock <IIncrementalSearch>(MockBehavior.Loose);
            _tracker           = new SelectionTracker(_vimBufferData, _incrementalSearch.Object, kind);
            _tracker.Start();
        }
        private IBlockCaret CreateBlockCaret(IVimBufferData vimBufferData)
        {
            var textView = vimBufferData.TextView;
            var classificationFormaptMap = _classificationFormatMapService.GetClassificationFormatMap(textView);
            var editorFormatMap          = _formatMapService.GetEditorFormatMap(textView);

            return(new BlockCaret(
                       vimBufferData,
                       BlockCaretAdornmentLayerName,
                       classificationFormaptMap,
                       editorFormatMap,
                       _controlCharUtil,
                       _protectedOperations));
        }
Beispiel #7
0
 internal BlockCaret(
     IVimBufferData vimBufferData,
     string adornmentLayerName,
     IClassificationFormatMap classificationFormatMap,
     IEditorFormatMap formatMap,
     IControlCharUtil controlCharUtil,
     IProtectedOperations protectedOperations) :
     this(
         vimBufferData,
         classificationFormatMap,
         formatMap,
         (vimBufferData.TextView as IWpfTextView).GetAdornmentLayer(adornmentLayerName),
         controlCharUtil,
         protectedOperations)
 {
 }
        protected virtual void Create(params string[] lines)
        {
            _context = new TestableSynchronizationContext();
            SynchronizationContext.SetSynchronizationContext(_context);
            _textView = CreateTextView(lines);
            _textBuffer = _textView.TextBuffer;
            _vimBuffer = Vim.CreateVimBuffer(_textView);
            _vimBuffer.SwitchMode(ModeKind.Normal, ModeArgument.None);
            _vimBufferData = _vimBuffer.VimBufferData;
            _vimTextBuffer = _vimBuffer.VimTextBuffer;
            _registerMap = _vimBuffer.RegisterMap;
            _globalSettings = _vimBuffer.LocalSettings.GlobalSettings;
            Assert.True(_context.IsEmpty);

            // Need to make sure it's focused so macro recording will work
            ((MockVimHost)_vimBuffer.Vim.VimHost).FocusedTextView = _textView;
        }
Beispiel #9
0
 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 virtual void Create(params string[] lines)
        {
            _textView = CreateTextView(lines);
            _textBuffer = _textView.TextBuffer;
            _vimBuffer = Vim.CreateVimBuffer(_textView);
            _vimBuffer.ErrorMessage +=
                (_, message) =>
                {
                    if (_assertOnErrorMessage)
                    {
                        throw new Exception("Error Message: " + message.Message);
                    }
                };
            _vimBuffer.WarningMessage +=
                (_, message) =>
                {
                    if (_assertOnWarningMessage)
                    {
                        throw new Exception("Warning Message: " + message.Message);
                    }
                };
            _vimBufferData = _vimBuffer.VimBufferData;
            _vimTextBuffer = _vimBuffer.VimTextBuffer;
            _normalMode = _vimBuffer.NormalMode;
            _keyMap = _vimBuffer.Vim.KeyMap;
            _localSettings = _vimBuffer.LocalSettings;
            _globalSettings = _localSettings.GlobalSettings;
            _windowSettings = _vimBuffer.WindowSettings;
            _jumpList = _vimBuffer.JumpList;
            _vimHost = (MockVimHost)_vimBuffer.Vim.VimHost;
            _vimHost.BeepCount = 0;
            _vimData = Vim.VimData;
            _foldManager = FoldManagerFactory.GetFoldManager(_textView);
            _clipboardDevice = (TestableClipboardDevice)CompositionContainer.GetExportedValue<IClipboardDevice>();

            // Many of the operations operate on both the visual and edit / text snapshot
            // simultaneously.  Ensure that our setup code is producing a proper IElisionSnapshot
            // for the Visual portion so we can root out any bad mixing of instances between
            // the two
            Assert.True(_textView.VisualSnapshot is IElisionSnapshot);
            Assert.True(_textView.VisualSnapshot != _textView.TextSnapshot);
        }
Beispiel #11
0
        internal MarkGlyphTaggerSource(IVimBufferData vimBufferData)
        {
            _vimBufferData = vimBufferData;
            _markMap       = _vimBufferData.Vim.MarkMap;
            _lineNumberMap = new Dictionary <Mark, int>();
            _glyphPairs    = new List <Tuple <string, int> >();
            _isVisible     = true;
            _activeMarks   = 0;
            _hideMarks     = _vimBufferData.LocalSettings.HideMarks;

            LoadNewBufferMarks();
            CachePairs();

            _markMap.MarkSet     += OnBufferMarkSet;
            _markMap.MarkDeleted += OnMarkDeleted;
            _vimBufferData.VimTextBuffer.MarkSet        += OnBufferMarkSet;
            _vimBufferData.JumpList.MarkSet             += OnWindowMarkSet;
            _vimBufferData.TextBuffer.Changed           += OnTextBufferChanged;
            _vimBufferData.LocalSettings.SettingChanged += OnLocalSettingsChanged;
            _vimBufferData.Vim.VimHost.IsVisibleChanged += OnIsVisibleChanged;
        }
Beispiel #12
0
 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;
 }
Beispiel #13
0
 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;
 }
Beispiel #14
0
 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);
 }
Beispiel #15
0
 private MarkGlyphTaggerSource CreateMarkGlyphTaggerSource(IVimBufferData vimBufferData)
 {
     return(new MarkGlyphTaggerSource(vimBufferData));
 }
Beispiel #16
0
 /// <summary>
 /// Create an IVimBuffer instance with the given VimBufferData value
 /// </summary>
 protected IVimBuffer CreateVimBuffer(IVimBufferData vimBufferData)
 {
     return(VimBufferFactory.CreateVimBuffer(vimBufferData));
 }
Beispiel #17
0
 /// <summary>
 /// Create an IVimBuffer instance with the given VimBufferData value
 /// </summary>
 protected IVimBuffer CreateVimBuffer(IVimBufferData vimBufferData)
 {
     return _vimBufferFactory.CreateVimBuffer(vimBufferData);
 }
Beispiel #18
0
 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);
 }
Beispiel #19
0
 internal virtual ICommonOperations CreateCommonOperations(IVimBufferData vimBufferData)
 {
     return CommonOperationsFactory.GetCommonOperations(vimBufferData);
 }
Beispiel #20
0
 internal override ICommonOperations CreateCommonOperations(IVimBufferData vimBufferData)
 {
     _commonOperations = _factory.Create<ICommonOperations>();
     _commonOperations.Setup(x => x.EditorOperations).Returns(_factory.Create<IEditorOperations>().Object);
     _commonOperations.Setup(x => x.EditorOptions).Returns(_factory.Create<IEditorOptions>().Object);
     return _commonOperations.Object;
 }
 private MarkGlyphTaggerSource CreateMarkGlyphTaggerSource(IVimBufferData vimBufferData)
 {
     return(new MarkGlyphTaggerSource(vimBufferData, _markDisplayUtil));
 }
Beispiel #22
0
 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);
 }
Beispiel #23
0
 protected void OpenFakeVimBufferTestWindow(params string[] lines)
 {
     _textView = CreateTextView(lines);
     _textView.MoveCaretTo(0);
     _textView.TextBuffer.Properties.AddProperty(Mock.MockVimHost.FileNameKey, "VimBufferTest.cs");
     _vimBufferData = CreateVimBufferData(_textView, statusUtil: _statusUtil);
     _vimBuffer = CreateVimBuffer(_vimBufferData);
     _vimBuffer.SwitchMode(ModeKind.Command, ModeArgument.None);
 }