Text view client that manages insertion of snippets
상속: IVsExpansionClient
예제 #1
0
       public void ExpansionClientTest() {
            var textBuffer = new TextBufferMock("if", RContentTypeDefinition.ContentType);
            var textView = new TextViewMock(textBuffer);
            var client = new ExpansionClient(textView, textBuffer, _expansionManager, _cache);

            client.IsEditingExpansion().Should().BeFalse();
            client.IsCaretInsideSnippetFields().Should().BeFalse();

            _expansionManager.InvokeInsertionUI(null, null, Guid.Empty, new string[0], 0, 0, new string[0], 0, 0, string.Empty, string.Empty)
                .ReturnsForAnyArgs(VSConstants.S_OK);

            client.InvokeInsertionUI((int)VSConstants.VSStd2KCmdID.INSERTSNIPPET).Should().Be(VSConstants.S_OK);

            textView.Caret.MoveTo(new SnapshotPoint(textView.TextBuffer.CurrentSnapshot, 2));

            bool inserted;
            client.StartSnippetInsertion(out inserted);

            inserted.Should().BeTrue();
            client.IsEditingExpansion().Should().BeTrue();

            client.EndExpansion();
            client.IsEditingExpansion().Should().BeFalse();

            client.OnItemChosen("if", "path");
            client.IsEditingExpansion().Should().BeTrue();

            client.EndExpansion();
            client.IsEditingExpansion().Should().BeFalse();
            client.IsCaretInsideSnippetFields().Should().BeFalse();
        }
예제 #2
0
 public ExpansionsController(ITextView textView, ITextBuffer textBuffer, IVsExpansionManager expansionManager, IExpansionsCache cache)
 {
     _textView        = textView;
     _textBuffer      = textBuffer;
     _expansionClient = new ExpansionClient(textView, textBuffer, expansionManager, cache);
 }
예제 #3
0
 public ExpansionsController(ITextView textView, ITextBuffer textBuffer, IVsExpansionManager expansionManager, IExpansionsCache cache) {
     _textView = textView;
     _textBuffer = textBuffer;
     _expansionClient = new ExpansionClient(textView, textBuffer, expansionManager, cache);
 }
예제 #4
0
 public ExpansionsController(ITextView textView, ITextBuffer textBuffer, IVsExpansionManager expansionManager, IExpansionsCache cache, IServiceContainer services)
 {
     _textView        = textView;
     _expansionClient = new ExpansionClient(textView, textBuffer, expansionManager, cache, services);
     _services        = services;
 }