IsEditingExpansion() 공개 메소드

public IsEditingExpansion ( ) : bool
리턴 bool
예제 #1
0
        public CommandStatus Status(Guid group, int id)
        {
            if (group == VSConstants.VSStd2K)
            {
                if (!_expansionClient.IsEditingExpansion())
                {
                    switch ((VSConstants.VSStd2KCmdID)id)
                    {
                    case VSConstants.VSStd2KCmdID.TAB:
                        return(_expansionClient.TextView.IsStatementCompletionWindowActive() ?
                               CommandStatus.NotSupported : CommandStatus.SupportedAndEnabled);

                    case VSConstants.VSStd2KCmdID.INSERTSNIPPET:
                    case VSConstants.VSStd2KCmdID.SURROUNDWITH:
                        return(CommandStatus.SupportedAndEnabled);
                    }
                }
                else
                {
                    switch ((VSConstants.VSStd2KCmdID)id)
                    {
                    case VSConstants.VSStd2KCmdID.TAB:
                    case VSConstants.VSStd2KCmdID.BACKTAB:
                    case VSConstants.VSStd2KCmdID.RETURN:
                    case VSConstants.VSStd2KCmdID.CANCEL:
                    case VSConstants.VSStd2KCmdID.INSERTSNIPPET:
                    case VSConstants.VSStd2KCmdID.SURROUNDWITH:
                        return(CommandStatus.SupportedAndEnabled);
                    }
                }
            }
            return(CommandStatus.NotSupported);
        }
예제 #2
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();
        }