public void TupleSegmentWithTwoBitLength_Parse_GetTupleSegmentWithTwoBitLength()
        {
            var segment = new ArrayRunTupleSegment("tuple", "|a:", 2);

            Assert.Single(segment.Elements);
            Assert.Equal("a", segment.Elements[0].Name);
            Assert.Equal(2, segment.Elements[0].BitWidth);
        }
 private static IEnumerable <AutocompleteItem> CreateTupleEnumSingleElementAutocompleteOptions(string fieldName, ArrayRunTupleSegment tupleSegment, List <string> previousTupleElements, IEnumerable <string> optionText, string lineEnd)
 {
     foreach (var option in optionText)
     {
         var newLine = $"{fieldName}: ";
         newLine += tupleSegment.ConstructAutocompleteLine(previousTupleElements, option);
         newLine += lineEnd;
         yield return(new AutocompleteItem(option, newLine));
     }
 }
 private IEnumerable <AutocompleteItem> CreateTupleEnumAutocompleteOptions(IReadOnlyList <string> tokens, ArrayRunTupleSegment tupleGroup, List <string> tupleTokens, IEnumerable <string> optionText, string lineEnd)
 {
     foreach (var option in optionText)
     {
         string newLine        = ", ".Join(tokens.Take(tokens.Count - 1));
         var    previousTokens = tupleTokens.Take(tupleTokens.Count - 1).ToList();
         newLine += tupleGroup.ConstructAutocompleteLine(previousTokens, option);
         var thisLineEnd = lineEnd.Trim();
         if (thisLineEnd.StartsWith(")"))
         {
             thisLineEnd = thisLineEnd.Substring(1);
         }
         newLine += thisLineEnd;
         if (Tokenize(newLine).Count < ElementContent.Count)
         {
             newLine += ", ";
         }
         yield return(new AutocompleteItem(option, newLine));
     }
 }