Ejemplo n.º 1
0
        private void SortFormatTokens_Execute(Object sender, ApplyContentEventArgs ea)
        {
            MethodCallExpression TheStringFormat = _PrimitiveString.Parent as MethodCallExpression;
            string TheString = _PrimitiveString.Name;
            List<Expression> TheArguments = TheStringFormat.Arguments.ToList<Expression>().Skip(1).ToList<Expression>();
            SourceRange TheStringFormatRange = TheStringFormat.Range;

            //Get List of Tokens
            var Tokens = new TokenGatherer().GetTokens(TheString);

            // Determine "Sort" map.
            List<MapItem> Map = MapGenerator.GenerateMap(from item in Tokens select item.Index);

            // Affect string using map
            TheString = new StringTokenRenumberer().Renumber(TheString, Tokens, Map);

            // Affect params using map?
            TheArguments = new ListReorderer().Reorder(TheArguments, Tokens, Map);

            // Write TheString and TheList back to the code.
            TheStringFormat.Arguments.Clear();
            TheStringFormat.Arguments.Add(new PrimitiveExpression(TheString));
            TheStringFormat.Arguments.AddRange(TheArguments);
            string TheNewCode = CodeRush.CodeMod.GenerateCode(TheStringFormat, true);
            ea.TextDocument.SetText(TheStringFormatRange, TheNewCode);
        }
        private void FixStringAndList(ref string startString, ref List<int> startList)
        {
            // gather Tokens
            var Tokens = new TokenGatherer().GetTokens(startString);

            // Generate map
            List<MapItem> Map = MapGenerator.GenerateMap(from item in Tokens select item.Index);

            // Use map to rebuild string.
            startString = new StringTokenRenumberer().Renumber(startString, Tokens, Map);
            // use Map to rebuild list
            startList = new ListReorderer().Reorder(startList, Tokens, Map);
        }
Ejemplo n.º 3
0
        public void TestEmptyList()
        {
            var expected   = new List <int> {
            };
            var solver     = new ListReorderer();
            var linkedList = GenerateLinkedListFromValues(new List <int> {
            });

            solver.ReorderList(linkedList);
            var actual = ConvertToList(linkedList);

            Assert.AreEqual(actual, expected);
        }
        public void ReorderParams2ParamsWithDuplicate_Test()
        {
            var StartString = "{1}, {0}, {1}";
            var StartList = new List<int>() { 0, 1 };
            var ExpectedList = new List<int>() { 1, 0 };

            var Tokens = new TokenGatherer().GetTokens(StartString);
            var Map = MapGenerator.GenerateMap(from item in Tokens select item.Index);

            var ResultList = new ListReorderer().Reorder(StartList, Tokens, Map);

            Assert.IsTrue(AreEqual(ExpectedList, ResultList));
        }
Ejemplo n.º 5
0
        public void TestEvenNumberOfElements()
        {
            var expected = new List <int> {
                1, 4, 2, 3
            };
            var solver     = new ListReorderer();
            var linkedList = GenerateLinkedListFromValues(new List <int> {
                1, 2, 3, 4
            });

            solver.ReorderList(linkedList);
            var actual = ConvertToList(linkedList);

            Assert.AreEqual(actual, expected);
        }