public void VimBufferCreated(IVimBuffer vimBuffer)
        {
            var taggerList = new List<ITagger<ITag>>();
            var bufferAdapterList = new List<IExternalEditAdapter>();
            var textView = vimBuffer.TextView;

            foreach (var adapter in _adapterList)
            {
                ITagger<ITag> tagger;
                if (adapter.IsInterested(textView, out tagger))
                {
                    bufferAdapterList.Add(adapter);
                    if (tagger != null)
                    {
                        taggerList.Add(tagger);
                    }
                }
            }

            if (bufferAdapterList.Count > 0)
            {
                _monitorMap[vimBuffer] = new ExternalEditMonitor(
                    vimBuffer,
                    _protectedOperations,
                    _vsAdapter.GetTextLines(vimBuffer.TextBuffer),
                    taggerList.ToReadOnlyCollectionShallow(),
                    bufferAdapterList.ToReadOnlyCollectionShallow());
                vimBuffer.Closed += delegate { _monitorMap.Remove(vimBuffer); };
            }
        }
        public void VimBufferCreated(IVimBuffer vimBuffer)
        {
            var taggerList        = new List <ITagger <ITag> >();
            var bufferAdapterList = new List <IExternalEditAdapter>();
            var textView          = vimBuffer.TextView;

            foreach (var adapter in _adapterList)
            {
                ITagger <ITag> tagger;
                if (adapter.IsInterested(textView, out tagger))
                {
                    bufferAdapterList.Add(adapter);
                    if (tagger != null)
                    {
                        taggerList.Add(tagger);
                    }
                }
            }

            if (bufferAdapterList.Count > 0)
            {
                _monitorMap[vimBuffer] = new ExternalEditMonitor(
                    vimBuffer,
                    _protectedOperations,
                    _vsAdapter.GetTextLines(vimBuffer.TextBuffer),
                    taggerList.ToReadOnlyCollectionShallow(),
                    bufferAdapterList.ToReadOnlyCollectionShallow());
                vimBuffer.Closed += delegate { _monitorMap.Remove(vimBuffer); };
            }
        }
Exemple #3
0
 public void VimBufferCreated(IVimBuffer value)
 {
     _monitorMap[value] = new ExternalEditMonitor(
         value,
         _vsAdapter.GetTextLines(value.TextBuffer),
         new ReadOnlyCollection <IExternalEditAdapter>(_adapterList),
         _viewTagAggregatorFactoryService.CreateTagAggregator <ITag>(value.TextView));
     value.Closed += delegate { _monitorMap.Remove(value); };
 }
        public void VimBufferCreated(IVimBuffer buffer)
        {
            Result<ITagger<ITag>> tagger = Result.Error;
            if (IsResharperInstalled)
            {
                tagger = GetResharperTagger(buffer.TextBuffer);
            }

            _monitorMap[buffer] = new ExternalEditMonitor(
                buffer,
                _vsAdapter.GetTextLines(buffer.TextBuffer),
                tagger,
                new ReadOnlyCollection<IExternalEditAdapter>(_adapterList));
            buffer.Closed += delegate { _monitorMap.Remove(buffer); };
        }
Exemple #5
0
        public void VimBufferCreated(IVimBuffer buffer)
        {
            Result <ITagger <ITag> > tagger = Result.Error;

            if (IsResharperInstalled)
            {
                tagger = GetResharperTagger(buffer.TextBuffer);
            }

            _monitorMap[buffer] = new ExternalEditMonitor(
                buffer,
                _protectedOperations,
                _vsAdapter.GetTextLines(buffer.TextBuffer),
                tagger,
                new ReadOnlyCollection <IExternalEditAdapter>(_adapterList));
            buffer.Closed += delegate { _monitorMap.Remove(buffer); };
        }
        public void Create(bool hasTextLines, bool hasTagger, params string[] lines)
        {
            _factory = new MockRepository(MockBehavior.Loose);
            _textView = EditorUtil.CreateTextView(lines);
            _textBuffer = _textView.TextBuffer;
            _buffer = EditorUtil.FactoryService.Vim.CreateBuffer(_textView);

            // Have adatper ignore by default
            _adapter = _factory.Create<IExternalEditAdapter>(MockBehavior.Strict);
            _adapter.Setup(x => x.IsExternalEditTag(It.IsAny<ITag>())).Returns(false);
            _adapter.Setup(x => x.IsExternalEditMarker(It.IsAny<IVsTextLineMarker>())).Returns(false);

            Result<IVsTextLines> textLines = Result.Error;
            if (hasTextLines)
            {
                _vsTextLines = _factory.Create<IVsTextLines>(MockBehavior.Strict);
                _vsTextLines.SetupNoEnumMarkers();
                textLines = Result.CreateSuccess(_vsTextLines.Object);
            }

            Result<ITagger<ITag>> tagger = Result.Error;
            if (hasTagger)
            {
                _tagger = _factory.Create<ITagger<ITag>>(MockBehavior.Loose);
                _tagger.Setup(x => x.GetTags(It.IsAny<NormalizedSnapshotSpanCollection>())).Returns(new List<ITagSpan<ITag>>());
                tagger = Result.CreateSuccess(_tagger.Object);
            }

            var list = new List<IExternalEditAdapter> { _adapter.Object };
            var adapters = new ReadOnlyCollection<IExternalEditAdapter>(list);
            _monitor = new ExternalEditMonitor(
                _buffer,
                textLines,
                tagger,
                adapters);
        }
Exemple #7
0
 public void VimBufferCreated(IVimBuffer value)
 {
     _monitorMap[value] = new ExternalEditMonitor(
         value,
         _vsAdapter.GetTextLines(value.TextBuffer),
         new ReadOnlyCollection<IExternalEditAdapter>(_adapterList),
         _viewTagAggregatorFactoryService.CreateTagAggregator<ITag>(value.TextView));
     value.Closed += delegate { _monitorMap.Remove(value); };
 }
        public void Setup(bool isShimmed = true, params string[] lines)
        {
            _factory = new MockRepository(MockBehavior.Loose);
            _textBuffer = EditorUtil.CreateBuffer(lines);
            _textView = MockObjectFactory.CreateTextView(textBuffer: _textBuffer);
            _buffer = MockObjectFactory.CreateVimBuffer(textView: _textView.Object);
            _buffer.SetupGet(x => x.ModeKind).Returns(ModeKind.Normal).Verifiable();

            // Have adatper ignore by default
            _adapter = _factory.Create<IExternalEditAdapter>(MockBehavior.Strict);
            _adapter.Setup(x => x.IsExternalEditTag(It.IsAny<ITag>())).Returns(false);
            _adapter.Setup(x => x.IsExternalEditMarker(It.IsAny<IVsTextLineMarker>())).Returns(false);

            _aggregator = _factory.Create<ITagAggregator<ITag>>(MockBehavior.Strict);
            SetupTags();

            Result<IVsTextLines> result;
            if (isShimmed)
            {
                _vsTextLines = _factory.Create<IVsTextLines>();
                _vsTextLines.SetupNoEnumMarkers();
                result = Result.CreateSuccess(_vsTextLines.Object);
            }
            else
            {
                result = Result.Error;
            }

            var list = new List<IExternalEditAdapter> {_adapter.Object};
            var adapters = new ReadOnlyCollection<IExternalEditAdapter>(list);
            _monitor = new ExternalEditMonitor(
                _buffer.Object,
                result,
                adapters,
                _aggregator.Object);
        }