예제 #1
0
        protected override Action <ITextControl> ExecutePsiTransaction(ISolution solution, IProgressIndicator progress)
        {
            var operands = GetAllOperands(myExpression).OrderBy(t => !t.GetExpressionType().ToIType().IsPredefinedNumeric()).ToList();
            var factory  = CSharpElementFactory.GetInstance(myExpression);

            const string mul     = "$0 * $1";
            var          newExpr = operands[0];

            for (int i = 1; i < operands.Count; i++)
            {
                newExpr = factory.CreateExpression(mul, newExpr, operands[i].CopyWithResolve());
            }

            myExpression.ReplaceBy(newExpr);
            return(null);
        }