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); }