Ejemplo n.º 1
0
        /// <summary>
        /// The execute transaction inner.
        /// </summary>
        /// <param name="solution">
        /// The solution.
        /// </param>
        /// <param name="textControl">
        /// The text control.
        /// </param>
        public override void ExecuteTransactionInner(ISolution solution, ITextControl textControl)
        {
            IList <ITokenNode> tokensForLine = Utils.GetTokensForLineFromTextControl(solution, textControl);

            foreach (ITokenNode tokenNode in tokensForLine)
            {
                IParenthesizedExpressionNode parenthesizedExpressionNode = tokenNode.GetContainingElement <IParenthesizedExpressionNode>(true);
                MaintainabilityRules.RemoveParenthesisFromNode(parenthesizedExpressionNode);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Remove parenthesis from node.
        /// </summary>
        /// <param name="node">
        /// The node.
        /// </param>
        public static void RemoveParenthesisFromNode(ITreeNode node)
        {
            IParenthesizedExpressionNode parenthesizedExpressionNode = node as IParenthesizedExpressionNode;

            if (parenthesizedExpressionNode != null)
            {
                using (WriteLockCookie.Create(true))
                {
                    ICSharpExpressionNode innerExpression = parenthesizedExpressionNode.ExpressionNode;

                    if (innerExpression != null && node.Parent != null)
                    {
                        NodeType innerExpressionNodeType = (innerExpression as TreeElement).NodeType;

                        if (innerExpressionNodeType != ElementType.ADDITIVE_EXPRESSION && innerExpressionNodeType != ElementType.MULTIPLICATIVE_EXPRESSION &&
                            innerExpressionNodeType != ElementType.SHIFT_EXPRESSION && innerExpressionNodeType != ElementType.AS_EXPRESSION &&
                            innerExpressionNodeType != ElementType.ASSIGNMENT_EXPRESSION && innerExpressionNodeType != ElementType.CAST_EXPRESSION &&
                            innerExpressionNodeType != ElementType.CONDITIONAL_AND_EXPRESSION && innerExpressionNodeType != ElementType.CONDITIONAL_OR_EXPRESSION &&
                            innerExpressionNodeType != ElementType.CONDITIONAL_TERNARY_EXPRESSION && innerExpressionNodeType != ElementType.POSTFIX_OPERATOR_EXPRESSION &&
                            innerExpressionNodeType != ElementType.PREFIX_OPERATOR_EXPRESSION && innerExpressionNodeType != ElementType.IS_EXPRESSION &&
                            innerExpressionNodeType != ElementType.LAMBDA_EXPRESSION && innerExpressionNodeType != ElementType.BITWISE_AND_EXPRESSION &&
                            innerExpressionNodeType != ElementType.BITWISE_INCLUSIVE_OR_EXPRESSION &&
                            innerExpressionNodeType != ElementType.BITWISE_EXCLUSIVE_OR_EXPRESSION && innerExpressionNodeType != ElementType.OBJECT_CREATION_EXPRESSION &&
                            innerExpressionNodeType != ElementType.ARRAY_CREATION_EXPRESSION && innerExpressionNodeType != ElementType.NULL_COALESCING_EXPRESSION &&
                            innerExpressionNodeType != ElementType.QUERY_EXPRESSION && innerExpressionNodeType != ElementType.RELATIONAL_EXPRESSION &&
                            innerExpressionNodeType != ElementType.UNARY_OPERATOR_EXPRESSION && innerExpressionNodeType != ElementType.EQUALITY_EXPRESSION)
                        {
                            LowLevelModificationUtil.ReplaceChildRange(node, node, new ITreeNode[] { innerExpression });
                            return;
                        }

                        if ((!(node.Parent is IExpression)) || node.Parent is IVariableDeclaration)
                        {
                            LowLevelModificationUtil.ReplaceChildRange(node, node, new ITreeNode[] { innerExpression });
                            return;
                        }

                        IAssignmentExpression parent = node.Parent as IAssignmentExpression;

                        if (parent != null && parent.Source == node)
                        {
                            LowLevelModificationUtil.ReplaceChildRange(node, node, new ITreeNode[] { innerExpression });
                            return;
                        }
                    }
                }
            }
        }