Beispiel #1
0
        public void TupleInTableStream_AutoCompleteExtraField_NoOptions()
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc:|t|i:options|j:options]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("(Xmatch match ma", 0, 16).ToArray();

            Assert.Empty(options);
        }
Beispiel #2
0
        public void SingleElementTableStreamRun_AutoCompleteField_OptionsMakeSense()
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc: xyz:options]", null, new FixedLengthStreamStrategy(1));

            var options = stream.GetAutoCompleteOptions("xyz: match", caretLineIndex: 0, caretCharacterIndex: 10).ToArray();

            Assert.Equal("xyz: matchX", options[1].LineText);
        }
Beispiel #3
0
        public void TableStreamRunAutoCompleteOption_MoreElementsNeededOnLine_MovesToNextElement()
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[a:options b:]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("match", caretLineIndex: 0, caretCharacterIndex: 5).ToArray();

            Assert.Equal("matXch, ", options[2].LineText);
        }
Beispiel #4
0
        public void TableStreamRunAutoCompleteOption_Execute_TextChanges()
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[a:options b:]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("match, 3", caretLineIndex: 0, caretCharacterIndex: 5).ToArray();

            Assert.Equal("matchX, 3", options[1].LineText);
        }
Beispiel #5
0
        public void StreamWithEnum_RequestAutocompleteAtEnum_GetOptions()
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[a:options b:]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("match, 3", caretLineIndex: 0, caretCharacterIndex: 5).Select(option => option.Text).ToArray();

            Assert.Equal(new[] { "Xmatch", "matchX", "matXch" }, options);
        }
Beispiel #6
0
        public void SingleElementStream_AutocompleteWithLeadingWhitespace_Works()
        {
            Model.SetList("options", new[] { "\"Poison Gas\"", "\"Poison Sting\"", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc:options xyz:]", null, new FixedLengthStreamStrategy(1));

            var options = stream.GetAutoCompleteOptions("  abc: Poison", 0, 13).ToArray();

            Assert.Equal("\"Poison Gas\"", options[0].Text);
            Assert.Equal("\"Poison Sting\"", options[1].Text);
        }
Beispiel #7
0
        public void TupleInSingleElementTableStream_AutoCompleteInitialField_OptionsMatch(string inputLine, string outputText, string outputLine)
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc.|t|i:options|j:options|k.]", null, new FixedLengthStreamStrategy(1));

            var options = stream.GetAutoCompleteOptions(inputLine, 0, inputLine.Length).ToArray();

            Assert.Equal(outputText, options[0].Text);
            Assert.Equal(outputLine, options[0].LineText);
        }
Beispiel #8
0
        public void TupleInTableStream_AutoCompleteBoolean_BooleanOptions()
        {
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc.|t|i:|j.]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("(2 e", 0, 4).ToArray();

            Assert.Equal(2, options.Length);
            Assert.Equal("false", options[0].Text);
            Assert.Equal("(2 true)", options[1].LineText);
        }
Beispiel #9
0
        public void TupleInTableStream_AutoCompleteSecondField_OptionCompletesSubContent()
        {
            Model.SetList("options", new[] { "Xmatch", "matchX", "matXch", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc:|t|i:options|j:options]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("(Xmatch match", 0, 13).ToArray();

            Assert.Equal("Xmatch", options[0].Text);
            Assert.Equal("(Xmatch Xmatch)", options[0].LineText);
        }
Beispiel #10
0
        public void ParenthesisAndTupleElementWithQuotes_Autocomplete_OptionsAreFiltered()
        {
            Model.SetList("options", new[] { "\"Poison Gas\"", "\"Poison Sting\"", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc.|t|a:options|b:]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("(\"Poison sti 4)", 0, 12).ToArray();

            Assert.Single(options);
            Assert.Equal("\"Poison Sting\"", options[0].Text);
            Assert.Equal("(\"Poison Sting\" 4)", options[0].LineText);
        }
Beispiel #11
0
        public void OptionsWithNoQuote_StartEnumWithLeadingQuote_StillFindAutocompleteOption()
        {
            Model.SetList("options", new[] { "PoisonPowder", "\"Poison Gas\"", "other" });
            var stream = new TableStreamRun(Model, 0, SortedSpan <int> .None, "[abc.options]", null, new FixedLengthStreamStrategy(2));

            var options = stream.GetAutoCompleteOptions("\"Poison", 0, 7).ToArray();

            Assert.Equal(2, options.Length);
            Assert.Equal("PoisonPowder", options[0].Text);
            Assert.Equal("\"Poison Gas\"", options[1].Text);
        }